Clearer Waters

11 May 2022

Zoomed In and Panning Out

Summer rears its head around the corner as what was left of winter goes to rest as another academic year passes by once more. The metaphorical frozen lakes around me start to warm up once more. These past few months of web design and concept learning has been especially grueling when the times start to mesh together. With the previous year being all online, it has truly spoiled my sense of productivity and methods of task completion. As classes came back to be in person, it created a bittersweet experience that offers as a reminder of what the responsibilities of the real world.

Through my software engineering class and the return to in-person teaching, it got me feeling a sense of deva ju. With everything feeling like a new experience yet somewhat familiar, as if those same lakes are starting to thaw out with the experience that I gain. The more I applied the learned techniques for software development, the more I realized that these skills ultimately contribute to greater fundamental concepts that create productive and efficient finalized products, both in and out of the scope of software engineering.

The Ripples in Calm Waters

Throughout the class, there has been many instances of repetition. Daily coding tasks, weekly work of the days (WODs), and constant practice. When there is no will to learn, then these tasks can get dull and tedious. Conversely, when there is too much to learn, it can overflow and my brain can’t begin to start comprehending things. However, when you look at the water from above and not within, the ripples start to make patterns similar to previous iterations.

I’ve come to learn that my brain is much like that pool of water. When you throw so many rocks of many sizes into the lake, then the ripples start to chaotically burst from every point. Similarly, software development can be too overbearing at times, and it’s hard to take it all in with so many issues of difference sizes when they all come at once. When this happens, it’s more than just the issues themselves, more than just the collection of tasks that need to be done. I have learned to look for the design patterns. Drop each rock into the water one at a time, and recognize the ones that look the same. Then drop another rock similar in size, just like the last. To be able to utilize design patterns and also ethical standards gives a grander overall scene that can be clumped together easier and create a clean end product that both client and developers are proud of.

Design Patterns: Best Memory Game Ever

Practice and repetition are one in the same if one gives the effort in attempting to make such repetitive activities shorter. That is the beauty of software engineering, every new task has that sense of deja vu or utter confusion. When engaging with these problems, it is key to pay attention to the similarities those problems have with possible future problems later down the line. For example, a navigation bar on the top of the screen for a website. The first time around it takes some research on how to make the navbar be fully functional, then it finally is created. Then for another project, the client wants a navbar on the side. The creation of the navbar is already in my knowledge so it shouldn’t take much time to create, now the problem is moving it to the side of the screen instead of on top.

Design patterns focus the attention to clumping similar problems and looking over the way in which it was solved in the past to make solving future problems similar to be shorter than before. That is what the WODs have done, the practice WODs, and the homework tasks. They are repetitions, ripples stemming from the same source problem. They can look at the outer ripples and see how the newer ripples shall form. It is the beauty of understanding this bigger scale concept to making problem solving easier and creates a motivation for thoroughly understanding the problems at the root cause. Since then, I have started to notice life in patterns, which has made dividing up priorities in everyday life that much simpler, I will continue to employ these concepts in my road of becoming a computer scientist.

The Reflection I See

Overall, it is not just the problem at hand, but also the moral grounds that those possible solutions stand on. In the latter half of the class, there has been discussions over what it means in the software engineering sphere to be ethical and progressive. The topic in question was about facial recognition, and how the unaware use of people’s faces were being used in the testing of such a software. This controversy plagues me considering that in the scope of looking things as a whole rather than the individual problems within it, there is moral principles being broken due to this. When I become a software developer, these are the ethical values that I need to uphold and has brought me to think more about if the ends should ever justify the means.

Murky Waters Unethical Practices

When I think of these “ends justify the means” aspects to these developments, it always has me deelpy thinking about people think it really is okay to commit lesser evils in order to make big leaps in progress. These unethical practices of using unassuming people’s faces for research is not only a breach of privacy, but they have no consent in the matter, breaking the most moral values one should have in software engineering. If the goal is to create something that hopes to benefit the people, why try to burn bridges early by creating a unethical moral grounds for the project to stand on? The only thing that these practices reflect is the murky waters of the waters that these somewhat good intentioned yet immoral execution are built on.

Strive To Be Better

My goal with this knowledge is to develop my own sense of a grander scheme to life, to be able to understand problems that people need help with and find ways to create solutions that do not come at the cost of being a detriment to others. These waters that I hold my values, my skills, my dreams, I want them to be respected along with the grounds of the projects that I contribute to. I will continue to take in as much experience as I can both in software engineering and in everyday situations with the motivation to strive for a better means to create new things without breaking my own morals. I will become someone that I can be proud of, and hope to continue to see the clearer waters in the future.