The Trials and Tribulations of Typescript

05 Sep 2024

Learning a new programming language can be a fun challenge. Many students are typically given a semester to learn and improve their skills in one language and then move onto another the following semester. Learning a new programming language with the time constraint of a week is, on the other hand, not so fun.

Typescript is a language I had only heard of a few times, but never in depth. I knew that it was related to Javascript, another language I had not dabbled in, but other than that, I had no prior knowledge of the language. Upon the first week of my ICS 314 class, I was tasked to learn both languages by the following week.

I began learning Javascript with a mixture of fright, anxiety, and a bit of excitement. Fright and anxiety due to the time constraint, and excitement for learning a new language and being able to add the skill to my repertoire. When it became apparent that Javascript shares many syntax similarities to Java, learning it became less of an anxiety-inducing task and more of a review of concepts I was already familiar with. Still, being told to learn something within a week is always a daunting task. But learning to work within a time limit is one of the biggest lessons taught in ICS 314, and perhaps one of the most important.

Learning ES6 and Typescript was where familiar concepts and syntax, things I knew and were comfortable with, began to blur and descend into unknown territory. Arrow functions, rest arguments, promises, and destructuring were all new concepts, and where I truly began to feel the pressure of my one-week time limit. Typescript has challenged me in much the same ways learning C++ did, with new syntax, operators, and concepts to memorize. I referred to the lessons many times, took extensive notes, and utilized Google in an attempt to understand specific concepts that were difficult to grasp.

My memorization of this new language was put to the test with the introduction of WOD, or “workouts of the day.” WODs are timed coding exercises introduced in ICS 314, aimed to test and improve your skills to work under the pressure of a time limit. While being told to write code that works as intended is daunting and stressful, it forces you to think on your feet and exposes you to the urgency that a professional programmer will experience in their career, and I believe that this exposure will be an invaluable experience for students entering the industry.

In conclusion, learning Javascript and Typescript in such a short timeframe and participating in WODs have proven to be anxiety-ridden experiences, but ones that I believe will have beneficial outcomes for my future professional career.