While the book's presentation is definitely different, the question that remains is does it do a good job at explaining Java? Technically, the concepts are explained well. Although each concept is explained in approximately 200 words, the accompanying visuals are helpful in reinforcing the concepts. One point worth noting, the two-page presentation methodology occasionally results in consecutive concepts being disconnected and a lack of natural reading flow.
The book itself is broken down into 14 chapters to explain the core Java basics. You'll learn about some language fundamentals, GUI programming, multithreading, and I/O basics. There's even a bit on reflection and serialization, which was nice but may be a little advanced for its target audience. After making your way through, you should be able to quite easily create graphical and non-graphical multithreaded programs and do some I/O. You can then graduate onto a more advanced book like the book I'll review next.
Brett Spell's Professional Java Programming works well for Java beginners who feel they can pick up the language details as they go along and want a library-first approach at learning Java. As the Java libraries are so rich, some people prefer to learn about them first in order to avoid reinventing the wheel as they become familiar with the language. For most people though, Professional Java Programming serves as a better follow-up to the other books reviewed here. It's subtitle really gives you a strong feel for its focal points: Class Design, Threads, Event Handling, Layout Managers, Swing Components, JDBC, XML, Security, JavaHelp, JNI, Performance, and Distributed Objects. Spell even threw in an internationalization chapter that the cover doesn't mention.
The book starts off with Java basics and class design. Instead of covering language basics, Spell discusses such topics as the runtime constant pool and garbage collection. Instead of covering inheritance and object basics, he covers the reasons behind loose coupling and strong cohesion, among other topics. The first two chapters give you a good feel for how the rest of the book will come across: well-written, concise text, lots of code, and the occasional UML diagram (class, collaboration, and sequencing, to name a few).
The rest of the book delves into several of the standard Java libraries. You'll notice a strong emphasis on client-side programming over server-side programming. After a chapter on multithreaded programming, the next eight chapters cover Java Foundation Classes (JFC) concepts, from event handling and layout managers, to components with an emphasis on trees and tables, through drag-and-drop and printing. After making your way through the more than 400 pages on GUI programming, you'll welcome the change to server-side concepts like JDBC -- including 2.0 capabilities like row sets; on to XML with an exploration of JAXP, SAX, DOM, and XSL; as well as distributed objects -- with sockets, CORBA, and RMI. This leaves a handful of more general concepts to explore: the I/O coverage is primarily focused on serialization, but also describes storing object instances in a relational database. Spell goes over the JavaHelp and JNI APIs too, as well as performance tuning and internationalizing your application. The security content is surprisingly limited to code signing and exploring the permission types.
All in all, the book provides a nice broad look into the author's choice of standard and extension libraries. It seems the coverage chosen tries to fill in the gaps in the Wrox lineup between Beginning Java 2 and the Professional Java Server Programming.
Is it time for a change?
Everybody learns differently and it's hard to pick a single best book for all. Books like Core Java, Java in a Nutshell, Thinking in Java, The Java Tutorial, Mastering Java 2, and others have been around for some time and continue to serve their purpose well. Java 2: A Beginner's Guide has the best shot at joining these books as a first choice for learning Java, doing a great job for the beginning Java programmer.
For the right person, I'd recommend Java: Your Visual Blueprint for Building Portable Java Programs and Java 2 Weekend Crash Course. The former is great for someone looking to learn Java by using both halves of their brain, while the second is a quick, inexpensive way to pick up Java basics. Java in a Nutshell, once at less than 0, is now pushing 0 and is more of a reference than a tutorial. Professional Java Programming is also good, but falls more in the realm of Core Java, Volume 2, as a second book, then something to get you started. At 0, Professional Java Programming is also the most expensive of the bunch, including the older books. For almost everyone, I can recommend Beginning Java Objects as a primer to object modeling. Although the book's author and many readers may disagree with me, I can't recommend Beginning Java Objects as a first book to learn the Java programming language. But once you grasp the basics of the language, if you need to learn how to properly design a system, this book is a great help. This book works well even for someone very familiar with Java programming but lacking skills in the object-modeling world.
If you have absolutely no background in programming though, I'd be more inclined to pick up one designed for a first-semester, computer science student, like K.N. King's Java Programming: From the Beginning (Norton, 2000).
Learn more about this topic
- Beginning Java Objects, Jacquie Barker (Wrox, November 2000; ISBN1861004176)
- Essentials of the Java Programming Language, Monica Pawlan (Addison-Wesley, May 2000; ISBN0201707209)
- Essentials of the Java Programming Language, Part 1
- Essentials of the Java Programming Language, Part 2
- Java 2A Beginner's Guide Herbert Schildt (Osborne, December 2000; ISBN0072127422)
- Java 2 Weekend Crash Course, Julio Sanchez and Maria Canton (Hungry Minds, December 2000; ISBN0764547682) (no source)
- JavaYour Visual Blueprint for Building Portable Java Programs, Dr. Ernest Friedmann-Hill (Hungry Minds, February 2001; ISBN0764535439) (no source)
- Professional Java Programming, Brett Spell (Wrox, December 2000; ISBN186100382X)
- Java ProgrammingFrom the Beginning, K.N. King (W.W. Norton & Company, July 2000; ISBN0-393-97437-5)
- Java in a Nutshell, Third Edition, David Flanagan (O'Reilly & Associates, November 1999; ISBN1565924878)
- Core Java 2, Volume 1Fundamentals, Cay Horstmann, Gary Cornell (Prentice Hall PTR/Sun Microsystems Press, December 2000; ISBN0130894680)
- The Java TutorialA Short Course on the Basics, Mary Campione, Kathy Walrath, Alison Huml (Addison-Wesley, December 2000; ISBN0201703939)
- Thinking in Java, Second Edition, Bruce Eckel (Prentice Hall, 2000; ISBN0130273635)
- Mastering Java 2, John Zukowski (Sybex, August 1998; ISBN0782121802)http://www.sybex.com
- Locate more Book Reviews in JavaWorld's Topical Index
- For more Beginner Java content, check out these JavaWorld resources:
- View all Java Tips and submit your own
- For Intro Level articles, visit JavaWorld's Topical Index
- Learn Java from the ground up in JavaWorld's Java 101 column
- Java experts answer your toughest Java questions in JavaWorld's Java Q&A column
- Sign up for the JavaWorld This Week free weekly email newsletter and keep up with what's new at JavaWorld