JavaScript Reflection

18 Jan 2023

The human mind is a journey from clay to a complete molded form.

Reflection

Using FreeCodeCamp, a wonderful non-profit organization with a multitude of interactive learning web platforms to learn to code in different languages for free, I learned the fundamentals of JavaScript: objects, looping, functions, variables, conditional logic, and arrays. The syntax of the language is relaxed and it is weakly typed in the sense that variables can hold any type of object, which in itself is a double-edged sword. Furthermore, an interesting and core concept of the language is that functions are first class meaning that functions behave like any other object and can be assigned to a variable: functions can be used as arguments in other functions, you can store functions in arrays, and return a function from another function, etc. I believe that these core concepts allow beginner and advanced programmers to intuitively program in JavaScript.

Analysis

JavaScript is the first web-based language that I have formally studied, then with respect to general-purpose programming languages (e.g. C++, C, Java) the fact that it is dynamically typed makes it more accessible, but easier to mess up than the statically typed languages as variable types are determined at runtime rather than compile time. From a software engineering perspective, JavaScript is an excellent tool due to its intuitiveness and accessibility as it is flexible and dynamic. In addition, in recent years, ES6 (ECMAScript), was a major revision to JavaScript that implemented many features such as template literals, classes, block-scoped declaration of variables, and many more. Learning these interesting features has opened my mind to the endless possibilities that JavaScript can be used throughout the web.

Learning Style

In my ICS 314 class, we use a novel learning style known as athletic software engineering, where we do workouts of the day (WODs) multiple times a week, where each WOD is a programming exercise. This almost daily programming helps to mold my mind and shape it from a blob of clay, a rudimentary understanding of web programming and software development, to a fully-fledged molded form, which corresponds to a great understanding. This style of learning is mildly stressful as it is timed, but it is also enjoyable as it works out the mind and improves my programming skills. Personally, I think that this style of learning is innovative and great.