Recommended books to learn Java

D

Dan Kalish

I'm an experienced programmer and would like to learn Java, in order to make myself more marketable.

In particular, during the period 1968-1978 I worked years as a Scientific Progammer, primarily programming in Fortran IV (66?). Since then, I have occasionally programmed in SNOBOL, PASCAL, BASIC, Plato, Fortran 95 and C++. Thus, I don't need a beginner's book.

Any recommendations on books for learning Java?

Dan
 
R

Robert Klemme

I'm an experienced programmer and would like to learn Java, in order
to make myself more marketable.

In particular, during the period 1968-1978 I worked years as a
Scientific Progammer, primarily programming in Fortran IV (66?).
Since then, I have occasionally programmed in SNOBOL, PASCAL, BASIC,
Plato, Fortran 95 and C++. Thus, I don't need a beginner's book.

Any recommendations on books for learning Java?

I'd first look at web resources, for example Sun's Java Tutorials.

http://docs.oracle.com/javase/tutorial/

They cover most basic language features and also most important parts of
the standard library (collections, IO). I'd say the language itself is
fairly easy to grok - getting to know the standard library usually takes
a bit more time if only because of the volume.

Kind regards

robert
 
A

Arne Vajhøj

I'm an experienced programmer and would like to learn Java, in order
to make myself more marketable.

In particular, during the period 1968-1978 I worked years as a
Scientific Progammer, primarily programming in Fortran IV (66?).
Since then, I have occasionally programmed in SNOBOL, PASCAL, BASIC,
Plato, Fortran 95 and C++. Thus, I don't need a beginner's book.

Wrox's "Professional Xxxx" is often good for developers that know
other languages.

You could try read reviews of "Professional Java JDK 6 Edition"
(it looks as if the 7 edition is not out yet) and see if it sounds
as a book for you.

There are also a large number of resources available on the
internet.

Arne
 
J

Jim Gibson

Dan said:
I'm an experienced programmer and would like to learn Java, in order to make
myself more marketable.

In particular, during the period 1968-1978 I worked years as a Scientific
Progammer, primarily programming in Fortran IV (66?). Since then, I have
occasionally programmed in SNOBOL, PASCAL, BASIC, Plato, Fortran 95 and C++.
Thus, I don't need a beginner's book.

Any recommendations on books for learning Java?

This is my favorite Java book:

<http://shop.oreilly.com/product/9780596008734.do>

backed up by the online API references:

<http://docs.oracle.com/javase/6/docs/api/>

<http://docs.oracle.com/javase/7/docs/api/>
 
L

Lew

Robert said:
Plato, Fortran 95 and C++. Thus, I don't need a beginner's book.

Yes, you do. Maybe not a beginning programmer's book, but definitely a beginning
Java programmer's book.

I have over thirteen years' professional experience developing Java and I still
learn something new every time I read the tutorials.

/Effective Java/ by Joshua Bloch is a must-have.

http://www.oracle.com/technetwork/java/effectivejava-136174.html

So is /Java Concurrency in Practice/ by Brian Goetz, et al.

http://www.javaconcurrencyinpractice.com/
I'd first look at web resources, for example Sun's Java Tutorials.
http://docs.oracle.com/javase/tutorial/

They cover most basic language features and also most important parts of
the standard library (collections, IO). I'd say the language itself is
fairly easy to grok - getting to know the standard library usually takes
a bit more time if only because of the volume.

But it's well worth the effort.

Start with the java.lang, java.io and java.util packages.

The API docs are a constant source of knowledge and inspiration.
http://docs.oracle.com/javase/7/docs/api/
 
G

Gene Wirchenko

Yes, you do. Maybe not a beginning programmer's book, but definitely a beginning
Java programmer's book.

I have over thirteen years' professional experience developing Java and I still
learn something new every time I read the tutorials.

