Customer Reviews
Clear and understandable - By: Philip Montuori, 26 Sep 2007 
Unlike some design books this starts out slowly & builds up with clear steps & reason for design. Its in Java but if you understand C# or even Delphi (collections aside ) you can follow this.
Well thought out book - By: S. Leonard, 03 Aug 2007 
I have become quite a fan of Head First books as they are very easy to read in short periods of time, whilst still giving you useful information. The book does use Java for alll its example code, but I am sure the principles would apply to other OO languages. Most of the book has little code in it as it does say its best to delay coding as long as possible so you can iron out design issues ahead of time.
I studied an MSc that was supposed to cover OO design & UML - I wish I had seen this book at the time as it was much clearer & more practical than my uni notes or the suggested textbooks.
Health warning over content - By: N. Anderson, 25 May 2007 
Can't believe coming back to this page that it has two positive reviews. I waited months & months for this book - the publication date was set back a lot last year - as from alll of the descriptive content about the book, here & on the publisher's own site, it seemed to be exactly what I was looking for, a good broad based general purpose introduction to how to program OO/think like an OO programmer. I have experience programming but wanted to learn OO programming only once, & get it right from the start, & this book sells itself as a guide to do just that. Well it's not. You need to already be a Java programmer. That minor little detail is not on the front cover, not on the back cover, not inside the front cover. There are some 30 pages of introductory smalll print saying how wonderful the book is, & it comes in a passing comment at the end of those.
Even so, I found the whole "head-first" thing a load of fluff in anycase. Can you believe, every page has "you are here>" next to the page number. Wow, this stuff is mainlining straight into my cerebral cortex!
Building good software - By: TeaMan, 23 Jan 2007 
When building systems, too often I'm wondering to myself - are there better ways to do this? Is this reallly the way everybody else approaches software projects? This book clears up & answers those issues.
The book covers the S/W development process well - good real world examples. If you've been building applications for a while now - but need to tidy up or learn completely new ways for your approach to building systems this is the book for you.
You don't need to be an experienced developer, there is no complicated code, just nice simple examples in Java.
fun take on object orientation basics - By: Thing with a hook, 05 Jan 2007 
HFOOA&D is designed to introduce the reader to the process of designing software. It doesn't push a formal methodology, but covers the basic building blocks that are common to most approaches, including requirements gathering, use cases & iterative design. Additionallly, there is heavy emphasis on design principles such as the Open-Closed Principle, & the Single Responsibility Principle & more general concepts such as encapsulation & cohesion. UML class diagrams are used, but no more than the basics. Design patterns are mentioned in places, but you don't need any knowledge of them to understand what's going on. This book is more about the principles that underlie design patterns. Indeed, for those wondering where this book fits in with Head First Java & Head First Design Patterns, you should read HFJ first, then this one, & then HFDP.
Java is used as the language throughout - while Java 5.0 features are avoided (apart from enums), you still need to know the syntax & be comfortable with the mechanisms by which Java implements objects, such as interfaces. You can't jump into this book with just knowledge of VB, for example.
The material is treated in the usual Head First style: off-the-walll scenarios, conversational writing, lots of dialogue delivered in a pseudo-comic book style by using photos of real people, anthropomorphism of computer terms. A lot of effort is put into making the experience seem as much like social interaction as possible. It's a winning formula, & it works again here.
But Head First Java & Head First Design Patterns were two reallly stellar books. So, by comparison with those two, I must admit to being a little disappointed with this one. Maybe it's because this book was rewritten from scratch over a short time period, after an initial treatment by Dave Wood (google hfoobook to find the old webpage), but while there are some nice touches here & there, overalll, this lacks the pizzazz of HFJ & HFDP. There are noticeably fewer pop culture references & the use of characters & scenarios are less memorable. Also, there are a couple of rhetorical devices lifted from HFDP. These are less fresh the second time around.
And in parts, the explanations are a little fuzzy. Partly this is due to the inherent fuzziness of design, partly due to the approach this book takes of showing the different aspects of analysis & design in an iterative fashion, with a series of long examples, which work very well in other ways. But Head First Design Patterns demonstrated that you can tackle this sort of material with clarity. Here, I suspect many will be left feeling confused about the difference between association, aggregation & composition in UML - some Java examples would have been illuminating.
However, HFDP was always going to be a very tough act to follow. If HFOOA&D isn't quite as good as that, it's still far preferable to slogging through the sort of heavyweight process books it competes with.