Learning more about the nuances of JavaScript is interesting because it’s similar yet different from Java. Since JavaScript is similar to Java, I don’t feel overwhelmed when learning about what I can do with JavaScript, as I’m not learning an entirely new programming language from scratch. However, due to its similarity with Java, JavaScript is also sometimes confusing. Since I’m still getting used to coding in JavaScript, I’ve repeatedly made minor mistakes, as my hands are used to coding in Java. For example, I often write int or string before a variable name out of habit instead of var, let or const. Furthermore, since I’ve mainly used Java or C/C++ so far, I’m not used to writing parameters without data types and functions without a specific return type. I have to mentally keep track of a variable’s data type when reviewing my code, careful not to assign a string or character to a variable that’s meant to hold a number.
Although I have some experience with JavaScript, I still feel like a newbie to the programming language. While going through the first two sections of freeCodeCamp’s “JavaScript Algorithms and Data Structures Certification”, I realized I knew less about JavaScript than I initially thought, as the exercises at the end were new to me. However, as I went through the different JavaScript exercises, JavaScript seemed more convenient compared to other programming languages like Java or C/C++. For example, I’m able to add or remove elements from the beginning of an array using the shift() and unshift() methods, whereas in Java, I have to manually shift each element one by one. I also like that JavaScript gives me the ability to store multiple types of data in an array, whereas in Java, all elements in an array have to be of the same type.
From a software engineering perspective, JavaScript is a good programming language. It’s easy to learn and builds off of other languages. Since JavaScript is similar to Java and C/C++, a beginning programmer is sort of learning multiple programming languages at once. For programmers with some knowledge or experience in other programming languages, JavaScript is relatively easier to learn from scratch since it shares similar behaviors as Java and C/C++. However, an aspect that’s beneficial and/or disadvantageous of the programming language is its close similarity to Java, as JavaScript’s behaviors can become confusing for programmers who have prior knowledge of Java. Furthermore, knowing how to code in JavaScript is essential for software engineers, as JavaScript is usually used for web and mobile development and allows one to build interactive web page elements.
The weekly practice WODs, timed coding exercises that assess my ability to utilize new coding knowledge I learned throughout the week, are stressful but enjoyable and useful at the same time. Though I don’t particularly enjoy the stress that accompanies these exercises, WODs can potentially be helpful for future interviews. Moreover, I think I will somewhat enjoy the WODs because it will help me become accustomed to the stress of coding under a time limit for future coding interviews. These WODs will also help me become better at solving coding problems quickly and efficiently, a skill I’ll need for my future career when I need to complete projects by a certain deadline. I hope the WODs will be helpful, but I feel like the grade aspect will somewhat hamper my ability to become better at coding quickly and efficiently during the semester. Wanting to complete the WODs within the expected time range in order to get a good grade, I’m concerned that I’ll pressure myself to the point where I panic and can’t clearly focus on how to solve the problem in front of me. If this becomes the case, I hope I become comfortable with the pressure and eventually do well on the WODs. Despite these possible obstacles, I hope this class will be enjoyable, help me become a more efficient programmer, and expand my knowledge in JavaScript and software engineering in general, as I’m interested in web and mobile development.