My Journey with Typescript

04 Sep 2024

Learning TypeScript and Its Role in Software Engineering

As someone new to TypeScript and JavaScript in general, I’ve found learning TypeScript to be a really useful experience. Although I was a complete newbie to JavaScript, my background in Java helped a lot. The concepts in TypeScript, like classes, interfaces, and static types, felt familiar since I had worked with them before in Java. This experience served as a nice refresher, especially since I hadn’t used Java in a while. It reminded me of things I learned back in my 211 class. Overall, I think TypeScript is a great tool, especially because it adds structure to JavaScript and makes it easier to catch mistakes early on.

From a software engineering point of view, I can see why TypeScript is useful. One of the biggest advantages is its static typing, which helps prevent a lot of the errors that might only show up during runtime in regular JavaScript. This is super helpful when building larger projects because it’s easier to spot problems early. Also, TypeScript’s code is easier to read and understand, especially when working on teams. I also like how TypeScript is compatible with JavaScript, so you can still use the JavaScript libraries and frameworks you’re familiar with. All of this makes TypeScript a solid choice for software engineering projects that need to be reliable and maintainable over time.

While learning TypeScript, I also learned more about ES6 features in JavaScript. ES6 introduced some really useful features like arrow functions, destructuring, and promises, which are now standard in web development. TypeScript builds on top of these improvements, making the development process smoother while adding type safety. I think learning TypeScript has made me appreciate how JavaScript has evolved, and it’s clear that TypeScript is a great tool for writing more structured and scalable code.

Athletic Software Engineering and WODs

Another part of my learning process has been Athletic Software Engineering (ASE) and the practice WODs (Workout of the Day). Even though I haven’t done an actual WOD yet, the practice ones have been really helpful in preparing me. They’re designed to simulate what it’s like to code under pressure, which is something I’ll definitely encounter in technical interviews and real-world coding situations. The idea of working on timed exercises where I have to solve a problem quickly and efficiently is stressful, but it’s also a good way to push myself to get better.

The WODs are definitely a unique style of learning. It’s pretty intense to try and solve problems quickly while learning new things at the same time. For me, it’s been especially challenging because I’m juggling a lot of new concepts right now, like HTML, TypeScript, and Python. Trying to balance learning all of these at once while preparing for the timed exercises can feel overwhelming at times. That being said, the practice WODs have been really useful for building my confidence and helping me manage my time better. They simulate the kind of pressure I might feel during coding interviews or even in professional settings, which I think is great preparation.

Even though the WODs can be stressful, I do find them helpful. They force me to think on my feet and improve my coding speed, but without sacrificing accuracy. This is something that I think will be useful not just for interviews but for actual software engineering jobs. The immediate feedback from completing WODs also helps me see where I’m improving and what I need to work on. It’s a bit nerve-wracking to work under a timer, but I can already see how these timed exercises are making me a better coder.

Conclusion

In conclusion, learning TypeScript has been both challenging and rewarding. Coming from a Java background, it’s been a good refresher for me, and I’ve enjoyed seeing how TypeScript adds structure and safety to JavaScript. TypeScript’s features make it a great tool for building large, maintainable projects, and I’ve really appreciated learning more about how it works with ES6. On top of that, the Athletic Software Engineering approach and WODs have been useful for preparing me for coding under pressure. While it’s definitely stressful at times, I think it’s a great way to practice coding in real-world scenarios, and I’m starting to see how it’s helping me improve. Overall, even though the learning process has been intense, I feel like I’m getting better at managing my time and handling the pressure, which will be super valuable in the long run.