This semester I have taken my first software engineering course. Prior to this, all my coursework revolved around circuitry, hardware, and algorithms just to name a few. Basically, I had no experience creating an actual product or knowing the process behind it. Now that I have completed ICS 314, I can confidently say that this was one of the most enjoyable courses I have taken throughout my college career because of all the relevant and applicable concepts and tools we have learned. Generally speaking, I would say everything I have learned this semester from ICS 314 is equally important but I would like to highlight the concepts of Development Environments as well as Coding Standards as I believe they are more important for future coursework as well as the professional field.
In this course, our primary Integrated Development Environment (IDE) was IntelliJ. An IDE is essentially an application where code can be written, compiled, and tested in order to build a program or application. In previous courses and experiences, I have used IDEs such as VS Code, CLion, and Arduino IDE but I would say IntelliJ is quite good for web development due to all the features it provides. Learning the various shortcuts IntelliJ provides was initially quite difficult as there are often three keystroke shortcuts which are not very easy to remember, but as I repeatedly used them, muscle memory started to take over. My favorite shortcut is CMD + OPT + J after you highlight a chunk of code, allowing you to wrap that chunk with a tag. This allowed me to easily restructure the hierarchies of my containers and streamline development.
I do think coding standards are important in the professional field as they allow many people to follow the same code structure and encourage organization. However, in this course, we used ESLint as our primary code analysis tool and I can come to the conclusion that I am not a very big fan of it. The biggest issue I have with ESLint specifically is how it likes to structure code. For example, when writing If-Else statements ESLint requires us to start the ‘else’ statement on the same line as the end of the ‘if’ statement which I am not a fan of. But besides all these small coding intricacies, I think it does help me organize code a lot better as it tells me when certain functions, imports, or variables are not being used which can help me restructure the codebase better. I think after working on a group project, ESLint was definitely helpful in keeping our code style uniform and clean because without it, having 5 different coding styles would have made developing a lot harder when attempting to work on other people’s code.
I really enjoyed ICS 314 and I think it was a fun course due to all the practical skills I have learned. I think that being able to cover such a wide range of topics was very beneficial even if at a surface level as it can open up various doors to what I may want to do later on. As I wrap up this course, I hope to be able to retain and continue to develop the skills I have learned in this class for potential future courses as well as my career.