Very rarely do you come across a problem that no one has seen before, and solved. This is a fortunate truth. This means you can stand on the shoulders of giants. One of the ways you can do this is by learning design patterns. Problems these design patterns solve pop up everyday, and by learning the patterns, you’ll learn to recognize them. Happy coding.