My Journey with JavaScript

17 Jan 2024

Humble beginnings

I first started learning JavaScript in high school. In fact, this was one of my first experiences with coding in general. Prior to that, I did some basic programming for robotics with C++, but it was nothing more than a few commands like “startMotor()” or “stopMotor().” Therefore, JavaScript was the first programming language that I actually learned and practiced. In my freshman year of high school, I joined the “app club.” There, I learned how to build a website using HTML, CSS, and JavaScript. However, due to my lack of experience, these pages were often extremely simple in both design and implementation.

Since then, I have fallen out of practice with JavaScript. I began to work with other programming languages such as Python, R, Java, and C/C++. There are some stylistic similarities between these languages and JavaScript. Paired with my (somewhat limited) prior experience, this made it easier for me to review basic concepts such as arithmetic and branching. However, there were many aspects of the language that I was not familiar with. In particular, I was intrigued by many features introduced by ES6 such as default and rest parameters, spread operators, and destructuring assignment. I thought these were interesting features because I had never seen them before in other programming languages.

Utilization in software engineering

I do not have much perspective on whether JavaScript is a good language for software engineering. From what I have seen, the language (and especially the features added in ES6) offers the flexibility needed for developing software and web applications. In my experience, the document object model (DOM) was instrumental in turning static web pages into dynamic web apps. Additionally, although I have not personally used any of them, I know that there are many JavaScript libraries and frameworks that are used for web development. In this way, the functionality provided by the language and its frameworks makes it a powerful tool for web development and software engineering.

My perspective on “athletic” pedagogy

As mentioned previously, I do not have much experience using JavaScript, and especially not for practical purposes. Therefore, from a learning perspective, I support “athletic software engineering.” Although it can be a lot of work, consistent practice spread out over time is proven to help one learn and retain information. I think that by attempting all of the WODs, I will learn how to solve a wide breadth of problems. In turn, this will simultaneously help me develop my problem solving skills and my knowledge of the JavaScript programming language.