Friday 13 June 2014

Learn A Pattern A Week With Pie - Introduction

What Are Design Patterns?

Design patterns are a documented set of best practices used by experienced object oriented programmers. These are solutions to general problems that these experienced programmers once faced during software development. Through numerous trials and errors, these solutions were finally obtained, standardised and documented over quite a substantial period of time.

Why Should I Care About Design Patterns?

Design patterns have evolved over a period of time and they provide splendid solutions to certain problems faced during software development.

The un-experienced or green-horn programmer will learn software design in an easy and faster way. Learning design patterns will help you avoid common mistakes which experienced programmers made in the past. This way, you'll be saved an invaluable quantity of time which you can use to do something else.

Design patterns also set a common platform for programmers. It provides a standard set of terminologies which are specific to particular scenarios. For example, a singleton design pattern signifies use of a single object application-wide so all programmers familiar with this terminology will make use of a single object and can tell each other that program is following the singleton pattern.

Design patterns also set a yard stick with which we measure clean codes. Learning design patterns will help any programmer to avoid writing hard-to-maintain-code. Design patterns will help you develop software packages which are closed to modification but open for extensibility.

In my own opinion, one good way of becoming a good programmer is to follow the following route:
1.    Choose one main-stream and one non-main-stream language. Eg Java or C#.Net & Python or Go
2.    Master the Syntax & Semantic of the languages you've chosen
3.    Master the Object Oriented Concepts & Constructs. Eg Polymorphism, Encapsulation etc
4.    Master Design Patterns and know how to apply them in your languages of choice.
5.    Write & Read a lot of code
6.    Never enter tomorrow being the same person you are today. Learning is a life-long process.


If you enjoyed this post, join me as we learn a new design pattern every week.

Enjoy your weekend!

3 comments:

  1. Waoo I think this would be a very great platform for me. I am in.

    ReplyDelete
  2. Nice post. I am in. After reading this, one question bumped into my head. The question is about "if design patterns are also frameworks...?".

    ReplyDelete
  3. Design Patterns != Frameworks

    ReplyDelete