How software engineering, and a little bit of competitive spirit taught me Typescript.
This past week, I learned how to program using TypeScript. It was certainly a very unique experience to behold - we were tasked with going through a freecodecamp lesson plan that helped us learn the basics of Typescript, and then proceeded to run through a few excercises designed to help us approach these problems at a faster pace - they were dubbed “Workouts of the Day” or WODs. These were all incredibly interesting to experience, and I wanted to log down what each of these tasks were like, and how I personally felt about each of them. Spoilers… despite the frantic nature of it all, I did enjoy it.
To give some background on my coding experience, in the past, I’ve mostly worked with only C, C#, C++, Python, and Verilog. This meant that going into learning Typescript, I was essentially starting from a fresh slate. This made the freecodecamp tutorial on Typescript simultaneously very useful, and very tedious. The problem that I faced with freecodecamp was that a lot of the concepts that were taught were similar if not identical to other languages I’ve worked with before. This did make going through the tutorial super quick and enjoyable, but it did also come at the cost of some parts feeling admittedly redundant. However, I found that these excersizes did inevitably help out when it came time to do some actual code problems, doubly so when considering the format of those questions - the WODs.
The WODs were designed in a way that was meant to almost force us to speedrun the code. This approach to learning was very interesting to deal with, because it seemingly incentivized you to think fast. This approach can be useful and stressful in equal parts. It certainly did help us to get more into a mindset of programming that might be useful in the context of an interview, but knowing that you were being actively timed while trying to think fast about what you need to do next was simultaneously thrilling and stressful. Because of this, the first WOD did take me a few attempts to try and get correct, between the stress and general newness to programming in TypeScript. In the end though, those WODs did somehow get marginally easier for me as I proceeded through attempts, to the point that the second WOD I attempted ended up being a lot quicker to go through. I ultimately hope that as I continue through these WODs, it will take me less time to achieve ideal times, because being able to code quickly and accurately is a skill worth picking up, in my eyes.
Most of the code that we worked on was done in a dedicated editor for TypeScript. This editor was simple enough to understand, which did prevent some growing aches that could’ve occurred with alternatives. The professor also gave us access to use of AI, to assist us however we needed. I personally believe that coding with AI is a good crutch, but not necessarily a good tutor, so when going through the code, I mostly tried to abstain from AI. There was one use that AI did help me though, which was that I did use it to generate alternative solutions to the code when I finished. I did this primarily because I wanted to see if there were more efficient ways I may not have used to implement the code - I recently finished an Algorithms class, and I recall that a huge focus of that class was in regards to time complexity, so seeing alternative general ways to improve time complexity by using AI was eye-opening and fascinating, to say the least.