Just another trophy for my collection?

01 Sep 2021

As a 4th year computer-science student, I have developed software in programming languages like C++, C, C#, Go, Python and Java. It might upset many web-developers out there that JavaScript is yet to be added to my programming trophy-collection. I was therefore thrilled to find out that the ICS-314 class gives me the opportunity to get front-end JavaScript-experience and the possibility to discover a potential new favorite programming-language.

First thoughts from a low-level programmer perspective

Last week I completed an introductory course in JavaScript. An important finding from the course was JavaScript’s vast amount of functionality and the simplicity of exploiting it. It is seemingly also an easy language to learn for experienced programmers with similar syntax as other commonly used languages. However, it was fascinating to experience a first-class language, where functions can be stored in variables and passed in as an argument. Functions inside of functions is said to be an advantageous feature to JavaScript which can contribute to compacting code and increasing readability. However, from a low-level programmer point of view, I am not sure if I would understand a code-base better by making functions anonymous and hiding the datatypes from their respective variables. When I am supposed to understand and reuse functions in C++, I am grateful for the required addition of the datatype of the return-variable and parameters in the function declaration. In JavaScript where no datatypes are being presented, I would have to read the function body to fully understand how I can use the function for my own project.

However, as JavaScript is designed to be a high-level language mostly used for front-end development, I must treat it as such. JavaScript is employed everywhere on the web and will continue to grow and stay relevant for many years to come. I therefore find JavaScript crucial to learn as it is used by many potential employers and other developers in the community. By the end of semester, I will hopefully be able to tell you that my impression of JavaScript remains the same or even better than the one I have stated in this essay.

Athletic software engineering

When learning software development, I find it extremely important to occasionally solve different coding problems to improve my understanding and problem-solving ability. Therefore, I find the “athletic software programming” and practice WOD, “workout of the day”, useful for maintaining and improving my programming skills. The time constraint on the programming tasks forces me to think fast and come up with a solution quickly. This type of exercise can be advantageous and work as a “first draft” for the solution to the problem. However, for improving readability and maintainability of the code, I would have liked to stop the timer and use some extra time to refine the other crucial parts of the code apart from “getting the code to produce the correct output”. For the first couple of “WOD”’s I have enjoyed getting to learn the syntax of JavaScript better. However, the problems are still easy and familiar, so I am looking forward to getting to solve some difficult puzzles in the upcoming exercises.

To sum up, I am looking forward to learning the power of JavaScript and all of the advantages it comes with knowing how most of the web-applications are being developed. After taking this class, I will undoubtedly add “JavaScript” as a trophy to my collection of languages. However, the real question is if it will be a language that I can take advantage of in the future and inspire me to become a better programmer. If the answer is yes is yet to be determined.