The Highs and Lows of Software Engineering

12 Dec 2023

Beyond The Classroom

As my time with ICS 314 comes to an end, as well as my time as a computer engineering major at UH Manoa, I’d like to look back and reflect on the topics I’ve learned in ICS 314 and how I can apply them in different fields beyond web application development. During this course, we’ve covered a wide array of topics such as Functional Programming, Development Environments, and Coding Standards. Moving forward, I would like to consider how I can apply these topics and the lessons I learned in ICS 314 beyond the classroom.

Functional Programming

Functional programming was a topic we covered early on in this course, and consisted of learning Javascript programming techniques such as the Underscore library and its various functions, including map, reduce, and filter. These functions were quite useful for simplifying coding tasks that would have otherwise been difficult to code, so the functional programming portion of the course was a topic I really enjoyed learning about. For example, the map function in Underscore iterates through an array of values and returns a new array after applying a transformation function to those values. The map function and other Underscore functions can definitely be used beyond the scope of web development applications, and I can foresee myself using them in other coding situations in the future. In general, the Underscore library can be used for many different concepts such as data transformation and filtering data, which are necessary in many different coding situations besides web development.

Development Environments

Development environments were another early concept that we covered in this course and consisted of downloading and learning how to use Intellij IDEA, the IDE that we used for the rest of the semester. IDE stands for integrated development environment, and is a type of development environment that strives to make coding easier and more efficient for the user. Intellij IDEA is a type of IDE, and was very helpful during this semester for the Meteor applications and WODs that we did. During this course, I really came to understand how helpful a good development environment is, especially when you know how to use it to its full potential. At first, I was apprehensive to move from the online JSFiddle development environment to Intellij, since Intellij at the time was very overwhelming for me and I enjoyed the simplicity of JSFiddle. However, as I learned the various shortcuts and tools Intellij has to offer, coding became much more efficient for me. Moving forward, I will likely continue to use Intellij IDEA as my primary IDE for other coding projects. Knowing how to use an IDE effectively is a skill necessary for any programmer, and ICS 314 helped me realize that.

Coding Standards

The last concept I wanted to talk about was coding standards. Coding standards was a topic that we learned midway through this course, and we continued to use it throughout the rest of the semester as we moved on to creating Meteor and React applications. The coding standard that we followed as ESLint, a coding analysis tool for Javascript. While some of the other students found ESLint to be a pain, I actually liked enforcing a certain set of rules upon myself to keep code readable and usable. Whenever I would run ESLint and fix the errors, I often found that the code looked much cleaner and it was easier to read and understand, something that is imperative in programming in a work environment. There are seldom situations where you start and complete an entire program completely by yourself, and even then, other people will still have to look at your code later to debug or add new features. Therefore, keeping a certain coding standard is important not only for yourself, but it helps others use your code when you are working on a team.

The End

This semester, I was able to learn a lot about software engineering and the skills necessary to be a programmer from this class. Functional programming, development environments, and coding standards were a few of the many topics we covered. While I am interested in web application development as a career, if I were to end up in a different field, I am sure that the skills and tools I learned from this class will still prove to be useful.