I second this. Little quirks of a language that are at the
beginning level will be assumed to be known at higher levels. You
could end up blindsiding yourself. And review is good.

[snip]

Sincerely,

Gene Wirchenko
 
G

glen herrmannsfeldt

Dan Kalish said:
I'm an experienced programmer and would like to learn Java,
in order to make myself more marketable.
In particular, during the period 1968-1978 I worked years as
a Scientific Progammer, primarily programming in Fortran IV (66?).
Since then, I have occasionally programmed in SNOBOL, PASCAL,
BASIC, Plato, Fortran 95 and C++.
Thus, I don't need a beginner's book.

You should have nearby the official Java language reference manual.

That, and some sample programs to work on should be enough,
though your Java will likely look like on of the other languages.

I more elementary book would explain many things that Java
programmers are assumed to know, but that aren't in the LRM.

You might look at: http://webster.cs.washington.edu:8080/practiceit/

I have not seen anything like it for any other language.

-- glen
 
A

Arne Vajhøj

Yes, you do. Maybe not a beginning programmer's book, but definitely a beginning
Java programmer's book.

And that is an important distinction.

There is a huge difference between a beginners book in Java that spend
hundreds of pages teaching programming and OOP and a beginners book in
Java that assumes the readers knows about those.

Wrox typical has two books for each language. Beginning Xxxx that really
starts from scratch and Professional Xxxx that assumes you know the
basics and focus in the Xxxx specifics.

I don't know Professional Java, but their Professional C# is pretty
good for people that knows Java and/or C++ and need to learn C#.
/Effective Java/ by Joshua Bloch is a must-have.

http://www.oracle.com/technetwork/java/effectivejava-136174.html

So is /Java Concurrency in Practice/ by Brian Goetz, et al.

http://www.javaconcurrencyinpractice.com/

I would put Bloch in phase 2 and Goetz in phase 3 of the
learning process.

Arne
 
A

Arne Vajhøj

You should have nearby the official Java language reference manual.

That, and some sample programs to work on should be enough,
though your Java will likely look like on of the other languages.

I more elementary book would explain many things that Java
programmers are assumed to know, but that aren't in the LRM.

I assume you mean JLS or?

A big portion of people will not learn efficiently from JLS and
need something that start simpler and build up in knowledge.

Arne
 
G

glen herrmannsfeldt

(snip, then I wrote)
I assume you mean JLS or?

Yeah, that one.
A big portion of people will not learn efficiently from JLS and
need something that start simpler and build up in knowledge.

That is true, but the question is someone who has been programming
for years in six other languages.

But it also depends on what that person wants to do in Java.

To do things that previously would have been done in one of
the other languages, all one needs to know is the Java way
to say the same thing.

But yes, there are some things that aren't in the JLS that
one might want to know. If one wants to write applets, then
JLS is probably not the best choice.

-- glen
 
L

Lew

Arne said:
I would put Bloch in phase 2 and Goetz in phase 3 of the
learning process.

What you say makes sense, but getting Bloch early has an advantage.

I suggest getting Bloch right away, because he teaches idioms and
other things that will keep you out of trouble. It is better to learn
good habits from the start rather than unlearn bad ones later.

This is not to say you should attempt to learn the Java language
itself from /Effective Java/. You should use it in conjunction with
the tutorials and other sources to learn to use Java effectively.
 
D

Dan Kalish

Thank you, everyone, for your ideas. When I learned Pascal, I only had onebook, the official version. Unfortunately, all but one compiler, the IBM on 5 1/2" floppies, didn't adhere to the standard. When I set out to learnC++ (learning is still in progress) and Fortran 95, I had 5 books each.

Many of the books start with a general overview of computers and programming languages. I don't need that. Many others go into "language lite" mode,in which they only refer to some features which can be put together to make a working program. I want a little more than that - all the features butwith recommendations of which ones are better used than others. E.g., thewebsite says Ivor Horton's Beginning Java, Java 7 Edition (Wrox) "Introduces you to a host of new features for both novices and experienced programmers." That sounds good.

