I found it hard to write a review about this book. Why? Because apart from a few, very minor typos it is simply superb! In my opinion, it is one of the best and sure to be one of the most influential books in this subject area. The O’Reilly Head First series of books are fast becoming the de facto standard, and I recommend that anyone who wants to get a deep understanding of how you should approach designing and developing software, read this book, no matter what your background or current skill set is. To date, I’ve read this book twice, cover to cover. It is not a particularly thin book, but it is very easy to read.
A colleague once told me that he picked up “Head First: Design Patterns” in a bookshop and flicked through it. He didn’t buy it because he wasn’t sure about the format, which if you’ve never seen a Head First book before, might at first seem a little different and perhaps off putting. As one reviewer put it:
“Hidden behind the funny pictures and crazy fonts is a serious, intelligent,
extremely well-crafted presentation of OO Analysis and Design. As I read the
book, I felt like I was looking over the shoulder of an expert designer who was
explaining to me what issues were important at each step and why.” — Edward Sciore
The book’s primary focus is “How to write great software”; this is summarised in 3 steps:
- Make sure your software does what the customer wants
- Apply basic OO principles to add flexibility
- Strive for a maintainable, reusable design.
It is a practical, readable and refreshing step-by-step walkthrough of the development process. It covers how to incorporate flexibility into all aspects of the software development life cycle. This book leads you through simple and then more advanced concepts by allowing you, the reader, to make the connections. In addition, it gives an easy to understand introduction to UML class diagrams.
Kathy Sierra talks about “Creating passionate users” over at the blog of the same name (highly recommended reading, as it is a gold mine of ideas and advice on creating great software). One of the beliefs espoused there is that it is better to get passionate responses from users at either end of the spectrum (i.e. love or hate it), rather than a mediocre “Yeah, it’s OK”. Judging by the polarised reviews over at Amazon, this book certainly creates passionate users/readers.
It is always hard to do justice to a great book in a short review, and this book is no exception. It is more readable and accessible than most other OO design books (excluding the other Head First design titles, of course!). I agree with Steve Bailey’s comments:
”I’d recommend this book to even the most veteran OO programmers. I put it up
there along with Code Complete …”
I would love to hear your thoughts on this book, so please leave a comment.