Even a Tree Has Roots

03 Dec 2020

When I first entered the College of Natural Sciences at the University of Hawaiia at Manoa, I was not sure whether I wanted to pursue a degree in Computer Science or in Mathematics. Luckily for me, I was choosing between two degrees within the same department. However, many freshmen and even sophomores have difficulty deciding what their major of interest is, and are often hesitant to change their major once they have decided. After all, that would mean having wasted an immense amount of time and effort on courses for your previous major and spending extra time and effort towards the new major. Fortunately enough, many colleges and universities across the world have courses that every major on campus is required to take. This gives students the opportunity to build their foundation towards any major, while also spending some time in courses that spark an interest to them.

Even after almost an entire semester spent on software development, I always thought that running a website with a database would be beyond what I was capable of. It was not until the final third of the semester that I realized how probable it was even for someone of my caliber. Just like the general courses of any major, we had a foundational piece to work with. After spending in-class and out-of-class time dissecting the various components of the site, we were able to tweak the parts to fit the requirements of our assignments. Counting the final project of my software development course, that would make a total of three major assignments for this course based off this one template! In terms of computer science, that is the power of a design pattern, being able to take a simple template, break it down into its fundamental parts, and rebuilding those parts into someone of higher complexity.

We often experience the need to further our advancements in technology to the point where it almost seems foreign to us. We overlook the importance of tracing our steps, whether to validate our findings or to avoid a complete redo during trial and error. Design patterns provide the foundation that makes variety easily accessible. It acts as a checkpoint for veterans and gives newcomers a basis for understanding. Think of it this way: some tree branches have birds’ nests, others have beehives. Some branches can grow leaves, while others cannot. Maybe we later decide that we do not like the branches of this tree. Instead of uprooting the entire tree, we have the option of simply chopping the trunk. Eventually, the tree will sprout again, and new branches will form. It is funny to think that even a tree can have checkpoints.

On a side note, that design pattern to tree analogy is called biomimicry. I got the inspiration from this video.