What do I want to do with it? I don't know. All I know is that my first career was as a programmer, I'd like to get back into it, and knowing Java is a useful credential. I suppose I'd like to use it for some tasks that can be done on a typical workstation.

What languages are taught in beginning Computer Science courses? There's no consensus on that but Java, C++ and Python are candidates.

SNOBOL is fun. Did you know the Library of Congress uses SNOBOL? At leastthey did in around 1998.

Dan
 
J

John B. Matthews

Dan Kalish said:
When I learned Pascal, I only had one book, the official version.
[...]
SNOBOL is fun. Did you know the Library of Congress uses SNOBOL? At
least they did in around 1998.

You may also want to look at Ada, which descends in part from Pascal.
GNAT, a popular reference implementation, includes a (non-Ada-standard)
SPITBOL extensions library:

<http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gnat_rm/>

Followup-To: comp.lang.ada
 
B

bob smith

I'm an experienced programmer and would like to learn Java, in order to make myself more marketable.



In particular, during the period 1968-1978 I worked years as a ScientificProgammer, primarily programming in Fortran IV (66?). Since then, I have occasionally programmed in SNOBOL, PASCAL, BASIC, Plato, Fortran 95 and C++.. Thus, I don't need a beginner's book.



Any recommendations on books for learning Java?



Dan

I'd go with this:

Java™ for Programmers (2nd Edition) (Deitel Developer Series) by Paul J. Deitel and Harvey M. Deitel (Apr 18, 2011)


The Deitels usually do a good job.
 
A

Arne Vajhøj

Thank you, everyone, for your ideas. When I learned Pascal, I only
had one book, the official version. Unfortunately, all but one
compiler, the IBM on 5 1/2" floppies, didn't adhere to the standard.
When I set out to learn C++ (learning is still in progress) and
Fortran 95, I had 5 books each.

Many of the books start with a general overview of computers and
programming languages. I don't need that. Many others go into
"language lite" mode, in which they only refer to some features which
can be put together to make a working program. I want a little more
than that - all the features but with recommendations of which ones
are better used than others. E.g., the website says Ivor Horton's
Beginning Java, Java 7 Edition (Wrox) "Introduces you to a host of
new features for both novices and experienced programmers." That
sounds good.

Maybe.

I always thought his book was starting completely from scratch and
not going that far.
What languages are taught in beginning Computer Science courses?
There's no consensus on that but Java, C++ and Python are
candidates.

I would expect Java and C# to be the most used languages
in CS courses today.

Arne
 
A

Arne Vajhøj

When I learned Pascal, I only had one book, the official version.
[...]
SNOBOL is fun. Did you know the Library of Congress uses SNOBOL? At
least they did in around 1998.

You may also want to look at Ada, which descends in part from Pascal.
GNAT, a popular reference implementation, includes a (non-Ada-standard)
SPITBOL extensions library:

And actually GNAT has a flavor JGNAT that outputs Java
byte code for the JVM.

I don't think it ever was popular though.

Arne
 
A

Arne Vajhøj

I'd go with this:

Java™ for Programmers (2nd Edition) (Deitel Developer Series) by Paul
J. Deitel and Harvey M. Deitel (Apr 18, 2011)

The Deitels usually do a good job.

Many years ago I bought their "Java Web Services for
Experienced Programmers". I was not impressed - apparently
their definition of "experienced" is way different from mine.

Arne
 
D

David Lamb

I would expect Java and C# to be the most used languages
in CS courses today.

We (Queen's U, Kingston, Ontario) start with 1 semester of Python then
one of Java and generally use Java after that (with C in one semester in
2nd year). I've heard rumours that Python has become common at many
universities for a first language, but don't know of any surveys that
would support that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,050
Latest member
AngelS122

Latest Threads

Top