Well, the end of the spring 2021 semester is here. I took five classes this semester and I can certainly say that ICS 314 was the most fun class I have had since freshman year. There was a lot of engagement from both students and the professors, which helped me learn much more in comparison to my other classes. In this software engineering class, Professor Johnson went over a multitude of fundamental concepts including open source-software development, configuration management, functional programming, development environments, and so on. Of these concepts, two of them really stook out to me as I realized that I could apply them to real life situations outside of programming.
One of the first few essays I have done for this class involved coding standards and its importance for programming. Coding standards are rules/guidelines to better develop a program. In my essay, I stated that coding is like a language, and coding standards are the rules of the language that help make everything comprehensible to other people. I said later in the essay that coding standards help as a first impression to someone that is reviewing your work. When thinking of coding standards from an outside perspective, using this concept as an idea of a self-reflection of your work is perfect. There are many standards in projects that people must follow in order to make their work look presentable. For example, presentations and essays will have to be formatted in a neat way that is also efficient in delivering your message. Cluttering everything into one large area is very unappealing for the audience, which will make them think of you as a less credible person. I also mentioned in my coding standards essay that good habits are built by formatting everything neatly. By knowing how to convey thoughts in a concise, efficient way, people will naturally become better at doing similar work in the future.
Going over design patterns in my previous essay helped open my eyes to real world applications and how many people use design patterns in various settings. Design patterns in software engineering is a reusable solution to problems that occur often when coding. Professor Johnson recommended everyone to read Sara Cheng’s take on design patterns. Upon reading her essay, I realized how simple minded I was being and how I did not provide any modern examples like Sara did. Similarly to coding standards, design patterns will help in the real world by providing a format for people to use in their future work. Sara used rap and art as her example, saying how they follow patterns when making something. But, design patterns can be used for everyday applications as well. For example, cooking follows specific patterns when preparing certain dishes. Pizzas need to start off with a dough, sauce, cheese, and toppings. Sandwiches need to have two pieces of bread with an assortment of foods between them. Design patterns are also all around us, since engineering and construction literally use these patterns that have been conceived centuries ago. Wherever you go or whatever you do in the future, design patterns will follow you.
Even without these software engineering fundamentals taught by Professor Johnson, I learned many skills on my own due to the work that we were assigned. Through the WODs (workout of the day), I learned to communicate with people more effectively. WODs were basically coding quizzes that everyone was assigned at the beginning of class with one randomly selected partner. You were not allowed to share your code with the other partner, meaning if either of you got stuck, you would have to verbally describe the solution. By doing this, it helped me understand code more since I had to be able to understand what I was writing on top of verbal communication I had to improve. I also improved my time management by taking this class since WODs went by quickly, meaning I had to work fast. There was also a lot of work that required a lot of time to study and do, meaning I had to allocate more time for this class alongside my four other classes.
Sadly though, I am not going to pursue a major for computer science moving on. I mentioned in one of my earlier essays that I was stuck between majoring in ICS and minoring in ICS with a major in finance. I have decided to take the latter option moving forward but I will not forget anything I have learned. This upcoming fall semester will be the last semester that I will have ICS classes as I will complete my minor after that. This class has been very memorable and has taught me a lot about life skills. I will continue to use what I have learned and apply it to my future work in the Shidler College of Business.