Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm planning to read a book to gain some good knowledge of design patterns, why we use them, how to apply them and how to choose the best design for my software.

So I have two books on my desk right now: "Head First Design Patterns" and "Design Patterns: Elements of Reusable Object-Oriented Software".

Which one do you think I should read as my first book about design patterns?


migration rejected from Sep 16 '13 at 21:41

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as primarily opinion-based by gnat, MichaelT, GlenH7, World Engineer Sep 16 '13 at 21:41

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

Please do not use multiple "!!!" or "???". It's silly. One is enough. – S.Lott Mar 24 '11 at 10:40

I don't know "Head first design patterns", but I always keep my copy of the GoF book (Design patterns: Elements of Reusable Object-Oriented Software) on my shelf for reference. As far as I know this is the best book on Design patterns that is out there.

However I am not so sure, if this book will help you, if you need to know in an abstract sense, what design patterns are, and why to use them. The best part of the book is an in depth reference of many important patterns including many variations. This is the best part of the book in my opinion, because it shows you many things you can change on a given pattern, which I would usually not have remembered on my own.


Design Patterns Explained: A New Perspective on Object-Oriented Design is a nice introduction to design patterns.

would you mind explaining more on what it does and why do you recommend it as answering the question asked? "Link-only answers" are not quite welcome at Stack Exchange – gnat Sep 15 '13 at 9:50

Not the answer you're looking for? Browse other questions tagged or ask your own question.