So I need to learn about Design Patterns, because we are starting to do some really complex things with our codebase at SquadRun. We are going to add new features, algorithms, a machine learning layer (that needs figuring out too) but more important than that, we are going to add a better way to add new features and algorithms and layers. That is where design patterns jump in. I have time in my hand (have my college exams for a month which prevents me from directly working on our backend system) and thus I took this upon myself to learn more about Design Patterns and identify what patterns can we use for our needs.
After a quick research I decided I don’t want to start with the Gang of Four’s Design Pattern book because that will become too hard core for a beginner, and my primary purpose is to learn and apply things I learn, and not just keep the book as a trophy (I already have Introduction to Algorithms). And then this sealed the deal:
I picked up Head First Design Patterns. It is a fun book recommended by many, and as I started it, I feel like it was the right decision. The authors aim to make the reader learn about the design patterns and then retain what they have learnt. They do this through simple but effective methods, rendering the book an interesting read in the process. I have decided to document what I learn so that it serves the dual purpose of being a quick reference for me and others, and for me to reinforce my learning.