Search This Blog

Sunday, September 12, 2010

Wanna learn Design patterns?

If you are OOP guy with more than 3-4 years experience then mostly your interview wont complete without questions on "Design patterns".
Even if you don't want to prepare for interview you will need Design patterns knowledge to understand vocab in design discussions.
Even if you don't do job anywhere (which solves this vocab problem - I design software for my own!), Design patterns can be useful tools for saving your efforts in reinventing the wheel.

The most reliable and respected book on this subject by GoF (Gang of Four) Design Patterns : Elements of Reusable Object Oriented Software is difficult to understand (at least for beginners).

Thanks to Anwar Khan, my senior colleague who suggested me Head First Design Patterns (HFDP).  I thought that this book is for Java guys (you know I am C++ dude). But when Anwar convinced me that C++ and Jave both are OOP languages and if I understand C++ then I should be easily able to learn it from HFDP.
This book is great! Thanks a ton to authors for making subject easy to understand (they have also made learning fun :) ). The book teaches you patterns in such a great way that they permanently fit into your memory. Trust me you don't need Java background, but probably some OOP background is a must. This book explains most of the fundamental and commonly used design patterns in detail. It does not explain few patterns like Builder, Chain of responsibility and few others in detail. It does provide some Bird's Duck's eye view of these patterns. I am sure you will also like learning Design patterns from this book.

After you have read this book do not forget to read GoF's book. HFDP also guides you on how to make use of GoF's book. GoF's book is (according to me) ultimate book on this subject. I have not read GoF completely yet - but I am planning to do that soon.

Here are few web links (some I got from HFDP and some from Google), which are useful in learning design patterns -
http://c2.com/cgi/wiki?DesignPatterns
http://sourcemaking.com/design_patterns
http://www.vincehuston.org/dp/

In my own opinion if you are serious about OOP, then you should also read Grady Booch's Object Oriented Analysis and Design

If you have any useful links/ suggestion for book on this subject - please post a comment.

2 comments:

  1. Thanks dude for sharing your exp. I found some of these cpp examples with diff Design Patterns
    http://sourceforge.net/projects/hfdp-cpp/

    ReplyDelete