Latest Tweets:

Programming - Design Patterns

Learning to program is much more than learning a programming language. Having command over a programming language is only the beginning. Once you learn to program in any language you will then discover a new set of problems similiar to a technical Pandora’s Box.

Consider your first grasps at understanding programming as being similar to how a child develops language: at first it is a way of sorting ideas in their mind and eventually to share those thoughts; the better they hone this skill the more likely they will be listened to and more importantly understood. Think of design patterns as conversational constructs (how to meet a potential employer for example), sure you know your native tongue but can you get your point across?

New developers may spend hours finding ways to interlink dependent systems, creating multiple solutions and unnecessarily wasted time debugging and refactoring. Had they had learned the Observer pattern they could have spent that same time wasting time debugging and refactoring more serious problems.

No matter how pretty you make your code today, in time you will think you could have made it more elegant and chances are you could. Elegance in code relies equally on form and function, self-documenting garbage is still garbage and unreadable wizardry is useless if it can’t be maintained. Design patterns are the result of these observations (and many more) so use them and florish.

The “Head First Design Patterns” book from O’Reilly is my recommendation for beginners, the GoF for the less timid.