Has anyone read 'Head First Design Patterns' by O'Reilly? If so what do you think?
Jeff Atwood has: http://www.codinghorror.com/blog/archives/000380.html
I will give my opinion of the book, based on its writing style (which I am assuming is why you are interested in the book)
I read the book after reading other Design Pattern books. It has an interesting way of introducing information and tries to constantly keep you focused. If you are new to any patterns introduced in the book, then it is a good read. However, if you have some knowledge of the patterns, then the book can seem very watered down. The way it presents information can IMO make the book seem like a long read.
I didn't like it. To me, it's style of writing was very distracting. I found it difficult to stay focused on the material of the main text with all the little blurbs and cartoons on the side.
I quite liked it; in my opinion it's a good introduction to patterns.
As a Cocoa developer I could immediately see how some of the patterns were applied in the frameworks which gave me a lightbulb moment.
But I also have the GoF book and Larman's "Applying UML and Patterns" book.
A book I'd recommend is "Design Patterns Explained" by Shalloway and Trott. It does a great job of explaining the power behind design patterns and it's an all-round good read.
I read this book as someone with no exposure to the world of design patterns beforehand, and I found it be very useful indeed. Personally I found that the style and tone to be engaging and informative. I can appreciate however, that its style may not appeal to all.
This link has a preview of the book that you can have a look at to see if the style would be too grating.
I know colleagues who have read it with a basic understanding of the subject matter, who found it be presented in a much more appealing way than alternative texts, and therefore gained more for it. I would possibly suggest that if you were already well versed in the area then you might not get as much from it, but for myself I thought it was an excellent resource.
I think it's an excellent book for developers new to design patterns. It's style is somewhat different, but for the better in my opinion.
If you are a visual learner or someone who prefers to see concrete examples then get this book.
As they say in their website: "If you're looking for a reference, this book is not for you. (Actually, this book is for anyone with a credit card -The management)"
I have this book, it's awful.
It's probably the worst text on design patterns I've ever read and quite possibly one of the worst technical education books I've ever set eye's on.
They dumb things down with so much distracting nonsense and take forever to get to the point (40 pages of incomprehensible visual nonsense to explain the Observer pattern for example). Not only that, they use so many different gimmicks, type faces and 'humourous' visual aids I'd be surprised if anyone could learn anything from it. It's like they wanted this to be a 'Dummies Guide', but unfortunately they overshot the runway.
Personally I'd buy the GoF book and google for real world implementations. These guys might be worth looking at instead (provided you don't mind the the sample code being in C#): http://www.dofactory.com/Patterns/Patterns.aspx
I bought this book and have nothing but praises for it. It gently leads you through real world examples to show you how you can improve your solutions by using various design patterns. It's style is very casual and humorous so you're actually having fun while you're reading it as opposed to some other books I had the misfortune to read. Yet despite it's casual tone, it's still very informative, and provides an in-depth look at some of the most used design patterns, like strategy, singleton, factory and so on. For somebody new to design patterns, this book is a must-have. However, if you already have some experience with design patterns, you won't get much out of this book. So: Buy this book if you're a newbie when it comes to deign patterns. Then, after reading it, definitely buy the GoF book.
This book is obviously a love it or hate it book.
I personally love it as a beginner book to design patterns. It gently walks you through examples of design patterns in a real language as if you were talking to your co-workers about the patterns. This is definitely not a dry read as there are plenty (sometimes too many, but that's ok) of ways of explaining the patterns in an easy to understand method.
Some people want to get to the nitty/gritty right away and this book is not for them. Others want a book that explains things in plain english, and this is perfect for them.
I read most of this book and think in the end it is better served as a reference book that you come to with a problem rather than be a typical book read cover to cover. It does have some nice overviews of common design patterns and tries to present things in multiple ways that may be frustrating if after reading the overview you don't want to read about it in a handful of other ways. So, in the end, it is a book that is in my reference section where I work that I would turn to if I encounter a situation where I think that a general solution has been found.
I didn't like it.
I often buy books with the intent of leaving them around for the junior developers to borrow. To put it bluntly, a developer who would find this book useful is someone I wouldn't want on my team. The Head First line has been a mixed bag. Some of the books have been ok, others total crap. This one, along with Head First Object-Oriented Analysis and Design are lacking.
Assuming a basic understanding of software development and a proficiency in a language with support for OOP; a newbie would be better off reading The Object-Oriented Thought Process by Matt Weisfeld then using Design Patterns Explained by Shalloway and Trott as reference as they look at code examples on the web in whatever language they happen to use.
I agree with Kev - I hated it. I don't really like technical books which try to be funny. If I wanted to be amused I wouldn't read a book on design patterns.
I think it's a good book to get from the library (or otherwise procure at the non-retail price). The tone and style of humor are similar to the "For Dummies" books, but honestly, I found that to be a welcome counterpoint to the incredibly dry and academic tone found in the GoF book.
If you're a Java person, Design Patterns Java Workbook is the most helpful, I've found
I love this book. The whole point about it being funny is to stimulate your brain to wrap itself around the subjects in a different manner.
What I really like about it is the way it is built up, in that it first gives you a problem/scenario and then present a solution which at the time seems reasonable. But then the "customer" wants a change (as they always do), which suddenly reveals the flaw in the current design. And THEN they introduce the pattern which will solve the issue and make the design more flexible for change.
Too many technical books just goes ahead and explain things without a context or an example of WHY it is useful. Unless you have been in a situation in real life where it would have been useful, you really are not in a "teachable moment" where you fully understand why and how to apply the textbook knowledge. The Head First books set up these situations for you, so the knowledge really sticks.