TJR Forum

Home arrow Tech book reviews arrow Book reviews arrow Head First Object-Oriented Analysis and Design
Head First Object-Oriented Analysis and Design PDF Print E-mail
Written by Jem Matzan   
Feb 22, 2007 at 04:58 AM

I've been a fan of the Head First series from O'Reilly since the original Head First Java, and though I still think it could do with some improvements, it's among the best and most innovative ways to learn a new programming technology or technique. Head First Object-Oriented Analysis and Design follows perfectly in Head First Java's footsteps not only in its style and methodology, but also in its subject matter. This book is the natural next step to Head First Java -- it might be what you read after you've written several meaningful Java applications and are ready to go pro.

Writing analysis

Head First Object-Oriented Analysis and Design is not unlike other Head First books in terms of teaching style and presentation. It reads quickly because each page is a collage of photos, drawings, diagrams, faux handwritten notes, sidebars, and margin scribblings; there is less of a focus on straight, ordered text, and more of a focus on the presentation of ideas in a variety of interesting and entertaining ways. One of the book's primary examples, for instance, is a program that operates an electronic dog door. In explaining the entire development process -- from taking the requirements and brainstorming potential problems to implementing, testing, and later modifying the actual Java program that controls the dog door device -- you're treated to silly photos of a dog and its owners, and other whimsical drawings that show the development process as it applies to the problem.

Instead of traditional programming problems (which I find extremely effective for learning a programming language), Head First Object-Oriented Analysis and Design uses more unusual methods. You're given crossword puzzles, asked to rearrange refrigerator magnets, create lists, and complete sentences or phrases. While I don't feel that these cute exercises are sufficient for teaching someone a programming language from scratch -- nothing can replace programming problems that require a student to design and write programs to solve them -- they are extremely effective for teaching concepts, best practices, and design patterns, which is what this book is all about.

For a book with such wacky formatting, the editing is impeccable. I did not find any typos, coding errors, spelling mistakes, or punctuation gaffes in the entire book. That's not to say that there are none, but the reason why I point out mistakes like these is that they are very distracting to readers and can break their concentration and possibly mislead them.

Putting the book to the test

Head First Object-Oriented Analysis and Design assumes that you are already a Java programmer -- not just "familiar with" or "proficient in" Java, but actually able to create meaningful Java programs without much trouble. Specifically the book is aimed at working Java programmers who may not have learned to design and develop software efficiently. Head First Object-Oriented Analysis and Design seems focused on breaking experienced programmers of bad habits, and concentrates on the process of creating a software application rather than the mechanics of writing a simple program.

The book uses only a few regular and recurring examples: an inventory application for a guitar shop, a program that controls an electronic dog door, and in the latter parts of the book, some computer games. Each of them reasonably represents a working Java program, though the real guts of the software isn't fully shown. Presumably this is because there is hidden data and other outside factors such as machine control for the electronic dog door.

With Head First Java I was disappointed that there were few opportunities to create meaningful programs through coding exercises. I still stand behind that -- you can't learn a programming language by simply reading a book. You have to create programs to solve problems. Head First Object-Oriented Analysis and Design is more in tune with the Head First philosophy in that it requires the reader to already have programs (or at least ideas for them) to work on and refine. Readers are expected to bring their own exercises, so-to-speak. In this instance that's fine because it deals with advanced programming material and is squarely aimed at people who should already have a number of Java applications on their resume.

Can you use this book if you don't program in Java? Possibly -- it depends on the language you're using. The less focused it is on object-oriented design, the less useful Head First Object-Oriented Analysis and Design will be. C++ and PHP programmers should find a great deal of value in this book if they can get past the Java code and concentrate on the design concepts the book teaches.

Summary and conclusions

This book dramatically changed the way I think about writing software. Though I've never been a professional "for hire" programmer, I have written many programs in different languages over the years, and frequently have to code my way around problems with open source Web applications. If I'd had a better foundation in designing software for production use rather than just for academic problem-solving, I'd have saved myself a lot of time and stress over the years. This book is able to instill such a foundation in you, assuming you have a solid understanding of Java 5.0 or above.

Don't let the page count scare you -- this is a surprisingly quick read, and if you can follow the material, it's a lot of fun as well.

Title Head First Object-Oriented Analysis and Design
Publisher O'Reilly
Author Brett D. McLaughlin, Gary Pollice, Dave West
ISBN 0596008678
Pages Paperback, 600 pages
Rating 10 out of 10
Tag line A brain-friendly guide to object-oriented analysis and design.
Price (retail) U.S. $33. (Buy it from Amazon.com)

Discuss this article or get technical support on our forum.

Copyright 2007 JEM Electronic Media, Inc. No reprints without written permission.

<Previous   Next>

The Jem Report is part of the JEM Electronic Media network of information technology Web sites.
Spammers can email us here