I do not think anyone truly knows what they want to do in life. For the ones that are actually passionate about something and their futures are set in their minds, that’s great and I envy them. But the majority of people live their lives meandering and going with the flow. The first time I remember being asked about what I wanted to be in the future was around elementary school, and I had zero idea what to say. Living in the present seemed more important to me than to worry about the future.
Around the end of middle school or beginning of high school, I remember jokingly saying that I wanted to work in a field involving computers. The joke had some truth behind it as I had experience with computers and enjoyed working with them, but I did not plan to make a career out of it or something. I started using them more often as a joke, learned some brief Java and Python as a joke, built a computer as a joke. When it came to entering college, I again went with the joke and chose to major in Computer Science.
Even after taking ICS 111, 141, 211, 241, 212, I was still treating my career path as a joke. “There’s no way I’m actually going to go through with this, right?” That seemed to be the general train of thought, up until I took ICS 314. I have never taken a class as engaging as 314, with a professor with more charisma and enthusiasm than I had ever seen before. Being in the middle of a pandemic with all these online classes, my joking mentality only seemed to worsen. However, in the first couple weeks of the class, I saw an opportunity to turn this joke around, and turn it into a reality.
Throughout this Spring semester, we were taught a plethora of fundamental software engineering concepts, and trying to incorporate them in my own works was a struggle. I look forward to incorporate them in future projects as well The major concepts I took away from this class were coding standards and design patterns.
Beginning in ICS 212 with Checkstyle, the process of following a coding standard became ingrained in my mind, and writing code felt robotic but looked clean. In ICS 314, while setting up the Java IDE, IntelliJ, one of the most crucial parts of the initialization was enabling ESLint. ESLint, Checkstyle, and other code analysis tools allow code to look uniform to a) make errors easier to fix, saving the trouble of looking for it in otherwise messy code and b) make it simpler to show it to someone who has never seen the code before. Not only making it simpler to show other programmers but also business people who are willing to buy code.
In computer science, specifically software engineering, Design Patterns are basically reusable solutions to a problem. One major way I made use of design patterns was in the implementation of meteor-application-template-react template across multiple assignments, including the final project for ICS 314. In the case of UH Class Critics, implementing this template, through Meteor and React, allowed the ability to use the design pattern, model-view-controller. MVC enable the user to interact with a user interface and modify items in a database. With UH Class Critics, a user has the ability to look at professors and submit reviews on them, which can be seen by other users using the site.