Introduction to JavaScript

31 Aug 2022

Although it has only been a week since the start of the Fall 2022 semester, I feel like it has already lasted an eternity. So much knowledge was crammed into my brain that I have not had time to digest it all. That was especially the case for this ICS 314 class, where we spent the last week learning JavaScript and ES6. As a complete newbie, this past week was rough, and I still have a long way to go.

My Learning Experience

My first impression of JavaScript was that it is similar to C and C++. A lot of the syntax such as loops, conditional statements, functions, and variable declarations were nearly the same but with minor revisions. However, there were many new things I learned as well.

The first difference I noticed was that JavaScript is very lax with variables compared to C and C++. It was a new experience using var, let, and const to declare variables even if they were a string, number, or array. This took some time getting used to, and I still catch myself typing int = something, especially on those practice WODs. Having the concept of first-class functions where you could return a string or a number was also something I felt was weird but cool.

Another difference I noticed was that JavaScript is more intuitive when compared to my previous languages, especially with all of the built-in array functions. I appreciate that printing something to the console is much easier without memorizing the formatting of different variable types. I like having useful array functions like shift(), push(), and especially the array.length parameter. These minor differences are a big time saver, and they are pretty easy to understand as well.

With these sorts of differences, I think JavaScript is much more suited to software engineering than something like C or C++. Although I have a limited understanding of software engineering, I feel like the ease of creating software with JavaScript might even outweigh the efficiency of C and C++ for some tasks. I still need to learn more about JavaScript and software engineering to form a more concrete opinion on this subject.

Course Organization

The organization of this class is much different from any of my previous programming courses. Since I don’t have much experience with athletic programming, I am unable to elaborate on how I like the differences. However, I do think that the WODs are an excellent idea. Being nervous under a time constraint is something I could never get rid of, and perhaps through the WODs, I might be able to become more comfortable. I was a little stressed during the practice WOD we had on Tuesday, but in the future, my goal is to be comfortable enough that I can enjoy it. If I keep up with the course material, then perhaps this might be a viable learning method for me.