My First Few Sips of Java(Script)

16 Jan 2024

My first sip of JavaScript was, to say the least, not the greatest first impression to have.

Long before I took my first step on Manoa, my first introduction to JavaScript was in a middle school technology class, during the web development section. We had learned HTML and CSS, and with that knowledge, were tasked with creating a basic website. I had little problems setting up this basic page with the skills I had learned. Confident, I looked over to my neighbor, just to see that they were trying to implement a fancy widget on their page: an image carousel with 4 different pictures and cool buttons to navigate through them! Curious, I asked where they got it from, and I quickly tried to implement it myself. I failed. I did not understand the arcane workings of the weird language the carousel was coded with. It had weird words and even stranger symbols. What is a “function”? What were all these parantheses doing? Why was there a semicolon at the end of every line? I was put off from learning anything further, and thus, I did not… until now!

The “Taste” of JavaScript

Having learned 4 other languages in previous ICS classes (Python, C, C++, Java), I was much more well equipped to learn JavaScript than I was 7 years ago. However, I have also acquired my own “tastes,” or biases, for how a programming language should feel like when using it. I have gotten used to solving problems using all the syntactic tendencies of object-oriented programming through C and Java. So, how does JavaScript stack up?

It is… strange. JavaScript is supposedly an object-oriented language like C and Java, but it felt like Python writing it! The classes and strong typing of C and Java were gone, and instead, I have been writing arrow functions and “let”ting these variables be whatever! Objects still exist, but they feel a lot looser than I have been used to when programming in C. I am also still not quite used to only having to use let and const for variables instead of typing them, despite my previous experience with Python. I will say, some of the functionalities of JavaScript, including the spread operator and arrow functions discussed in ES6, are quite interesting and useful in certain cases. In general, I felt a lot more agile solving problems in JavaScript as opposed to the previous 4 languages I have learned. Thus, I think JavaScript is a good language for software engineering insofar as it enables quicker, or atleast more compact, programming. Whether this impression lasts into more advanced problems and eventual fully functioned projects, I am unsure and I look forward to seeing how our use of JavaScript will evolve.

Daily Cup of Code

Last semester, I took ICS 212 asynchronously at Leeward Community College. It was probably the least I have learnt in an ICS class so far. I often packaged entire weeks of content into 1-2 days as I worked on the weekly assignments. It made it hard to digest any of the content, and even though I could complete the assignments, I did not really feel like I was absorbing much of anything. This is more of an indictment of my ability to direct my own learning, though, which is still underdeveloped.

Athletic software engineering has helped me address this weakness head-on by forcing me to work everyday on something from the class. It is certainly stressful, resulting in probably the most rigorous course I have ever taken, but having to do something daily has made me develop my work ethic and my skills at a really quick pace. In only 3 days, I learned the basic syntax for an entirely new programming language, which is not something I’ve done before. Of course, just learning the syntax is not nearly enough to attain mastery, and that is exactly what the WODs (Workout of the Day) do. They make us recall our knowledge of the capabilities of JavaScript and apply them to actual problems, doing so from relative scratch. I am used to time-limited tests, coming from a competitive background, so a part of me enjoys the WODs, although the part of me that blanks out and worries about grading does not enjoy the WODs. Overall, however, I think this style of learning will work for me. After all, you never want to chug a cup of coffee all at once; it is best to take it one sip at a time.