Design patterns are a toolkit of tried and tested solutions to common problems in software design. Even if you never encounter these problems, knowing patterns is still useful because it teaches you how to solve all sorts of problems using principles of object-oriented design.
Why should we learn design patterns?
If youve encountered design patterns only in passing, in a nutshell, theyre general object-oriented solutions that you can use in your own designs. Crafted by experienced object-oriented practitioners, design patterns can make your designs more flexible, more resilient to change, and easier to maintain.
Are design patterns really important?
Design patterns are taught in design classes for CS. They arent essential, but really helpful if you can find analogous situations to have a solution that has been thought through. It also allows programmers to communicate more easily.
What do design patterns do?
Design patterns provide general solutions, documented in a format that doesnt require specifics tied to a particular problem. In addition, patterns allow developers to communicate using well-known, well understood names for software interactions.
How do you master design patterns?
To really learn these patterns, you should look at your existing code. Look for what patterns you are already using. Look at code smells and what patterns might solve them. Ive lead a few design patterns discussion groups (our site) and have read 5 or 6 patterns books.