Jump to ratings and reviews
Rate this book

Head First Series

Head First Design Patterns

Rate this book
You're not alone.

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.

You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code.

You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern.

Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter.

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.

If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

638 pages, Paperback

First published January 1, 2004

Loading interface...
Loading interface...

About the author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
4,166 (49%)
4 stars
2,900 (34%)
3 stars
979 (11%)
2 stars
221 (2%)
1 star
93 (1%)
Displaying 1 - 30 of 483 reviews
Profile Image for Maxim Chetruşca.
31 reviews16 followers
January 4, 2014
"If it walks like a duck and quacks like a duck, then it might be a turkey wrapped with a duck adapter..."
Profile Image for Mike.
12 reviews5 followers
November 4, 2013
I tried to start my design pattern education with the classic GOF's book. Well, it ended with the first few pages and became a coffee cup coaster. Sacrilege, I know, but I have to be honest. I also tried another Head First book, on another topic and while okay, it just didn't speak to me. I only tried this book after a Microsoft Partner I respected recommended it. Wow. It is probably one of the best introductory technical books I've read in my 20 years of programming. The whimsical and technical are perfectly balanced. I come from a COBOL mainframe background and have recently switched to C#. Even though the book is Java oriented, I felt at home and was able to follow the code examples. I would recommend this to anyone, but I suggest you have some programming experience first. I don't think a brand new programmer can appreciate the significance of patterns, and might tend to use them for everything. The book does stress that you should favor simplicity over complicated patterns, and I couldn't agree more (as would anyone debugging someone else's code at 2am).
Profile Image for Alex.
36 reviews
December 2, 2007
Easily the best introduction to design patterns I've seen. If you're new to object-oriented design or new to design patterns, this is the first (but definitely not the only) book you should buy.

Computer books are so often textbooks written in the high-falutin' language of hooded academics. There's nothing wrong with that, but such language is next to useless for the uninitiated. O'Reilly's Head First series breaks the textbook mold with verve. I find Design Patterns to be, by far, the most successful Head First effort, introducing the point of design patterns, the families of design patterns, and a selection of specific patterns with ease and elegance.

HFDP is by no means a terribly complete coverage of design patterns. It entirely omits arguably important (though trickier) patterns such as Visitor and Bridge. Further material is required to learn the pantheon of principal patterns.

In my own experience, I found the Gang of Four book to be much more penetrable after having finished Head First Design Patterns. HFDP helped me "grok" design patterns — it communicated a deeper sense of taste for code and presented some of the finer, but more accessible samplings; GoF then offered up a larger banquet table with more varied treats I could then appreciate with the discerning palate HFDP cultivated.

If, like I was, you're among the newbies when it comes to patterns, do your code (and your sense of taste) a favor and pick this book up now.
Profile Image for Knute Snortum.
22 reviews2 followers
January 7, 2012
Head First Design Patterns is a great way to get a good overview (and some meat) about design patterns. This will interest programmers and computer scientists the most, but as you learn near the end of the book, design pattern were first created by an architect! So if you're interested is solving problems or how to break apart a problem into pieces that are more easily solved, this book may interest you.

If you're like me -- a software developer who's been around a while -- you will have noticed that a lot of software "problems" are similar. It makes sense, then, that there would be interest in similar, tested, ways of solving these problems. These are design patterns.

The Head First series is interested in getting you to learn by using many of your senses and thought patterns, so they use puzzles and "personification" -- turning the design patterns into "people" who argue with each other. This may seem odd in a technical book, but the idea is to stimulate your brain in as many ways as possible so you will more easily remember what you're reading.

I'd recommend this book to anyone who is interested in creative ways to solve problems.
Profile Image for Jeffery Moulton.
Author 2 books12 followers
January 8, 2011
This is one of the best technical books I've ever read. It changed my world as a programmer and what I thought was a good technical book. The topic is very important for any developer that works with object-oriented programming (OOP) and the book presents a complicated topic in a fun, readable way (with lots of pictures!).

