Master Java with these introductory books

Do these newly released books for Java beginners live up to their predecessors?

Page 2 of 2

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.

Professional Java Programming

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).

John Zukowski is a strategic Java consultant with his company JZ Ventures Inc., lectures on Web technologies for Boston-based Northeastern University, and writes books on Java. His latest books are Java Collections and the Definitive Guide to Swing for Java 2, Second Edition from Apress.

Learn more about this topic

  • For more Beginner Java content, check out these JavaWorld resources:

| 1 2 Page 2