Before coming into this module, I already had experience with C++, Java, Python, JavaScript, and HTML since high school. Getting to work with TypeScript felt more like a new perspective than starting from scratch. What stood out to me when learning about TypeScript was how it blended the flexibility of JavaScript with the structure I was used to in strongly typed languages like C++ and Java. The ability to define types made coding feel more predictable and reliable, while still keeping the dynamic and creative aspects that I liked about Java and JavaScript. This language type has given me the best of both worlds.
When learning about TypeScript, I found that it had similar features to let, const, var, arrow functions, static typing, and template literals in other programs. But when diving deeper into the modules, it helps garner a deeper understanding of how they fit in with TypeScript and how they are used in code. When writing code through TypeScript, I found catching errors and maintaining code seemed clearer than Java or C++. The structure of the language reminded me of Java and C++, but with a syntax that was easier to work with. I realized that TypeScript is not just about preventing errors, it’s also about writing clean and maintainable code.
The athletic software engineering or “workouts of the day” (WODs) approach in this module reminded me a lot of my experience in robotics. During robotics competitions, there was constant pressure to solve problems quickly before a match started, whether it meant fixing code, debugging errors, or making last-minute adjustments in the program. That same intensity came through in the WODs, where I had to think fast and code accurately under a strict time limit. Just in robotics, the urgency to fix and develop code under a time limit pushed me to develop “muscle memory” in solving and developing ideas to debug issues very quickly. Although the process was stressful, having experience from robotics has made me grow and understand how to maintain pressure and find solutions quickly when doing WODs in class.
Additionally, while completing WODs for assignments or practice, I appreciate the encouragement to use AI tools for guidance. Getting to have access to these tools has allowed me to understand and learn how to debug certain aspects of the code promptly and catch any printing errors that may occur in the WOD. This combination of practice on how to use AI as a tool made it easier for me to understand valuable lessons on how AI should be used.
When discussing TypeScript as a programming language, I see it as a strong software engineering tool because it combines the structure and flexibility of other programs. It adds reliability while allowing creativity, and it feels easier to maintain and spot any errors in the code. When discussing WODs, at first, I found it challenging and stressful to do. However, working on practice WODs and relying on my robotics experience has helped me code quickly and grasp what I needed to complete in the time limit as best as I can. Also, knowing that I could use AI during the WODs has helped me find more time to help debug and fix code to get the return results for the WOD.
Together, I think TypeScript and WODs have taught me how good tools and disciplined practice go hand in hand. While TypeScript provides features and strong support in software design to build on, WODs, on the other hand, help provide practice in coding in TypeScript to understand the style of code and help me grow as a programmer. I found both to be valuable in helping me build my skills and prepare for any future issues.