Reflection on Software Engineering

12 May 2021

When I began my software engineering journey a couple of months ago, I was not that excited to deal with the tedious front-end programming nor having to learn new programming/scripting languages. However, I realize now the important lessons that software engineering teaches us.

The first thing software engineering taught me was undoubtedly about coding standards. Since I had to learn several new programming languages, such as: JavaScript, HTML, and CSS, my time was spent more efficiently learning the syntax and structure by abiding by my professor’s coding standards. Taking one’s time and slowly learning a language by studying and implementing the syntax in an orderly and organized manner is essential to being able to understand the language. This principle can be used whether learning a programming language or even a world language.

The next concept that software engineering drilled into my head was learning how to implement design patterns. One unique thing about design patterns is that it is not taught to you, but it is instead a skill that takes constant practice to develop. I feel that basic design pattern knowledge is developed when you have to work on many different tasks. This is because you do not want to constantly be making different solutions to all these problems, but instead, it is best if you find smaller common solutions to parts of each problem and then build up from there. This is especially important when my ICS 314 class would have quizzes (called WODs) which were timed. Because of the time constraints, you had to be efficient in your programming, forcing you to implement design patterns to save your time and brain power.

Another issue that software engineering brought to my attention was ethics in the computer science world. Ethics regarding computer science was never a topic I showed much interest in, since I never thought it could affect me. After discussing the banning of the University of Minnesota from the Linux kernel, I realized just how difficult it was to actually understand ethics in a computer science world. This discussion also made me realize how much these ethical dilemmas could actually affect me, being a university student myself. Since the tech world is still developing at a fast rate, I think it’s important to keep ethics on everyone’s mind: as technology keeps advancing, it’s important to make sure we can progress in an ethical way so we do not create any problems and keep everyone safe and healthy.

I am very thankful to everyone who aided me in my journey to become a software engineer. I enjoyed learning about all of these interesting concepts and ideas which have made me into a much better computer scientist than I was a year ago. I look forward to implementing these ideas and challenging myself to improve on everything I learned.