For my final semester, I took my first software engineering course. Throughout the semester, I was able to learn a wide variety of software engineering skills. Those skills include working with React, learning VS Code, proper coding standards, Agile Project Management, and many others. After numerous WODs and homework experiences, I can now use these skills in real-life scenarios.
Before this course, I had primarily used CLion and PyCharm as my primary IDEs. For this class, we had to use VS Code. Compared to CLion and PyCharm, I think VS Code is a great IDE. Being able to have multiple different programming types in one project, whereas in CLion it’s primarily for C/C++ and PyCharm for Python, it was a welcomed change. I also liked how I was able to make an HTML page and immediately local host it to view it, allowing me to make rapid changes without having to do some complicated GitHub Pages scheme. Using Next.js with React in VS Code is also super simple and was a good experience.
This was my first coding class in a year, so I was a bit rusty with my coding standards, and this before I even knew about ESLint. At first, I found ESLint annoying and not useful. But as the semester continued, I found that the things it was marking as wrong, and when corrected, made the overall flow of the code look better. For our final project, having ESLint meant that everybody’s code would be in the same style, making readability 10x easier. Overall, I believe that this skill is important to develop because it will benefit a software engineer in the professional workspace, which often consists of more complex code and larger teams. In the future, I will implement this knowledge to create cleanly written code even if I am not explicitly waiting for a green check mark in the top right corner of my screen anymore.
In the middle of the course, we gained experience in a type of Agile Project Management called Issue Driven Project Management. Our group, UH-Uber, used this in order to split up work and assigned issues to each other so that we could attempt to complete our project. We utilized GitHub’s built-in project management feature to organize our codebase. For each milestone, our team would create a list of issues that we believed could be done for that week and assigned them to those who wanted them. This allowed people to pick and choose issues they liked better, instead of forcing someone to work on something they had no experience in doing. It also allowed us to keep track of who was doing what. Because of that, we were pretty successful in completing tasks in a timely manner. Overall, I’m glad that I learned how to use these project management tools effectively because I will definitely implement them for any coding project I may encounter in the future.
Overall, I really liked ICS 314. The skills I learned in this class will definitely help me in future jobs in software development or project management.