A Newbie's Adventure in the World of JavaScript

18 Jan 2023

My Learning Experience

In just the first week of the semester, I learned so much in ICS 314 alone. During the first weekend, I explored the basics of JavaScript and ES6 using freeCodeCamp. As a complete newbie to JavaScript, I had a lot to take in and adjust to in such little time. Although completing a total of 113 JavaScript exercises and 29 ES6 exercises gave me an excellent introduction to the language, I can’t say that I am completely confident in my JavaScript coding skills. Hopefully, with time and practice, my skills will improve and my JavaScript coding will become faster. Overall, I have enjoyed learning and practicing coding in JavaScript so far.

Comparing Something New to What I Knew

Before ICS 314, I learned Python, C, and C++ in other courses at UH Manoa. When I began learning JavaScript, I instantly noticed that there were a lot of similarities between C and C++. Much of the syntax, such as the loops, if-else statements, functions, and variable declarations, are written in a similar way. There were also some differences between JavaScript and the languages I had previously learned that was very intriguing.

The first thing that I noticed is that JavaScript is much laxer when it comes to declaring the variable types. It was very different to type var, let, and const to declare variables instead of keywords such as int, char, and float.

The second difference I noticed was the utilization of first-class functions in JavaScript. This feature allowed functions to be treated like any other variable. For example, during the exercises, we saw that functions in JavaScript could be passed as an argument to other functions or could be returned by another function. This concept felt very unfamiliar and confusing initially, but I am looking forward to implementing this feature more in my code and mastering its different capabilities over this course.

Although I haven’t had much time and experience with JavaScript, I think JavaScript is a good language from a software engineering perspective. Unlike C and C++, JavaScript feels much more intuitive. For example, it is easier to print something to the console without having to memorize how to print certain data types like in C and C++. Also, the built-in functions, such as shift(), unshift(), push(), and pop(), allow users to work more efficiently and get a better grasp on what their code is doing. I still need to learn more about software engineering and JavaScript to have a better-informed opinion but this is just my newbie perspective.

Athletic Software Engineering

Athletic software engineering is a very new experience for me as a programmer. Typically, I like to take my time thinking about the code I write but that is the very opposite of what I’ve experienced when doing athletic software engineering in this course so far. The first practice WODs were very stressful because I was not able to finish them before the DNF times. I think the timing aspect puts a lot of pressure on me which causes me to make simple mistakes in my code and approach to the problems in general. Although they are not my favorite things to do, I can see how they will benefit me in the future. One of my SMART goals was to pass at least 85% of the WODs. Hopefully, by doing the practice WODs many times and going into office hours if I need help, I will become a better athletic software engineer and will meet my goal by the end of the semester.