I still remember one day how I was questioned about design patterns at a job interview. I just knew what are design patterns and basic purpose of it. The interviewers asked me to explain one of the design patterns and I was unable to do that. “I know, I want to learn design patterns” my answer was.
Even though I was not selected for that job I decided to start learn about design patterns. I searched on internet for the tutorials and books written about design patterns. Here is one of the books I found.
“Design Patterns – Elements of Reusable Object-Oriented Software” was the most recommended book on everywhere to learn about design patterns. Design patterns are the reusable solutions for some certain problems that programmers faced during the software development. It increases the maintainability and extensibility of the software solution. In this book, the Gang of Four (Erich Gamma, Ralph Johnson, John Vlissides, Richard Helm) describing 23 design patterns and how they can help you design object-oriented software.
Before start to read this book I think you should grasp the object oriented programming concepts and some of the UML notions well. Plus if you are familiar with one of object oriented languages then you can go ahead with this book. I have uploaded the pdf version of this book and you can download it from here. Clean and happy code!