Reflection on TypeScript

05 Sep 2024

My First Experience with TypeScript

This semester was my first time using both TypeScript and JavaScript. I had always heard about JavaScript being a popular language for web development and was curious to try it out, so it was exciting to finally get the chance to learn and practice it. Getting into TypeScript wasn’t too difficult because it’s a superset of JavaScript , meaning it builds on JavaScript and adds extra features, like type safety. Since I started by learning the basics of JavaScript, transitioning to TypeScript felt pretty smooth.

One of the biggest challenges was just getting used to the TypeScript syntax and figuring out how to use certain data structures that I like working with. However, I found that as I practiced more, the language started to make sense, and I got more comfortable with it. It’s clear to me now that TypeScript is a valuable tool for software engineering because it helps you write more explicit and understandable code.


Comparing TypeScript to Other Languages

Before this class, I worked a lot with C++, which made learning TypeScript much easier. Both TypeScript and C++ require you to declare types for variables and functions, so I already understood the importance of being specific about types in your code. In fact, I think having experience with C++ really helped me learn TypeScript more quickly, especially during the tutorials.

From a software engineering perspective, I think TypeScript is a great language because type declarations make it easier for other people to understand your code. For example, if you’re working on a team, having explicit types helps everyone know exactly what your functions and variables are supposed to do. This reduces confusion and makes collaboration more efficient. It’s also super helpful for catching errors early, which can save you a lot of time in the long run.


Athletic Software Engineering

Another important part of this semester was learning about Athletic Software Engineering and completing practice WODs (Workouts of the Day). Athletic Software Engineering is a teaching approach that focuses on improving programming skills through repeated, timed coding exercises. At first, I wasn’t sure what to think about it, but now I can see how valuable it is for building skills. These timed exercises mimic the kinds of high-pressure situations you might face in real-world technical interviews.

One of my goals this semester was to prepare for technical interviews, so I think the Athletic Software Engineering approach aligns perfectly with that. Many software engineering jobs require you to solve technical problems during interviews, often under strict time limits. These problems are similar to the ones you might find on platforms like LeetCode, where you have to solve a coding challenge and explain your solution to an interviewer. The practice WODs are a great way to get better at handling these types of situations.


My Experience with Practice WODs

While I see the value in practice WODs, my first experience with them was tougher than I expected. I struggled during the first real WOD we did in class, and I think a lot of it had to do with performance anxiety and my lack of experience. At first, I was really stressed because I thought we only had 5-10 minutes to complete the exercise, but it turned out that there was more time than I realized. Knowing that now, I feel much more prepared and confident for future WODs.

As the semester progressed, I could already see myself improving. The timed nature of the WODs forces you to think critically and stay focused, which is a skill I know will help me in the long run. While it can feel overwhelming at times, I’m confident that with more practice, I’ll get faster and more comfortable completing these types of challenges.


Final Thoughts

This semester has been a big learning experience for me, especially with TypeScript and Athletic Software Engineering. TypeScript has shown me the importance of being explicit about types and writing code that’s easier for others to understand. I now see how TypeScript can make collaboration more effective and help prevent errors before they happen.

Athletic Software Engineering, on the other hand, has pushed me out of my comfort zone with timed coding exercises. While the WODs were challenging at first, they’ve helped me build confidence and prepare for the high-pressure environments of technical interviews. I’m excited to continue improving these skills as I work on more projects in the future.