I highly recommend this book to any developer, no matter how experienced, and especially those who struggle getting through the long, boring technical books out there and are looking for a fun way to learn the material without dozing off a million times!
Profile Image for Nariman.
82 reviews105 followers
March 23, 2020
Head First Design patterns is probably one of the best OOP books I've ever read. If you are new to design patterns, this book is a great start. Each chapter focuses on a design pattern and contains real-life examples and scenarios to help you understand the concept easier. Do not consider this book as a complete pattern catalog. Some of the famous patterns like Builder or Visitor aren't covered, so you need to read the Gang of four book to learn about them.
Profile Image for Siddhant Shrivastava.
61 reviews14 followers
August 23, 2018
Entertaining and edifying at the same time! This is one of the best Head First books out there. Read this even if you are not going to be doing any software engineering for sometime since this is the kind of book that stays at the back of your mind when you are trying to write your first few non-toy object-oriented programs.
December 30, 2016
Way easier to follow than the original "Design Patterns", but some trivial topics were given too much explanation, which made the book a bit too long.
Profile Image for Shriraj Nayak.
58 reviews11 followers
December 17, 2018
I would recommend the book to learn design patterns. Design pattern concepts are explained with examples. This could be used as introduction to the design patterns.
Profile Image for Alexandru Stancu.
6 reviews1 follower
November 22, 2020
Very easy to follow with a very playful style. If you just want to skim very quickly through the most popular & used patterns, but at the same time get a quite decent understanding for each, this is the book.

Almost all of the examples are spot on (maybe except for the last 2-3 "left over" patterns). The explanations are detailed enough to make you understand each pattern well. And, most importantly, it helps remember what each of them does, by using a lot of repetition. Which you might think its annoying, but what it does is to stamp them better into your brain. By the end of the book, you'll know them by heart. I promise.
Profile Image for Zahra Dashti.
362 reviews106 followers
June 4, 2021
وقتی صحبت از کتابی جهت یادگیری الگوهای طراحی (نرم افزار) می‌شه، یکی از کتابهایی که اغلب توصیه می شه کتاب Head First Design Patterns هست که در سال گذشته، ویراست دومش هم اومد. اگر با سری Head First آشنا باشین تم کتاب رو می دونید و اگرنه باید بگم که کتاب به شکلی داستانی، یک مسئله رو طرح می کنه و گام به گام برای حلش جلو می ره و به راه حل می رسه، البته گاهی هم مستقیم تر می ره سر الگو. فلسفه و دلیل استفاده از الگو رو بیان می‌کنه، معایب و تخطی های احتمالی از قوانین solid یا پیچیدگی های ایجاد شده رو شرح می ده و بعد هم پیاده سازی کامل مسئله با الگو البته به زبان جاوا رو می نویسه و تقریبا خط به خط توضیح می ده. نکته ای که ضمنی گفتم اینه که کدهای کتاب به زبان جاواست. خوب طبیعتا می تونه هم حسن باشه هم عیب. برای جاوا کارها حسنه، برای کسانی که با جاوا آشنایی مختصری دارن (مثل من) یا با زبان های سی بیس مثل سی شارپ و c++ کار کردن هم تقریبا بدون مشکله، اما سایر دوستان ممکنه کمی از این جهت نیاز به مراجعه به منابع دیگه برای پیاده سازی داشته باشند. البته یک حسن ویژه برای جاوا کارها داره و اونم اینه که بعضی الگوها رو با قابلیت های زبان یا فریم ورک های مطرحش هم پیاده سازی کرده. برای من کتاب خوش خوان و قابل فهم بود. البته من خیلی برای قضاوت مناسب نیستم چون قبلا دوره ای برای یادگیری الگوهای طراحی رو گذرونده بودم اما با این همه به نظرم کتاب به خوبی مفهوم رو رسونده. باید متذکر بشم که کتاب همه ۲۳ الگو رو در ۱۴ فصل نیاورده، هرچند به باقی مونده الگوها در ضمیمه به صورت مختصر آورده، مسئله ای که حل می کنند و معایب و مزایا رو لیست کرده، کلاس دیاگرام رو ترسیم کرده اما وارد جزییات پیاده سازی نشده. تقریبا برای هر الگوی مانده (و به قول خودش کم کاربرد) دو صفحه اختصاص داده. در مجموع کتاب جذابیه و اگر علاقه دارین با الگوهای طراحی بیشتر (یا اگر اصلا آشنا نیستین، تازه) آشنا بشین، این کتاب رو به عنوان گام اول توصیه می کنم. قطعا گامهای بعدی GoF و بعد منبعی در زبانی هست که با اون کد می زنید.
Profile Image for Temo Tchanukvadze.
53 reviews4 followers
December 15, 2019

