Enjoy fast, FREE delivery, exclusive deals and award-winning movies & TV shows with Prime
Try Prime
and start saving today with Fast, FREE Delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Instant streaming of thousands of movies and TV episodes with Prime Video
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
$59.41$59.41
FREE delivery:
Tuesday, Oct 24
Ships from: Amazon Sold by: Selling all the goods
Buy used: $21.01
Other Sellers on Amazon
+ $4.95 shipping
97% positive over last 12 months
100% positive over last 12 months
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Head First Design Patterns: A Brain-Friendly Guide First Edition
There is a newer edition of this item:
Purchase options and add-ons
What’s so special about design patterns?
At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns—now updated for Java 8—shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.
What’s so special about this book?
We think your time is too valuable to spend struggling with New concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Design Patterns uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.
- ISBN-100596007124
- ISBN-13978-0596007126
- EditionFirst Edition
- PublisherO'Reilly Media
- Publication dateOctober 1, 2004
- LanguageEnglish
- Dimensions8 x 1.4 x 9.25 inches
- Print length692 pages
Frequently bought together

Similar items that may ship from close to you
From the Publisher
What you’ll find in Head First Design Patterns, 2014:
|
|
|
|
|---|---|---|
|
The core design principles and design patterns—everything you need to take your programming skills to the next level. |
The same great visual explanations and brain-friendly learning style you’re used to from Head First, with exercises and challenges so the design patterns really sink in. |
Updated code! The code for all the examples and exercises now compiles and runs with Java 8. |
Editorial Reviews
About the Author
Elisabeth Robson is co-founder of Wickedly Smart, an education company devoted to helping customers gain mastery in web technologies. She's co-author of four bestselling books, Head First Design Patterns, Head First HTML and CSS, Head First HTML5 Programming, and Head First JavaScript Programming.
Bert Bates is a 20-year software developer, a Java instructor, and a co-developer of Sun's upcoming EJB exam (Sun Certified Business Component Developer). His background features a long stint in artificial intelligence, with clients like the Weather Channel, A&E Network, Rockwell, and Timken.
Kathy Sierra has been interested in learning theory since her days as a game developer (Virgin, MGM, Amblin'). More recently, she's been a master trainer for Sun Microsystems, teaching Sun's Java instructors how to teach the latest technologies to customers, and a lead developer of several Sun certification exams. Along with her partner Bert Bates, Kathy created the Head First series. She's also the original founder of the Software Development/Jolt Productivity Award-winning javaranch.com, the largest (and friendliest) all-volunteer Java community.
Product details
- Publisher : O'Reilly Media; First Edition (October 1, 2004)
- Language : English
- Paperback : 692 pages
- ISBN-10 : 0596007124
- ISBN-13 : 978-0596007126
- Item Weight : 2.29 pounds
- Dimensions : 8 x 1.4 x 9.25 inches
- Best Sellers Rank: #136,426 in Books (See Top 100 in Books)
- #28 in Computer Systems Analysis & Design (Books)
- #48 in Object-Oriented Design
- #135 in Software Development (Books)
- Customer Reviews:
Important information
To report an issue with this product, click here.
About the authors

Eric is described by Head First series co-creator Kathy Sierra as “one of those rare individuals fluent in the language, practice, and culture of multiple domains from hipster hacker, corporate VP, engineer, think tank.” Professionally, Eric recently ended nearly a decade as a media company executive—having held the position of CTO of Disney Online at The Walt Disney Company. Eric is now devoting his time to WickedlySmart, a startup he co-created with Elisabeth Robson.
By training, Eric is a computer scientist, having studied with industry luminary David Gelernter during his Ph.D. work at Yale University. His dissertation is credited as the seminal work in alternatives to the desktop metaphor, and also as the first implementation of activity streams, a concept he and Dr. Gelernter developed.
In his spare time, Eric is deeply involved with music; you’ll find Eric’s latest project, a collaboration with ambient music pioneer Steve Roach, available on the iPhone app store under the name Immersion Station.
Eric lives with his wife and young daughter on Bainbridge Island. His daughter is a frequent vistor to Eric’s studio, where she loves to turn the knobs of his synths and audio effects. Eric’s also passionate about kids education and nutrition, and looking for ways to improve them.

Elisabeth Robson is currently co-founder of Wickedly Smart (wickedlysmart.com) where she is creating new brain-friendly learning products.

Discover more of the author’s books, see similar authors, read author blogs and more
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonReviews with images
Submit a report
- Harassment, profanity
- Spam, advertisement, promotions
- Given in exchange for cash, discounts
Sorry, there was an error
Please try again later.-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
To begin with, before reading this book, you have to know about Java programming language along with the object-oriented features such as encapsulation, inheritance, and polymorphism. Bear in mind that by having solid object-oriented knowledge does not make you a good object-oriented designer. I thought the opposite until I read this book. For those who do not know the language and/or the object oriented feature, they should study them first before attempting to read this book.
When reading this book, please note that the primary intention of this book is to teach you about design patterns. Therefore, if you find the examples are not what you expected (too simple, childish, imaginary, and so on), you need to know that the examples are made as simple as possible so you can concentrate on learning design patterns. Unfortunately, some people just do not understand this approach. They probably want examples that have hundreds line of code to explain each patterns and I am very sure if this was the case, they would give bad review anyway by arguing that the examples are too complex.
The only negative thing is the fact that not all 23 patterns are covered. I wish all of them were covered in a single book and even if the price were twice as much I would certainly buy it. I do not know why the authors did so. They covered only around 13 and cramp the others in 20 pages in the appendix.
In my personal experience, after reading this book, it changed my paradigm toward object-oriented design and made me ask myself, "Why I didn't buy this book earlier?" Had I bought it earlier, my campus projects would have gone easier. In addition, ever since I read this book, I often think about the pattern(s) that can be applied in the other programming books' code example, especially when the examples have too many if and if else statements as they could be refactored using state pattern or command pattern. The reason some programming books do not bother with design patterns (even though the authors probably know about it) is because not their focus in their books. That is why this book is useful. Also, please be aware that in this book source code, the instance variables are not declared private. In reality you have to make it private according to the principle of the least privilege.
Finally, I highly recommend this book to anyone who already knows Java and its object-oriented features as it helps you to learn commonly used patterns and to design better using best design principles (open closed principle, encapsulate what varies, etc).
This book collects all of these patterns in one place, including some that I haven't used, and then explores and explains them from a variety of perspectives.
The book is a collaboration between technical experts and experts in learning theory. The result is that motivation for learning the material is thoroughly integrated into the formal content. Rather than just describing the "what" of a pattern, the book starts by dialoguing with the reader about the "why," so that by the time it gets into the "how" in more depth the reader is interested enough to explore all of the nuances of the various approaches to applying the technique. It attempts to anticipate objections the reader might raise regarding the importance of a given pattern, while at the same time throwing light upon the pattern by showing how it addresses real needs.
The presentation and examples are superior to most other books that I've read. There's a fair amount of repetition, but from different perspectives, so that at least one of the facets presented should resonate with the needs and experiences of the reader. In its presentation of the decorator pattern, for instance, the first example was a concocted coffee cost computation program that left me feeling that a critical aspect of that pattern, the building of more specialized functionality by wrapping more basic and fungible functionality, had not been adequately explored. But they followed up immediately with a real-world example from the java.io package that not only explored that aspect of Decorator, but also referenced code that I had already personally encountered and understood.
Another praiseworthy aspect of this book is the way in which it integrates general design principles like programming to an interface (rather than to an implementation) with more specific patterns like the Strategy pattern. This gives the reader a lower level base to fall back upon if a specific pattern cannot be found, or if an existing pattern needs to be specialized for a particular purpose.
This book arrived while I was designing a new application, and upon scanning through the various patterns for additional places within my application where patterns could be applied, I found a couple right away.
All in all, this book represents a raising of the bar for content, presentation and pedagogy in a technical manual.
Top reviews from other countries
If you're a beginner or having an issue with a certain aspect of some of the patterns, then having a different way of seeing things can be of benefit. This book would be great in those circumstances.
If you're a more seasoned programmer and need more of a reference book, then go for the Gang of Four Design Patterns book - cheaper than the full price version of this book and way more succinct.
As for the book I received; it was described as used in good condition, but when I received it, the book looked like it had not even been read. I'f love to see what 'Excellent' condition is for this seller's books! Perhaps they come wrapped in sheets of pure gold!
Overall, a good purchase. Missing one star for the content of the book, no reflection on the seller.
So my overall opinion of this book is that it's easily the best design patterns book around, and essential reading for anyone who wants to do Grown Up Programming.
Having said that, I have a very serious complaint about this book, which is why I gave it four stars not five.
Design patterns are language agnostic, so you can use them equally well in any true OO language. Given that Java is (probably) the most widely-used OO language around today, it made sense to give the samples in Java. I don't think anyone could complain about that.
However, why oh why did the author have to make it SO Java-oriented? A lot of the book kept referring to the JVM, and using the Java console and so on. This was unnecessary and annoying to us non-Java programmers. The chapter on the Iterator pattern made it even worse by using a Java-specific feature, without any real explanation of how to do it in other languages.
Even this might not have knocked it off the five-star rating, had it not been for the chapter on the Proxy pattern, which was basically useless to non-Java programmers, as instead of showing how to implement it in a neutral way, they used a Java-specific one, which doesn't help the rest of us. Although the description of the pattern was good, it wasn't clear enough how to implement it in other OO languages, and I ended up skimming most of the chapter.
So, the book was brilliant, but if you aren't a Java programmer, be prepared for some disappointing bits. The annoying thing is that it would have been SO easy to have written the book to apply to any OO language, and just add some notes as to how specific languages have extra features that can help.
So well done guys, but how about a revised version of the book that appeals to everyone? Why do you assume that only Java people are interested?
The relevant knowledge is passed on, but it's passed on via the use of incredibly long and drawn out examples which are supposed to be entertaining - but actually just prove to be irritating. I understand the reasoning behind the examples, and sure - they made reading it more enjoyable (well, for the first 5 minutes) - but they also acted to fill pages with needless dialog!
The book has an underlying storyline which also acts to add bloat, but for some readers this could act as intended; allowing them to 'take more in'.
I think I'm just not suited to the Head First format (that said this isn't the only HF book I have on my shelf) but can see just how this approach could help those that are.
Regardless of this, I still managed to walk away with a firm grasp of various different patterns - more so than I would've if I went straight to the GoF book!
For that reason alone, this book deserves 3/5. Add on another point for the amount of patterns this book covers, as well as the depth it goes into.
This book misses the 5/5 mark simply because it felt bloated with some of the story line and examples.
Nach einigem Stöbern bei Amazon fand ich dieses Buch, und ich muss sagen, dass sich die Anschaffung voll und ganz gelohnt hat. Keine sture Auflistung möglichst vieler Patterns, stattdessen eine didaktisch eigenwillig, aber äußerst effektiv gestaltete Reise in die fiktive Stadt Objectville, deren Bewohner mit allzu bekannten Problemen bei der Software-Entwicklung zu kämpfen haben. Jedes Kapitel widmet sich einem Pattern, wobei eine sinnvolle Auswahl aus den GoF-Patterns getroffen wurde. Beginnend mit einer Problemstellung werden die Patterns Schritt für Schritt erarbeitet, wobei auch Irrwege gezeigt und erläutert werden. Zwischendurch sorgen kleine Aufgaben für eine Festigung des Gelernten.
Der Schreibstil ist locker, das Layout gezielt ungewöhnlich, um das Gehirn zur Mitarbeit anzuregen statt mit ewigen Textmengen zu langweilen. Für mich geht dieses Konzept auf, man kann das Buch regelrecht verschlingen, und trotzdem bleibt der Stoff "hängen". Zweiflern empfehle ich "Pragmatisches Denken und Lernen" von Andy Hunt, das einige Einblicke in die Hintergründe solcher Lehrmethoden bringt.
Gute Englischkenntnisse sollten natürlich vorhanden sein, was allerdings bei der angesprochenen Zielgruppe heutzutage wohl ohnehin unerlässlich sein dürfte.
Nachtrag: Meine Java-Kenntnisse würde ich maximal als "grundlegend" bezeichnen. Trotzdem hatte ich keine Probleme mit dem Verständnis der erarbeiteten Code-Beispiele, da es in diesem Buch nicht um das Ausreizen aller Sprachfeinheiten von Java geht, sondern eben um Software-Design und Struktur.
Du peu que j'ai lu, ce livre m'a l'air de qualité mais à déconseiller si vous avez pas un vocabulaire anglais du quotidien (i.e. pas que technique et professionnel). Étonnement, j'ai beaucoup moins de difficulté à comprendre Design Patterns de gang of four (car utilise un vocabulaire très technique)
Sinon, concernant le fond, je trouve que l'importance d'un design pattern à l'autre à beaucoup évoluer depuis 20 ans. Aujourd'hui, il faut surtout bien comprendre les DP factory et les concepts de Injection de dépendances, IoC, Observer/Observable par exemple, mais beaucoup d'autres DP ne sont pas du même niveau d'utilité












