ICS 314, also known as Software Engineering seems to be one of the most important classes I’ve taken in terms of Computer Science. This course is filled with Software Engineering funadamentals, ranging from coding standards to ethics, and almost everything you need to prepare yourself for the challenges to face in the Software Engineering related career field ahead. There was so much information that I’ve learned, such concepts include open-source software development, configuration management, functional programming, development environments, coding standards, user interface frameworks, agile project management, design patterns, and ethics in software engineering. Although the course was fast-paced, it taught me to manage my time well, be mentally present and directly incorporate what I learned into the assignments and projects we endured.
I know, learning all these intricate concepts in a span of 4 months and I only got +1 into my intelligence stat. Why is that? ICS 314: Software Engineering taught me so many things that are needed for this career field, but I know in this field, this information I have gathered is a grain of sand or two in the entirety of the sand bucket. It sounds almost discouraging, that there is so much to learn, to do, and incorporate into this career field. There are two ways to look at this, I can either be discouraged by bountiful sand that is in the sand bucket, or see the sand as something that is always in my grasp, as this is my sand bucket, and there is all the time in the world to learn each speck of sand, because I own it. I choose to think the latter, there is so much more to discover in terms of very specific or general Software Engineering fundamentals. Let’s nitpick some of the concepts I learned so far, one is Design Patterns. Design Patterns are basically reusable solutions to common software design problems. They are often code that has been formulated and maintained to solve recurring design challenges. In our course, these design patterns are often implemented in our web application development, but lets go beyond that. Design Patterns apply to so many other applications beyond web applications, they include object creation, structural, behavioral, creational, in which they are all modulated code in other programming languages. Design Patterns is made to save time and do the job efficiently. Another important concept I’ve learned is Agile Project Management. Agile Project Management functions as a flexible roadmap for developing software. It can be utilized in a variety of applications, not just web development. It all comes down to adaptation, collaboration, and consistently producing relevant project components. Agile concepts can help make things run more smoothly, whether it’s software, infrastructure, or even physical creation.
This path into software engineering has been a life-changing experience, revealing the artistry behind code and sharpening my problem-solving abilities. As I finish this course, I see it as a launching pad rather than a dead end. The knowledge learned here serves as a foundation, enabling me to face real-world issues. As I leave this course behind, Im taking with me the knowledge I have learned and eager to turn any challenge into an opportunity, to expand my knowledge, and to keep progressing in the dynamic world of software engineering.