Finally finished reading. I like Freeman's sense of humor and the examples he included in the book. But it's kinda bloated with these jokes. It's easy to read and would help newcomers to get started in Design Patterns. I would recommend to check out Dive Into Design patterns afterward.
Profile Image for Oleh Lvivskyi.
48 reviews1 follower
February 4, 2021
Відверто, надзвичайно крута книга для розуміння патернів проектування. До того я безумовно мав справу з ними, і читав на різних ресурсах - дуфекторі, метаніт, тощо. Але тут мені вдалося це зрозуміти на зовсім інш��му рівні абстракції.
Специфічний стиль викладання. Для декого це може здатись дитячим, якісь картинки, ролі, але як людина яка захоплюється психологією 10 років скажу що інтерактивний спосіб навчання є дуже високорезультативним і дозволяє більше відчути, чим завчити.
Книгу однозначно рекомендую! 👍
Profile Image for Iman.
9 reviews2 followers
October 3, 2014
not read it completely, just the first 3 chapters.to see the taste of head first series. although it was helpful, but i am comfortable with a book like C# design patterns.
7 reviews
October 28, 2018
Should be a must read for young developers even though the book repeats itself a lot sometimes.
Profile Image for Tauras.
186 reviews27 followers
November 19, 2020
This book looks deceptively easy and lightweight, yet carries quite a lot of information.

Definitely should be a go-to book for the introduction to Design Patterns. Even if you're acquainted with the topic, the examples, brief summaries and the tone of the book work well as a refresher.

I'm also really happy that the author gave a fair amount of attention to explicitly discourage readers from applying patterns everywhere and overengineering unnecessarily. Sometimes there's a temptation to flamboyantly showoff what a complex system one can engineer, typically it's better not to.

Finally, I empathise with the author when talking about the importance of shared dictionary. It's a great tool enabling efficiency, being succinct and having people on the same page. However, for this to work, good foundations are crucial, i.e. the dictionary should be shared and one must be certain that everyone in the conversation interpret used terminology in a similar way.
Profile Image for Bhavani Ravi.
25 reviews30 followers
October 4, 2021
This book is much better than Gang of four to get started with design patterns, The examples are lot more relatable and use case driven
Profile Image for Anjum Haz.
222 reviews46 followers
April 17, 2022
This is a book my colleague Jitu vai recommends a lot. I started reading this book some time last year and picked up now and then when I managed some time after work and personal life, to study CS stuff.

I like to read books. Online tutorials are a great way to practice coding, but for mastering theories and stuff, books help me a lot.

The charm about Head First books is- they throw a problem to you first, then approach solving that problem with a naive way, which generally comes to our minds. Then they point you towards brainstorming a more suitable solution. In the meantime, you have just learned a new design pattern!

I remember my pathetic attempts to understand design patterns in grad school. I could grasp the factory, decorator and one or two more patterns, all the rest seemed “wait, what is the usage of this again?” to me. I guess, you need some pace of time to understand 12 different design patterns. Otherwise, our brains like to tangle too many patterns into a khichuri.

This time I didn’t memorize the Singleton pattern because I have a class test in 2 hours where I need to pass. Also, I didn’t curse it for being meaningless. Rather I found this one more interesting! My other favorites would be Observer, Adapter and Template patterns.

Give the first chapter of this book a try if you think “Nyah, I never enjoyed any reading materials on design patterns, but I am up for learning them”. More and more examples help us to think in the way of patterns, which Head First provides. I hope to re-read my highlights from this book to master the patterns over time.
Profile Image for Димитър Трифонов.
77 reviews15 followers
October 31, 2021
Една добра книга на тема design patterns (използват Java за примерите си). 😎

Хареса ми стилът на поднасяне на информацията: авторите са дали най-доброто от себе си да предадат сухата теория по начин, който да е заинтригуващ и разбираем (на моменти ми се струва, че малко прекаляват с това, но все пак мисля, че като цяло ефектът е положителен 😅). Готиното е, че използват примери с обекти от реалния живот, а не просто "обект А", "обект Б" и така нататък.

