
Before this module I had only a basic understanding of TypeScript and mostly saw it as JavaScript with extra rules. Working through the TypeScript Playground and completing practice WODs for ICS 314 changed that perspective. This module pushed me to think more carefully about how I write code and why structure and discipline matter in software engineering. Instead of focusing only on making things work I began focusing on making things clear predictable and maintainable.
Coming into this module I already had experience with JavaScript so TypeScript felt familiar but also stricter. At first the type system felt frustrating because it forced me to slow down and fix issues that JavaScript would normally ignore. Over time I realized that this strictness is one of TypeScript’s biggest strengths. The compiler catches mistakes early which saves time and reduces bugs later. From a learning perspective it helped reinforce what kinds of data my functions were actually expecting and returning.
I also gained a better understanding of modern JavaScript concepts such as const let arrow functions and modules. Seeing how TypeScript builds on ES6 features made those ideas feel more concrete and practical instead of abstract syntax rules.
From a software engineering standpoint I think TypeScript is a strong language. It encourages writing code that is easier to read understand and maintain especially in larger projects. Explicit types act like documentation which is helpful not just for others but also for future me when I return to old code. TypeScript also promotes better design decisions because it forces you to think about structure before implementation.
I do not think TypeScript is perfect and it can feel unnecessary for very small scripts. However for real world applications and team based development the benefits clearly outweigh the drawbacks.
The athletic software engineering approach was one of the most challenging parts of this module. The WODs were timed and required focused effort which made them stressful at first. I often felt pressure to recall syntax quickly and make decisions without overthinking. At the same time this pressure simulated real development scenarios where time constraints and problem solving happen together.
Over time I found the WODs to be surprisingly effective. Repetition helped build confidence and speed and the constraints forced me to practice instead of passively reading. While stressful they were also rewarding especially when I noticed improvement from one WOD to the next. I would not call the process easy but I do think it works for me as a learning style.
This module taught me that learning programming is not just about understanding concepts but also about training habits. Writing code regularly under pressure helped me become more comfortable making mistakes and fixing them quickly. I learned that struggle is part of the process and that progress does not always feel smooth.
TypeScript combined with the athletic software engineering approach helped reinforce discipline attention to detail and persistence. These are skills that extend beyond this class and into real software development.
I used AI as a drafting assistant to help organize my thoughts and improve clarity. The ideas reflections and experiences described here are my own and are based on my work in ICS 314 during this semester. I reviewed edited and personalized the content to reflect my writing style and learning experience.
Overall this module changed how I view TypeScript and software engineering as a whole. What started as a language I saw as restrictive became a tool that supports better thinking and better code. While the learning process was challenging it was also meaningful and effective. I now feel more confident approaching structured typed programming and I expect these skills to be valuable throughout the rest of my academic and professional career.