
My first encounter with TypeScript was during the Honolulu Annual Coding Challenge. With four other groupmates, we had to code a website that standardized the viewing and editing of projects and reports for the Office of Enterprise Technology Services. Since the project lasted only a month, I decided to work in the area I had the most experience in, which was the front-end. The framework we decided to use was React with TypeScript files. Both of these were new to me so I had to teach myself quickly to ensure I could contribute to the project. I watched an hour-long tutorial about the basics of React and then threw myself into the deep end by starting to code the web pages. After a week, I became familiar enough to comfortably code features and design the pages. But because of the short timeframe, I focused more on understanding that a line of code would do something rather than knowing why. Therefore, having a formal education on TypeScript through my software development class has been valuable. For instance, I now know what rest parameters are and the differences between special types like undefined, never, and null. Moreover, I learned new functionalities such as type aliases, enums, utility types, etc. As I learn more, I can take advantage of more TypeScript features to build better web applications.
In my opinion, I believe TypeScript is a good programming language. It improves upon areas where JavaScript lacks. Two very notable functionalities are TypeScript’s compile time error checking as well as not solely relying on type inferencing. The former saves developers a significant amount of time from having to run the program to debug the code. The latter also assists with the debugging stage by improving code readability, making it easier on the programmers to understand the purpose of variables, functions, etc. Although it is beneficial for programming in general, these two features alone become extremely beneficial for large-scale applications. For this reason, I want to become more fluent in TypeScript, and I believe the structure of my software development class will be helpful in accomplishing this goal.
In my software development class, we conduct exercises called Workouts of the Day (WOD) where we are given a problem to code in a specified amount of time. As of this essay, I have completed three practice WODs and I do believe they are an effective learning tool. They force me to analyze the requirements of a question quickly and formulate a solution efficiently. This improves my problem-solving skills and encourages me to continuously practice coding. Additionally, the WODs are done in TypeScript, which has been improving my skills in a language less familiar to me. Although these exercises are timed, I do not find them stressful. I have always been fond of testing environments because I enjoy how they test my understanding of the curriculum.