
Head First design patterns
by Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, Elisabeth Robson, Fu li man · first published 2004
109mentions
65recommended by
100HN commenters
2008–2025first – last mentioned
65% recommend24% neutral11% critical
Why HN recommends it
Friendly, conversational intro to design patterns with Java examples; teaches the underlying ideas like composition over inheritance. Suits newcomers, and reading it first makes the GoF book easier.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.








Since you say you are a novice, I'd recommend Head First Design Patterns: http://www.amazon.com/dp/0596007124 Do not jump in with the GoF Design Pattern book. :)
on “ Ask HN: What are some good books for understanding OOP? ” ↗If you will be programming in Java, these books will serve you incredibly well: * Effective Java * Java Concurrency in Practice * Head First Design Patterns
on “Ask HN: Books for soon to be Software Engineers” ↗…have browsed it for inspiration) is that it is more or less an encyclopedia. It lists the discrete patterns, gives them names, as if they've come down the mountain on stone tablets. I found a book like Head First Design Patterns to be much more bottom-up. It hammers home the idea that discrete design patterns really are just the organic side-effects of applying concepts (meta-patterns?) like "composition over inheritance", "don't…
on “Books Programmers Don't Really Read” ↗> check out the GoF book Oh dear God, that's the last thing he should do. That book is so incredibly dull. It makes Death Valley look like a lush rain forest. Might I suggest Head First Design Patterns [1] as a good introductory alternative that won't sap his will to live. [1]: http://www.amazon.com/First-Design-Patterns-Elisabeth-Freema...
on “Design Patterns in the JDK” ↗…accessibility modifiers (public, private, protected) and others. That is the method I use when tutoring individuals in similar situations as yours that want to get back into Java specifically. I recommend the Head First Design Patterns book if you're not turned off by the less-than serious nature of it. I really did not like the book at first glance, but after actually working through some of it as instructed I enjoyed it and really…
on “Ask HN: Tools for (re)learning Java” ↗…algorithms (Cormen, Leiserson, Rivest, Stein) -- Explains various algorithms and their benefits/drawbacks The Mythical Man-Month -- What project management for software looks like when done right (and wrong) Head-First Design Patterns -- Head First series is a little goofy, but you will remember how an Observer pattern works after going through their goofy examples. Gang of Four's design pattern book will put you to sleep.
on “Ask HN: Computer science neophyte needs a book recommendations” ↗1. Head First Design Patterns - Didn't learn patterns in school. This book made a lot of difference in communication with more experienced programmers. 2. Pragmatic Programmer - A classic, learned many practical tips for day to day…
on “Ask HN: What three books impacted your career the most?” ↗- Programming Interviews Exposed - Head First Design Patterns - Clean Code I'm a junior in my first job and I've had these books in my personal library for a while now. Incredible helpful
on “Ask HN: What books do you keep on your desk?” ↗Technical concepts for writing code: -------------------------------------- Clean Code (Robert Cecil Martin) The Art of Unit Testing (Roy Osherove) Head First Design Patterns (Elisabeth Freeman, Kathy Sierra) Martin Fowler's blog: https://martinfowler.com/ . How to gather requirements and write business-readable code: -------------------------------------- Domain-driven…
on “Ask HN: What are your go-to blogs and books on building business applications?” ↗* The Pragmatic Programmer (Read this once every 6 months until it's obvious) * Head first design patterns * Agile Web Development with Rails It's not obvious, but the rails book is a great introduction to test-driven development in general.
on “Ask HN: Books for soon to be Software Engineers” ↗I would provide you with book suggestions, but as I said, most of what I've learned is due to lectures and examples. If you've got to have a book, I've heard that O'Reilly's Head First Design Patterns is pretty good for the patterns themselves (heard the same for most of the Head First series). That book uses Java. As for when I come across a problem, I've found that if you search for your problem…
on “Ask HN: How do I best learn Java in order to build a multiplayer game?” ↗…approach manner, or in the context of a specific language they have tried to explain where new design patterns have emerged or the original patterns had mutated. A couple of those worth checking out are "Head First Design Patterns" http://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/... "Design Patterns In Ruby" http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/032... "Learning JavaScript Design Patterns" http://www.amazon.com/Learning-JavaScript-Design-Patterns-Os...
on “Ask HN: How best to learn software design principles?” ↗If you want a good alternative to the GoF book try Head First Design Patterns. I findit much more approachable and much more enjoyable to read. http://www.amazon.com/Head-First-Design-Patterns-Freeman-ebo...
on “Ask HN: What are some of the best written programming books?” ↗Head First Design Patterns by Eric Freeman Design patterns by GoF Code Complete by Steve McConnel
on “Ask HN: What books had the greatest effect on how you structure your code?” ↗…enforce with some build/checkin system) - Make a refactoring change to isolate sections of code that minimally touch other sections and separate them into projects As for books, I would suggest looking at Head First Design Patterns by Freeman and Robson. This isn't explicitly about project design, but it is about designing reusable code modules which can really help in any language. It is aimed toward object-oriented languages,…
on “Ask HN: How’d you go from a noodler to writing large well structured programs?” ↗