Welcome to Head First Design Patterns

At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don’t want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns–the lessons learned by those who’ve faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on…something else. Something more challenging. Something more complex. Something more fun.

With Head First Design Patterns, you’ll avoid the embarrassment of thinking Decorator is something from the “Trading Spaces” show. Best of all, in a way that won’t put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts.

You’ll learn:

  • Fourteen core design patterns
  • Nine fundamental design principles
  • The difference between a pattern and a principle
  • How using design patterns can make your team more effective

If you have the book already, you’ll find everything you need to get the most out of it below. If not, you can get it on Amazon.


The book is just one piece of your adventure. Don’t miss out on brain-friendly updates, learn to code videos, live sessions and general cool stuff! Just give us your email and we’ll send you something at most once a week. Don’t worry, we’ll never sell your name and you can remove yourself at any time.

Get the Source Code

You should be typing in all the examples, but sometimes, when you encounter errors, it pays to have a working version of the code to compare against:

Book-related Resources

  • Watch the MVC song here.
  • Download README.txt. This has all the command line run commands for each application, as well as helpful comments.
  • Download the heatindex.txt file containing the heat index formula for the Weather Station in chapter 2.
  • Download the test.txt file for chapter 3
  • If you are using ant to compile the java files, you can download the build.xml file. (Make sure you name this file “build.xml” to use it with ant.)
  • Download the code examples in C++ here (created and supported by Glenn Puchtel).

Just For Fun

Don't miss out!!

Don't miss out on brain-friendly WickedlySmart updates early access to books and general cool stuff! Just give us your email and we'll send you something about once a week. 

You have Successfully Subscribed!