Software Engineering Basics

09 May 2023

For my 4th semester of college, I took ICS314, which focuses on Software Engineering. While it was a bit ruff initially, our work was fascinating and fun. All the previous ICS classes I took were always theoretical, but this class instead focused on more practical skills, which I greatly appreciated. It taught me a lot of practical skills and things to know for my software engineering career in the future.

Coding Standards

One thing I’ve learned is coding standards. No matter what you’re coding, coding standards are an essential aspect that every programmer should integrate into their code. They’re basically guidelines on how code should be written so that they are easily readable for yourself and others. No one likes messy code. Making your code easier to read lets you detect errors easily and enables others to understand what is happening quickly. Like everyone likes to judge a book by its cover, your interviewer will judge you by how your code looks. I definitely wouldn’t want to lose out on a good job offer just because I had messy code.

Agile Project Management

Another thing I’ve learned is agile project management. Agile project management turns a larger issue into smaller ones you complete over time. Rather than completing something large in one go, you do it in parts will smaller goals. In web development, these smaller goals can be different pages or functions on a website. Another use case for this is in robotics, where the program for the robot is split into various subsystems. Agile project management is a much more efficient way of programming than trying to do everything simultaneously. It’s a lot more organized, especially if you make use of GitHub Issues to label what needs to be done and who needs to do it.

Development Environments

Development environments are a must-have for any programmer. For ICS314, we used Intellij. I have used other IDEs in the past, like Eclipse and VSCode; however, I found the IntelliJ IDE a lot easier to navigate. It is difficult to get used to from the start, but once you do, you start to appreciate how much easier they make programming with error checkers and fixers, and much more.

Final Thoughts

My time in ICS314 was really enjoyable. I learned a lot of practical skills and things to know for the future. As I continue my education, what I’ve learned and experienced in this class will help me overcome the many other problems I’m sure I’ll encounter.