It’s been half a year since I’ve acquired this book and it has taken a huge effort to go through the book. The Design Patterns book is a highly recommended book within the IT industry and has been labeled as on of the most influential books towards code quality. On amazon the book has a full 318 customer reviews of which 216 rate this book 5 out of 5. The statistics speak for itself and that’s also the reason why I bought this book:
Many of the reviews state if you are a developer, this is a must-read book. Improving your code with design patterns, a wisdom distilled though experience of others, will make you write better code. After having done some maintenance, I have to agree on the fact that everyone can write code that works but that the difference in quality and readability of code can be huge. However, this book has been published in 1994, which makes the book almost 20 years old. The examples in the book are mainly written in c++ or Smalltalk which might make the book sometimes harder to read if you only know how to write c# or VB.NET. Many of the Use Examples of some of the Design Patterns give examples of uses of 20 years ago, which will be totally unknown to you. How am I supposed to know a text editor of 20 years ago ?
Perhaps I’m not the fastest learner, but I found this book quite difficult to get through. Some of these design patterns are not always that easy to grasp and some of the patterns are quite related, which sometimes makes it difficult to see the clear separation. The Design Patterns book is not light-reading … I’ve had to reread some patterns multiple times to realize I still barely grasp the concept because I have no experience with it and have a hard time relating it to current examples. Not to mention if you read through 23 design patterns, you’ll probably almost forget half of it again within the next 2 months. This book is not a book you’ll be reading every evening because you just can’t stop reading it, unless you’re really goofy. For me personally, it was a struggle to keep reading the book and multiple times I caught myself picking up another book because I just kept losing interest in it.
At some point I was disappointed with the book, but as many have stated before me, it’s a good book to grasp some object-orientated concepts. However I would not immediately recommend this book to other people and definitely not to a starting developer. Even though the concepts of some of the design patterns should be widely known by developers, I believe there perhaps might be books out there better suited to get the hang of design patterns, with familiar code, familiar examples and common uses.
I’m quite confident that I will be picking up this book again in the future to check up on a pattern again. Even though many people rate the book a 5 out of 5, I would rate this book a 3/5.