Intro to Design Patterns
What is a pattern?
A pattern describes a problem which occurs over and over again in our environment. It then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twice. A pattern should support teaching and so it has a name. By using the name you refer to the entire pattern and still convey meaning.
From The Timeless Way of Building
Motivation
Patterns Everywhere
Learning about software development patterns is the most effective way to step up your skill-level as a serious developer. You'll make less stupid mistakes and that's a big step forward if you know nothing about design patterns.
The benefits of learning and using design patterns compound over time. Eventually, you'll see patterns where others see chaos. And, this analytical tool is applicable to many things beyond software development.
Explore Programming Languages Like Never Before
You've been using language X for Y years. But, thinking about and implementing design patterns helps you learn language X at a level you wouldn't otherwise be able to. That's because design patterns get the flavor of the language they're implemented in. This is an immense source of learning especially if you learn about patterns using a language other than X and then try to implement those patterns using techniques and tools that are unique to X.
How to Learn About Design Patterns
If you're totally new to design patterns then start with Head First Design Patterns. The content of this chapter contains many notes from this book and it will be a perfect companion for whatever resource you're using to learn about design patterns. If you already know about design patterns then try to read as many pages from this chapter as you can.
What This Part Is About
Examples of patterns' usage in popular libraries and interesting discussions beyond what you'll usually find in introductory learning material.
For example, there are several discussions on how specific patterns can be improved upon using Pythonic coding practices. There will also be some detailed articles about using patterns in complete programs.
Finally, there are some though-provoking sections about how you can use patterns in unexpected ways, sometimes even outside of the programming world!
Last updated
Was this helpful?