Best second Java book

D

Duane Evenson

The first book on Java a person buys has all the language components. This
means that the student sees almost as many abstract classes as normal
classes. Equal weight is given to every topic.

Its the _second_ book that teaches programming style: eg. initialize class
variables when declared versus in the constructor. What would you
recommend as good second books to buy?

TIA
Duane
 
S

Stefan Ram

Duane Evenson said:
Equal weight is given to every topic.

How many topics are there in Java?
Its the _second_ book that teaches programming style: eg. initialize class
variables when declared versus in the constructor. What would you
recommend as good second books to buy?

The first book can not avoid to choose a specific style, even
for the "Hello, World" program. So the assumption that the
first book can be neutral does not apply.

On the other hand, one also can hardly treat style separated
from other concerns.

Since I can not answer your question, here is another opinion
on the topic:

http://www.norvig.com/21-days.html
 
R

ralph.wen

right now I'm reading java how to program and core java 2, i'm not a
fast learner, so i have to read as many as i can
 
L

Luc The Perverse

right now I'm reading java how to program and core java 2, i'm not a
fast learner, so i have to read as many as i can

I'm not really sure that I agree with that.

Java, like many subjects that I am familiar with the process of learning, is
in my opinion something which you improve by doing, not by reading. The
purpose of the reading is to give you an idea of what classes, and
capabilities are out there - but does little to show you have to program.

All too often when we encounter a problem and ask for help - when we have
difficulty communicating it is because we don't know what question to ask.

That is where a book comes in. It will show you classes, libraries,
functionalities very quickly - so that you know that they exist. Then when
you need to use one, hopefully, a little flag will go up and you will
remember that there is something (a class) which can help you accomplish
your task, even if you don't remember what that class is
 
K

Ken

Duane said:
The first book on Java a person buys has all the language components. This
means that the student sees almost as many abstract classes as normal
classes. Equal weight is given to every topic.

Its the _second_ book that teaches programming style: eg. initialize class
variables when declared versus in the constructor. What would you
recommend as good second books to buy?

TIA
Duane

For a first book I recommend the Java Programming Language from Sun
(some have called it the K&R of Java books). My personal preference in
learning a language is to have the most concise reference for the
language. During my college C class I used K&R and much to the marvel
of those around me it had everything needed at the time (after all it
did present the entire language with out any filler) and was a very
often borrowed book despite those same people investing in much larger
books.

I don't understand the idea of 'topics' but the language is definitely
limited and so someone can learn the language in full. Topics on the
other hand proliferate with every new problem and solution one can
imagine.

I agree strongly with Mr. Luc The Perverse. Doing is very important
and in my experience fooling yourself with a verbose book is not the
way to do it. There are so many people saying I know X because I read
Y. The first book is by far the more important... it you want the book
to instruct others they are best served with a complete reference book
following the rule of thumb that is "should be made as simple as
possible, but not simpler."

After the first book... well then you are looking for a book to soak in
I suppose... to read for ideas and insight... if this is for a Computer
Science student who is still learning and would have taken C or C++
then Thinking in Java, currently the 4th edition would be a good
choice. It is a good choice because it connects C++ elements with Java
to differentiate and it provides a good deal of depth on issues (for
someone who somehow only managed to learn Java, references to other
programming languages may prove distracting). It isn't the kind of
book a normal person would read from cover to cover it is just what I
said the kind of book you soak in to get new ideas. After that...
Well I suppose you are ready for the 'Classics' like Design Patterns or
books on Data Structures (never a waste of time) or books on
Threading... mean while I expect you will be swimming around at all
times in the API of your choice trying to get someplace.

One more thing for anyone starting... Learning programming is not an
orderly process you need to solve problems and that means using what
ever references you can get your hands on. Don't say if I read X then
Y I'll be really good... might be true it you understand X and Y fully
but how will you know? What would be the point if it isn't to set out
to build what you want... that is why we became interested in the first
place right to create? So go off and start building what ever it is
you are interested in building!
 
M

Martin Gregorie

Duane said:
The first book on Java a person buys has all the language components. This
means that the student sees almost as many abstract classes as normal
classes. Equal weight is given to every topic.

Its the _second_ book that teaches programming style: eg. initialize class
variables when declared versus in the constructor. What would you
recommend as good second books to buy?
As a supplement to the first book you need the Java SDK documentation
set. If you haven't already got it, download it now and install it where
its easy to access.

As a slightly off the wall suggestion, try "The Practice of Programming"
by Kernighan and Pike. Its not specific to Java, but there are good
examples and suggestions in it that are applicable to any block
structured language. If you adopt the approaches in this book you'll
find you're writing well-documented code that's easy to read, modify,
re-use and debug.
 
D

Duane Evenson

For a first book I recommend the Java Programming Language from Sun
(some have called it the K&R of Java books). My personal preference in
learning a language is to have the most concise reference for the
language. During my college C class I used K&R and much to the marvel
of those around me it had everything needed at the time (after all it
did present the entire language with out any filler) and was a very
often borrowed book despite those same people investing in much larger
books.

I don't understand the idea of 'topics' but the language is definitely
limited and so someone can learn the language in full. Topics on the
other hand proliferate with every new problem and solution one can
imagine.

By topics I mean both language topics and standard classes. For example a
first book will have one chapter on program flow (if, while, switch) and
another chapter on swing components. While the thought of a new programmer
without a clear understanding of program flow commands makes me shudder,
this also means the coverage of swing components is light. I want a book
that discards all the introductory information. Granted, its more
difficult for an author to not start at the beginning when he's writing
about a topic, but I don't want to reread introductory information - I
want to read more on intermediate Java. I guess I'm cheap -- cheap and
lazy. :)
I agree strongly with Mr. Luc The Perverse. Doing is very important and
in my experience fooling yourself with a verbose book is not the way to
do it. There are so many people saying I know X because I read Y. The
first book is by far the more important... it you want the book to
instruct others they are best served with a complete reference book
following the rule of thumb that is "should be made as simple as
possible, but not simpler."

I agree, programming is important. Right now, I'm mixed up in drag and
dropping nodes within a tree, dragging nodes over to a tabbedpane to
create tables, and dragging tabs to the desktop to detach them from the
main frame.
However, I also have a hot little credit card in my wallet and want to buy
a bunch of java books. The bookstore is only going to have the
introductory level books so I plan to order several at once online.
Without reading them, I will only have to go by your recommendations to
avoid getting the same kind of books I could get at Chapters.
After the first book... well then you are looking for a book to soak in
I suppose... to read for ideas and insight... if this is for a Computer
Science student who is still learning and would have taken C or C++ then
Thinking in Java, currently the 4th edition would be a good choice. It
is a good choice because it connects C++ elements with Java to
differentiate and it provides a good deal of depth on issues (for
someone who somehow only managed to learn Java, references to other
programming languages may prove distracting). It isn't the kind of book
a normal person would read from cover to cover it is just what I said
the kind of book you soak in to get new ideas. After that... Well I
suppose you are ready for the 'Classics' like Design Patterns or books
on Data Structures (never a waste of time) or books on Threading... mean
while I expect you will be swimming around at all times in the API of
your choice trying to get someplace.

I've got TIJ, 3rd ed., and "Programming and Problem Solving with Java." I
recently downloaded, printed and bound as a 8-1/2 x 5 booklet "The Design
Patterns Java Companion" by Cooper - excellent reference. I also have
"Data Structures and Problem Solving Using Java" by Weis among many other
data structure books.
 

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

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,202
Latest member
MikoOslo

Latest Threads

Top