I am in a training class (again) and this time for different reasons. I am looking at how to code better with design patterns. While all this design patterns stuff looks so good and sounds so exiting, some of the thoughts keep me on my toes. I observed that most of the participants in the class were experiences ranging from 6-20 years and still they were struggling to find the relevance of why patterns are required. Obviously - some of them were there because it was mandated by their professional development program or by the manager or may be they just wanted a break from work. Anyways - I better keep away from this.
I feel every developer should know "what these patterns are?" and "how they impact their lives?". No matter what their experience level is. Instead I would advocate to include these patterns as part of the study curriculam at various universities for Computer Science or Information Technology courses. The term 'Pattern' means repeatative and when the mind it young - chances are high that an individual would get it recorded in his/her memory. Unfortunately, the industry works in a very different way. Here task forces are valued more than individual intelligence. Most of the college hires or freshers are there to fill a headcount and do the so called 'maintenence' work. The managers says "we have junior developers who don't know all this patterns stuff and it is better not to get them boggled with these details." I kind of see their reason and the thought process behind it. But I don't support it.
I still feel every developer should know about design patterns. They define common problems and recommended solutions. In way it promoted logical thinking which is a crucial element of being a good developer.