Head First Design Patterns

Date Published: 05 December 2008

Head First Design Patterns

I picked up Head First Design Patterns a couple of months ago and read it last month. I have to say that this book is totally different from any other software development book I’ve read in the past. Most software books, you probably know, follow a fairly predictable pattern with each chapter covering some piece of technology through large amounts of text interspersed with code blocks and screenshots. Some are a bit different, like cookbooks that have recipes for various tasks or Murach’s titles that lay out explanations and code on opposite pages. But in general, they’re pretty dry and tend to follow a very predictable, dare I say boring, structure. If you’re not excited about the topic, most tech books probably aren’t going to generate any excitement for you.

The Head First Design Patterns book is different. I mean, look at the cover. It doesn’t look anything like any other programming book I own. It’s not covered with tools,animals,geeky black and white author photos, or little squares. It’s definitely eye-catching when you see it on a shelf next to all the usual suspects in software development titles. And the inside of the book is very different as well.

The authors and publisher realize that different is scary, so they were good enough to spend a little time at the start of the book describing what the heck they were thinking when they put this thing together. Where typically you find the boilerplate “who is this book for” stuff in the intro, this book answers some questions you might actually be thinking, like:

  • How can this be a serious programming book?
  • What’s with all the graphics?
  • Can I actually learn this way?

Here’s the thing – by making the subject matter less boring, they’re better able to drive home the concepts in a way that makes them stick. The intro explains, in just a few pages, why your brain tends to ditch things that are not interesting in favor of things it thinks might be more important (like tigers that might be jumping out to eat you), and how the authors have attempted to dupe your brain into actually thinking the material in the book is worth retaining

Some of the techniques used include repetition (but not in a boring way), humor, lots of visuals, hand-written notes instead of reams of text, activities, multiple learning styles, people (as in, pictures of people), and content for both sides of the brain. You can see an example (from Amazon’s preview) on the right.

Now, you may be thinking, “hold on, Steve – all this cutesy picture stuff is great for school kids, but I’m a grown up software professional and I don’t need any pictures reducing the total word count I get for my $ when I buy a book.” To that I must say, give it a shot. Presumably you’re buying a book so that you can learn something, and while some may debate that I’m a “grown up software professional” I found this book to be a much more enjoyable read than many others (and I read a lot of tech books) and it did a better job than others at teaching the material.

So What’s In It?

Head First Design Patterns covers some of the most common patterns described in the Gang of Four’s Design Patterns book. These include:

  • Observer
  • Decorator
  • Factory / Factory Method / Abstract Factory
  • Singleton
  • Command
  • Adapter
  • Facade
  • Template Method
  • Iterator
  • Composite
  • State
  • Proxy
  • Compound Patterns and MVC (Model – View – Controller)

Design Patterns is a great book, no doubt, but it’s not a teaching book. It’s a reference. Head First Design Patterns is the book you want if you want to learn when and how to implement these patterns. I’ve passed my copy on to Brendan, and most likely I’ll recommend it to all of my developers.

Steve Smith

About Ardalis

Software Architect

Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.