Chasing a new pump with my new best friend

18 Jan 2023

Ever since I decided to change course and go into computer science, JavaScript was like that one popular student on campus who was a friend of everyone but me. It wasn’t like I didn’t want to be friends with them; I was curious but we never had the chance to actually meet. We had mutual friends like Java, C, and Python, but before this semester we only ever exchanged friendly glances in passing. It took a while, but finally we found each other in the same class. After spending some time together, JavaScript became my new best friend.

Why didn’t I learn this sooner?

I came away feeling astonished after undergoing a crash course on JavaScript and ES6 on freeCodeCamp. Despite there being well over a hundred parts to complete, at no point did I feel confused or stuck. I’m not sure if it’s because I’m already well-versed in programming, or if JavaScript is just that easy to get into. I was almost dumbfounded at how simple it was compared to the other languages I learned prior.

The one quality that Java, C, and Python all share is that they are strongly-typed languages: variables are required to have a datatype like “int” and “boolean,” and they are restricted to that type. However, JavaScript is a loosely-typed language. That means you don’t need to specify datatypes when you declare variables – there’s a lot more flexibility in that regard. Also, as if I couldn’t be any more in awe, ES6 has features that help make your code even more elegant. After I completed all the tasks, I was thinking only one thing: why didn’t I learn this sooner?

The new workout plan

The freeCodeCamp introduction was time-consuming at best, but we’ve barely scratched the surface. In ICS 314 there will be more to learn about JavaScript, along with the different facets of software engineering. I can’t think of a better method to gaining proficiency in a certain skill than intensive practice.

Throughout the semester we will be employing “athletic software engineering” to guide our learning of new concepts and development of new skills. Every day there is a new “Workout of the Day” (WOD), which are programming problems intended to further sharpen our skills. I was in the math team during high school, which entailed solving very difficult algebra and geometry problems within a very short timeframe. With that being said, it’s safe to say that this style of learning is a good fit for me. Just like an athlete going through a strict training regiment, athletic software engineering is meant to be rigorous and stressful, but isn’t that exactly what it’s like to work in the field? Like with any new workout plan, I will need to stay committed and motivated in order to see real progress. This semester I’ll be chasing a new pump, and it’s going to be a blast.