Top critical review
on March 9, 2002
What are these people thinking? I get the impression sometimes that all you need to do to get a five-star rating is number all the pages. This is not a terrible book, but it's definitely not five, or even three, star material. I also have Horton's "Beginning Java 2" and Deitel's "Java - How to Program". I don't think these are five-star books either, but they're both much better than "Thinking in Java".
Several things hurt this book. One is the author's reliance on comparing concepts to C++ - great if you know C++, but I firmly believe you don't need that to learn java, IF the material is presented correctly. Neither Horton nor Deitel assume any exposure to C++.
Another failure is in the author's code examples. He is generous with these, as is expected, but his descriptions and explanations of his examples are insufficient in many cases. No problem with easy examples, but the reader is left to struggle when more complex examples are presented. It seems like the longer the example, the shorter the explanation. Both Horton and Deitel offer very comprehensive explanations of their examples. Deitel even goes so far as to number every single line of code, and explain virtually every line of code, number by number.
Compounding this is the almost complete lack of diagrams and graphics. For example, the author rambles on while trying to explain the hierarchy of the Exception class, when a simple tree diagram (as most books use) and brief explanation would have been so much clearer. In addition, there are no graphics of what his GUI code examples produce. If you're trying to work through one of the author's GUI examples, you have no way of knowing with any certainty what it's supposed to look like, because the author doesn't include any graphics to show you. Same problem with his examples that generate text output to a DOS window - no pictures to show you what the output should look like. Both Horton and Deitel include graphics to show what the code will produce. Also with regards to his GUI coverage, the author treats layout managers much too lightly and blows off GridBagLayout completely, essentially saying it's too complex for him to address and that you should instead look to a Swing book for guidance. Both Horton and Deitel address layout managers, including GridBagLayout, without problem.
If you were to compare the TOC of the three books, you might think "Thinking in Java" had the edge, with it's coverage of beans, JNI, JSPs, servlets, RMI, CORBA, and JDBC. However, their coverage is little more than a quick summary followed by recommendations to seek out other books on the respective topics.
In summary, this book is not a complete waste, and I do use it to complement my others. It's single greatest redeeming quality is that, technically, it's free. I'd recommend going to bruceeckel.com and downloading the text. Review that and then decide if you want to buy the hardcopy.