More Than Just Code: Lessons I Learned in Software Engineering

19 Dec 2025

Reflection on Software Engineering

Introduction

When I first started ICS 314, I assumed the class was mostly about learning React and making a website. But as the semester went on, I realized it was really about understanding how software engineering works in real teams. A lot of what we did—GitHub workflows, issues, coding standards, planning, and organizing tasks—ended up being just as important as the code itself.
This reflection summarizes the main skills I learned and how I see myself using them in the future.

Open Source Software Development

Before this class, I treated GitHub like a place to upload files. In ICS 314, I finally learned how a real team uses GitHub. We had to create issues, make branches, open pull requests, review code, and merge things the right way. It showed me that software engineering is not only about writing code—it’s about keeping the project organized so everyone can work together smoothly.
This is something I know I’ll use again, because almost every job relies on version control.

Agile Project Management & IDPM

Issue Driven Project Management (IDPM) was one of the biggest things I learned. Before this, I never broke work into small tasks. I would just code until things worked.

In this class, every task had:

This structure made our group project easier to manage and kept everyone on track. I can see how IDPM would help in almost any team environment, even outside of software.

Functional Programming

Functional programming was new to me. Learning how to use functions like map, filter, and reduce helped me write cleaner and shorter code. At first, it felt confusing, but after the WODs, I started getting used to it. I also realized these ideas show up in a lot of languages, so this was a useful skill to learn.

Coding Standards

At first, ESLint felt annoying, but I eventually saw why it mattered. Having a consistent coding style made our project easier to read and debug. ESLint also caught mistakes early before they caused real bugs.
Now that I’m used to it, the idea of coding standards makes a lot more sense, especially on group projects.

User Interface Frameworks

I had never used a UI framework before. Learning Semantic UI React helped me build pages faster without writing every piece of CSS from scratch. It also made it easier to design cleaner, more consistent interfaces.

Development Environments

Setting up the development environment taught me how to work with modern tools like Next.js, Prisma, npm, GitHub, and VS Code. Before this class, starting a new project felt intimidating. Now I feel more comfortable setting things up on my own.

Design Patterns

We didn’t go super deep into design patterns, but I learned why they matter. I started noticing patterns in our group project and in how components were organized. It helped me understand how to structure code in a cleaner and more reusable way.

Ethics in Software Engineering

The ethics talk was an important reminder that software affects real people. It made me think about responsibility—especially when it comes to privacy, accuracy, and fairness. It was good to step back and realize that what we build has a real impact on the world.

Conclusion

ICS 314 taught me much more than how to build a website. It taught me how to plan work, organize a project, write cleaner code, and collaborate in a more professional way. These are skills I’ll use in future classes, internships, and real software projects.
Even though the class was challenging, I feel like it gave me a strong foundation for understanding how software engineering actually works.