I have big goals. I don’t set out to just learn how to do stuff. I want to MASTER it. I want to do it better, faster, and more importantly – more EFFICIENTLY. I want to spend as little time doing what I HAVE to do so I can spend more time doing what I WANT to do. This year my focus is JavaScript.

The Language

ECMAScript 2015. ES6. Harmony.

The story of how it came to be, as a language that initially wasn’t taken seriously Even it’s name is a marketing ploy to garner interest based on a better known language, Java. I like how it’s everywhere; from browsers to apps to the command line. Plus, it’s just fun to write.

JavaScript frameworks are perplexingly abundant. So, on the upside, the amount of time it takes to get an idea off the ground appears to be consistently shrinking. The downside of that is that the choices for deciding what works best for your project’s needs is consistently growing. While I have honed in on AngularJS (and I’m really happy with it) I want to spend a lot of time primarily focused on plain ol’ vanilla JavaScript.

The Hurdle

With JavaScript, the hurdle for me has often been lacking a clear visualization of what’s happening. There’s a certain amount of abstraction involved in writing a callback function, in building an object constructor, or in writing a for loop. With JavaScript’s browser siblings, on the other hand, it’s more straightforward. For example, with markup you see an element on the page. With styles there is a straight path to follow to identify how an element’s color or other property is styled.

Objects in an array, by comparison, live inside the black box, so to speak. Unless you console log the contents or add them to markup through a loop, you never see them. As a more junior dev, this has been harder for me to conceptualize. Traversing the DOM, triggering click events, that’s easy-peasy-lemon-squeezy. I’m talking about mapping and sorting arrays and making AJAX calls and harnessing the real horsepower of JavaScript. That’s what I’m doing in 2017.