Javascript and Athletic Software Engineering

30 Aug 2022

Javascript is quite a fascinating language. The syntax reminds me of both Python and Java. It is similar to Python because it is not strongly typed, yet on the other hand, some of its methods resemble Java. One example is getting the length of an array, which is array.length for both languages. The difficulty of learning the basics of this language lies between Python (easy) and Java (harder). Conversely, mastery of this language and its constituents is very challenging.

{() => fs}

Before taking ICS 314, I had experience with Javascript through The Odin Project and FullStackOpen. The Odin Project was my foundation for learning web development, where I learned the basics of ES6 Javascript, HTML, and CSS. FullStackOpen built off of that foundation and introduced me to React and other Javascript-based tools. Based on this experience, I began to understand how valuable Javascript is in software engineering. This language is the pillar for many modern web development technologies. Vue.js, React.js, Angular.js, Node.js, etc., all have Javascript at their core.

Despite being such a keystone language, there is a dark side to Javascript.

The dark side of Javascript is none other than “Javascript fatigue.” I first encountered this term in FullStackOpen. This fatigue comes from multiple factors ranging from indecision on what framework or library to use, fear of the inability to keep up with all the technologies, and impostor syndrome. Although as a student, I realized that it is acceptable not to know how to use everything. Instead, what is more important, at least for these early stages that I am in, is to understand concepts that can translate between all the different technologies.

Now, moving on to athletic software engineering…

During this past week of school, we got introduced to the concept of athletic software engineering. The main idea of this method is to get students to practice writing code under pressure. The pressure comes from needing to solve problems within a specific time. These problems are called WODs (workouts of the day). This method is an effective way to spice up the learning environment and make learning overall more engaging. It forces the students to practice, which is a lot better than passively watching videos about the subject on repeat. Athletic software engineering implements active recall, which considerably helps students retain what they are learning via repetition. As a former premedical student, I used a similar method to master biochemical pathways. In preparation for exams, I would time how long it would take to draw a pathway based on a randomly chosen flashcard. Ultimately, the concept of athletic software engineering and my previous experiences reminded me that learning how to learn is a skill that transcends disciplines.