|
Head First Java
Author: Kathy Sierra & Bert Bates
Pages: 619
Publisher: O'Reilly & Associates
ISBN: 0-596-0046506
Summary: Java, Head First!
Review Date: 29 September, 2003
Buy the 2nd Edition from Amazon
|
When I first became aware of O'Reilly's new Head First series, I thought to my self, Oh no, O'Reilly is stooping to the likes of the for Dummies books. Happily I can report that such is certainly not the case. Head First Java is the first in a series of books that will likely (I hope!) have a major impact on how instructional computer books are written.
The "Head First" series is based on the idea that the human brain is able to remember certain things very well, and very good at ditching the rest of the 'uninteresting' stuff. So the whole gist of the book is teaching Java in a way that encourages your brain to let it stick. The authors use lots of pictures (not necessarily even related to Java), diagrams, puzzles, and exercises in an attempt to 'trick' your brain into thinking that all this information is novel and worth keeping around for later retrieval. The authors will often use several of these devices when explaining a topic, in hopes that at least one way will be sucessful in getting the material to stick.
The target audience of the book is experienced programmers who want to learn Java. While the techniques used would be very suitable for beginners, the material does assume a fair amount of familiarity with various programming topics.
The book starts off with the basics, but progresses at a speedy clip. The authors are strong proponents of object-oriented programming, and OO concepts are introduced very early on. Encapsulation, inheritance, and polymorphism are all covered, and the authors do a very good job of clearly explaining how it all works in the context of Java. I have a much better grasp now of how object reference variables work (had this book only been around when I was learning Java in college!) Their explanation of object-oriented design even helped me better design a set of objects for a search-engine project in Perl I was working on. The authors also encourage test-driven development, and use examples of it early on (but only early on). The authors are both instructors, and you can tell they've been teaching this stuff for a while. They know what works when presenting Java. The reader of the book only benefits from their experience.
The authors also cover use of the Java library, GUI programming with Swing, midi sequencing (!), serialization, network programming, and they scratch the surface of distributed computinig with an introduction to remote method invocation (RMI). At the end of the book is a list of 10 topics which they would have liked to include in the book but which they only cover lightly.
So does this Head First stuff actually work? Well, I cheated a bit and didn't actually do all the exercises (shame on me!), but regardless, you can't go through the book without a fair amount of it sticking in your head. As an example, I'll forever have in my head now the picture of the guy with eyes wide pointing to the sky and exclaiming, "There is no way I'm gonna catch that thing!", in the section on handling exceptions. It works, even if you slack off and just read without doing the exercises. Stuff really sticks when presented this way (and even more so when you do your part as a reader...).
The book covers a fairly broad set of topics, but doesn't go into too much depth in any of them. Such a book would be 1000 pages instead of 600, though. So it's a pretty good balance. The book does leave you with a foundation of what you need to know to advance in each topic if needs be.
One gripe I have about the book (and about a lot of techninical advertising in general, but that's a different story) is that in their quest to get this material in your head the authors occasionally utilize risque or racy content. I recognize a lot of people will find that kind of content humorous and/or memorable, but I just found it distasteful. I get enough of that garbage from the media, popup ads, and spam in my inbox as it is. I don't need more from my technical books. In my opinion the authors could have still accomplished their goal with the book without such content (And I'll get off the soap box now :-).
Overall if you're looking to come up to speed on Java fairly quickly, and in a way that won't put you to sleep with mind-numbing examples, dry explanations, and page after page of boring code listings, then I would readily recommend Head First Java. I'll have to admit, after reading this book, the next technical book I read (even from O'Reilly, :-/) just wasn't nearly as fun!
Overall rating: 8.5/10
(Yeah, I had a major gripe with some of the racy content, but overall, I think the pedagogical style is excellent, and I had a lot of fun reading it, otherwise).
|