The New Frontier: Javascript

30 Aug 2023

I’ve got some experience with Java, C++, and HTML, so jumping into Javascript was a bit of an adjustment. The first thing that tripped me up was the syntax and how loose it is compared to something like C++ or Java. I mean, you can declare a variable with var, let, or const, and each has its own scoping rules. It’s kinda confusing at first.

I did appreciate the flexibility, though. For example, in Javascript, functions are first-class citizens, which means you can pass them around as arguments to other functions. That’s something I didn’t really get to do much in C++ or Java.

From a software engineering perspective, I have some reservations. Javascript’s flexibility is a double-edged sword. On one hand, it lets you be super creative and agile, but on the other, it makes it easy to write really messy, unmaintainable code. For example, because Javascript is dynamically typed, it’s easier to introduce bugs that you wouldn’t catch until runtime. Of course, tools like TypeScript are trying to fix that, but it’s still something to consider.

I find the WODs super helpful. They’re like a quick gym workout, but for coding. I feel like they help reinforce what we’ve been learning in class and give me a chance to apply it in a low-stakes environment.

First off, the time limit is a good thing. It adds a sense of urgency that you don’t usually get when you’re just doing homework or a project. It forces me to think on my feet and really understand what I’m doing, instead of just hacking away until something kinda works. Also, because the problems are short, they often focus on one or two specific concepts.That targeted practice helps reinforce my understanding of the topic and I’m more likely to remember it down the line.

But probably my favorite part about these exercises is that they expose gaps in my understanding. Like, if I struggle with a problem, it’s a clear indicator that I need to review that topic. That’s super valuable for me. Plus, the problems are varied enough that they give me a taste of different aspects of Javascript—everything from basic syntax and data structures to more advanced topics like closures and the DOM. I also find that these short problems are a good warm-up for larger projects or coding interviews. If I can solve a problem in 15 minutes under pressure, then it builds my confidence for tackling more complex issues.