Design Patterns: Elements of Reusable Object-Oriented Software – I had to read and study this for a class, and then we played Design Pattern Poker, where we “played” the design patterns we had in order to solve a problem.
Seemed like nonsense at first, but then I read the book. And saw solutions that I’d been applying – and solutions that I should have applied, but didn’t.
It’s nice to solve problems from scratch and feel that sense of “aha”, but the Patterns give us a shared language to talk solutions – that CompSci students should know. Also, it’s all very well solving a contrived university assignment, but in the real world – problems are bigger, and have more dependencies. The more we expose ourselves to lessons learned in real life, as opposed to the ivory tower, the better. We don’t always get that insight from professors, unfortunately.
After a chat with someone today about design, and realizing how much I’d learned from this – I’m officially adding it to my “books I’m glad I read before I interviewed @ Google” list.
2 replies on “Books to Read Before You Graduate: Design Patterns”
I love this book. I love patterns in general. All good designs should be pattern-based. I believe that Aha moments are almost always based on pattern – you feel a strength in that creative moment because it is grounded on relationships between other strong designs. True creativity is simplification of something based on a natural pattern, be it identified in a book, or a new one that has emerged.
Yes! I don’t get the whole “I want to solve it myself” thing – learning from other people who have been there before me gives me much more confidence in my solution 🙂