Thoughts on Software Engineering

17 Dec 2025

Goodbye ICS 314

As this semester of ICS 314 comes to an end, it’s time for me to reflect on all I have learned. Before taking this course, I had no real idea how much aspects go into software engineering. Throughout the semester, we built web applications and covered many topics relating to programming as a whole. These ideas not only helped me understand software but the idea and structure behind it as a whole.

Functional Programming

One concept we covered was functional programming. It’s a style of writing code where you avoid changing things once they are created. Instead, you write functions that always provide the same results even if you give them the same input. Sounds like a weird concept at first but it helps prevent bugs that happen from accidentally changing variables somewhere later in your program. A concept like this, can be used in any programming language and project. So, I think it’s pretty valuable knowledge for any software engineer to know.

Ethical Ethics

Ethics in a software engineering is topic often debated throughout the field. The idea involves making good and responsible choices when building software. When coding something, you should always think about how your code could benefit or affect others. This could include, protecting user data or avoiding implementing malicious features. This standard could be applied to any situation in software engineering. As the ones creating the software, we have the authority to do whatever we desire to the program, so it’s up to us to uphold the responsibility.

Designer Patterns

Design patterns are the blueprints of the software engineering world. They are common and reusable ways to solve the same problems that pop up over and over again. Instead of cooking up a solution from scratch every time, you can use design patterns as a guide to help resolve it. These patterns make it easier for any software engineer to organize and maintain their code. Meaning, this is an essential aspect for every software engineer to know. Not only can you use them for web apps, but you can use them for just about any program you are working on.

Conclusion

So even though we only built web app this semester, there were many skills taught that we can carry on with us throughout our software engineering journey. All of these can be applicable to almost every single application or program. Software enginering really isn’t only just about knowing a language or a framework, it’s about learning the right ways to solve problems, organize ideas, and make responsible decisions.