Не се чувствам като експерт в темата, но ми се струва, че такива книги са малко по-скоро като справочник и няма как да схванеш практическата стойност на всеки шаблон, докато не го използваш в някой твой проект. Обаче якото е, че четейки книгите, сега в главата ти имаш нещо, което да те подсети един ден "Ааа, чакай, може да ползвам ей онзи шаблон!". 😁
22 reviews19 followers
July 14, 2010
I am going to give this book a review even though I am only part of the way through, in part because I think it belongs on my highly-recommend list. The original GOF patterns book is good, is a classic, and should probably be on your bookshelf. This however is much better book on patterns for the typical developer, the content is more accessible and is more up-to-date. Moreover this book has a great attitude and is a lot of fun to read.
Profile Image for Khang Nguyen.
47 reviews70 followers
January 19, 2016
This was the official textbook for an CS course at my university. I liked the book for its sense of humor. The book also gave me hints to explain complicated programming problem to my fellow students. The book used Java to give examples, which is a plus for those who hate GoF for using C++/SmallTalk. I hated the book for its superficial comparison between patterns. As a textbook, it failed to address numerous design pattern pitfalls. An easy read, easy learn book for kids.
Profile Image for rahimliparviz.
2 reviews1 follower
March 3, 2021
In overall this book was great but the only thing I do not like was about explainations of patterns in appendix section. Explanations were not sufficent and also I would like to see at least one normal example per patterns in appendix section.
Profile Image for Tim.
198 reviews10 followers
September 30, 2011
I've read about a hundred computer books for work and for fun and I don't want to clutter up goodreads with all of them, just the ones that stand out. This one stands out.
Profile Image for Ahmad.
6 reviews
January 4, 2016
یک کلام: عالی.
دیدم نسبت به کتاب های Head First عوض شد.
می خوام بقیه ی سرفصل هایی که می خوام بخونم هم از همین سری بخونم.
Profile Image for Mohammad Teimori Pabandi.
19 reviews14 followers
January 23, 2018
واقعاً جیگر و قابل فهم توضیح داده و اگه یه درکِ اولیه‌ای داشته باشه آدم از برنامه‌نویسی و برنامه‌سازی، خیلی خیلی به کمکش می‌آد و واقعاً توی دیزاین به آدم کمک می‌کنه.
Profile Image for Mengyi.
53 reviews4 followers
February 15, 2020
The books introduces a lot of most common design patterns and most importantly demonstrates why the design pattern should be applied by solving sample design problems, in a very easy-to-follow way with a lot of exercises. A certain recommendation for anyone who wishes to learn design patterns for the first time in a systematic way.

It's the biggest book that I've ever completed and I read it from introduction to appendix.

I am really glad that I read the Introductions, as it explains why Head First book series is so different from all other technical books (lots of graphs and conversations, informal tone etc.), and how the series believes that these techniques can help the readers to learn better.

I definitely appreciate the method a lot, and I am glad that I picked up this one about Design patterns before reading about any other books about the topics.
Profile Image for Yash Sharma.
4 reviews6 followers
May 25, 2020
As expected from any book in the Head First Series, this is beginner friendly and a fun read. Do not let the number of pages discourage you, since most of them are filled with memes, pictures, code examples and class diagrams instead of boring text. The information gets redundant at times and you would want to skim through many of the pages. The only downside is that only 12 design patterns are covered in detail and remaining are described in brief in the appendix. Still this can be your go-to book if you are new to design patterns.
Profile Image for Madhur Bhargava.
Author 2 books12 followers
August 4, 2022
This book is everything that the Go4 misses out on - Design patterns explained in a VERY basic and novice-friendly manner. While Go4 deliberately chooses actual software/code from the field to elaborate examples of design patterns in actual working software - this book chooses to do the exact opposite. It elaborates design patterns using made-up examples and it works for beginners. Personally, I am a bit critical of both approaches as standalone, BUT, it really helps when you complement both the books together - use this book to learn the basics and Go4 as a reference and delve a bit deeper.
16 reviews
November 25, 2022
Highly practical for any software engineer interested in learning about or applying software patterns in their craft.
I enjoyed this book, because it did not read like a traditional academic text. Concepts were explained with a light and humourous approach, so it was easier to digest. Also, the book focused a lot on repetition of topics to various different examples. This made learning new concepts easier, and more memorable.
Highly recommended.
Displaying 1 - 30 of 483 reviews

Join the discussion

Can't find what you're looking for?

Get help and learn more about the design.