Work Smarter, Not Harder

03 Dec 2020

My first day in ICS 111, my professor at the time always said that Computer Scientists are some of the laziest people. I was not too sure if I wanted to laugh or be a bit concerned after hearing that statement so often about a career field that I depserately wanted to be in. Now, I understand what he meant by being “lazy”; it was not a literal translation of Comnputer Scientists as people. The biggest things I have learned is you would like to make every single problem you encounter a very easy obstacle to overcome.

Design Patterns was something I have not really heard about in any of my Computer Science classes. After doing a bit of my own research on the web, Design Patterns is definitely something that I have seen so many times in my Computer Science courses. Even in real life, I encounter similar situations where I feel like I can apply a Design Pattern to dissolve that particular issue. You hungry for some fast food? Order fast food. Need to use the bathroom? Use the bathroom. These are a couple of examples that come to my mind when thinking of design patterns because these are common decisions people make everyday solve simple, recurring problems.

How do these real life examples tie into Design Patterns and why should I care? Well, think of it this way, everytime you met the same problem, would you do it differently every single encounter? Or would you like ot make your life easier and just solve it like you always have? This is a simple question that Design Patterns help answer by using reusable code and software to make development processes a lot smoother and simpler. In a lot of my intro-level courses in Computer Science, I saw a lot of the Strategy Design Pattern where I would encapsulate an algorithm within my Java Class. It was very convenient way to sort arrays with the ability to reuse the class methods in future assignments.