Recently, I began learning to code in JavaScript using the free curriculum on freecodecamp.org. FreeCodeCamp is a website offering free lessons on a variety of programming languages. I found basic JavaScript to be simple enough, but when I moved on to the section about the ES6 standard I had a more challenging time. The syntax of destructuring was probably the most difficult aspect for me. I also noticed that JavaScript appears to be dynamically typed, so I didn’t have to worry about specifying a datatype. I could simply declare a variable and I was off to the races.
Basic JavaScript was fairly easy to learn because, as a C-like programming language, my previous experiences translated quite nicely. I was already proficient with C, C++, Java, and Python, all of which are relatively similar. To me, it felt like some kind of amalgamation of Java and Python due to the dynamic data types and the existence of classes/objects. However, a major difference between JavaScript and these other languages is that JavaScript apparently was developed and is primarily used for web applications and user interfaces. As a front-end scripting language, it can interface with CSS and HTML to serve users the best possible experience on the internet.
FreeCodeCamp is made up of a long list of challenges, each building off of the previous one. This method of instruction is known as athletic software engineering. The student learns to code not by reading a textbook or attending a lecture, but by actually writing code. I find this to be a very sensible way to learn how to program. Imagine if you were attempting to learn how to use the tools in a toolbox, like a screwdriver or a hammer. You could certainly try to become familiar with these tools through study, but the best teacher is actual, hands-on experience. I think that this method of instruction will be very effective.