CST438 Learning Journal 1
Before starting this Software Engineering course, I expected it to focus primarily on programming techniques and learning how to write better code. I assumed most of the class would be about using different programming languages, design patterns, and frameworks to build applications. I also expected to spend time learning debugging techniques and improving coding efficiency. While I knew teamwork might be discussed, I did not realize how much emphasis software engineering places on the overall process of developing and maintaining software.
After completing the first week, my perspective has changed. I now understand that software engineering is much broader than just programming. Writing code is only one part of creating successful software. The course introduced concepts like maintainability, sustainability, testing strategies, version control, and the importance of making design decisions that support long-term development. These topics highlighted that software often lives for many years and may be worked on by many different developers, making clear organization and documentation just as important as writing functional code.
I also found it interesting to learn about ideas like shifting left, which encourages considering testing, security, and performance early in development instead of treating them as afterthoughts. This approach made me realize that preventing problems is usually more effective than fixing them later. Additionally, discussions about trade-offs and deferred maintenance showed that software engineering often involves balancing ideal solutions with practical constraints such as deadlines and available resources.
I now see it as a discipline focused on building software that is reliable, maintainable, and adaptable over time rather than simply creating programs that work. I expect the rest of the course to continue developing these principles while also teaching practical techniques that will help me become a more effective software developer.
Comments
Post a Comment