JavaScript Training Sucks

Eric Elliott
Dec 30, 2014 · 8 min read

This is a very real, very serious problem.

Understanding JavaScript is Vitally Important

JavaScript is the standard programming language of the web platform, and increasingly, all software is becoming web software. Productivity apps, mobile apps, games, wearable computing, cloud services, IoT devices… you name it, the trend is the same: They’re all relying more and more on JavaScript.

npm is the largest programming language
package repository in the world.

Image for post
Image for post

We all Depend on JavaScript

Software is eating the world, the web is eating software, and JavaScript rules the web. You can code in other languages, of course, but Node.JS is taking over the server side, and compile-to-JavaScript languages make up a tiny fraction of the programming language popularity rankings. Npm, JavaScript’s standard package repository, is the largest package repository in the world, and it’s still growing very quickly.

The Myth of the 10x Developer

It’s very common to hear about developers who are ten times more productive than average developers. The problem with this fuzzy math is that it assumes that the average developer hire is a productive hire. The truth hurts, so brace yourself:

You’re paying people to
slow the rest of the team down.

The Interview

Lots of JavaScript interviews will ask questions about basic JavaScript idioms, syntax, and quirks. Questions like “Do you know what hoisting means?”

Can you show me an example of prototypal inheritance?

When I ask this question, I’m looking for a basic understanding of the essence of prototypal OO. What is it? How is it different from classical inheritance? What are the advantages?

Depend too much on classical inheritance,
and you will be on the fast-track to a painful rewrite.

Can you show me two example use-cases of closures?

Interestingly, this question doesn’t necessarily test functional programming. What it does tell me is whether or not the candidate has a good grasp of one of the things that makes functional programming a usable paradigm in JavaScript. In order to get good at functional programming in JavaScript, you must have a good understanding of closures.

In order to get good at functional programming in JavaScript,
you must have a good understanding of closures.

Learning The Two Pillars of JavaScript

I rate prototypal OO and functional programming as the two most important features of JavaScript. They’re essential components of all JS application architecture. Both prototypes and closures are very heavily used in every large-scale JavaScript app I’ve ever laid eyes on.

99 out of 100 candidates bomb
at one or the other, or both.

In JavaScript, it’s literally impossible to be really effective at asynchronous programming without understanding closures and the negative impact of side-effects. The problem? All JavaScript applications depend heavily on asynchronous programming skills.

JavaScript Training is Great… at First

Most JavaScript books and training programs are great at teaching you the basics of imperative and procedural programming. Those are important fundamentals to grasp, to be sure. The problem is that they frequently drop the ball there, or proceed to teach you how to mimic classical inheritance in JavaScript, which is frequently problematic.

A New Approach to JavaScript Education

Because of the enormous void in the extremely crowded and confusing JavaScript education space, I’ve spent the past year or so developing a different type of educational experience for people who want to learn JavaScript.

Learn from the mistakes of others.

The best way to learn how to code is to code.

Welcome to the Future of JavaScript Training

A really effective JavaScript training program will include all of those elements, and it will focus heavily on the fundamentals. It’s not OK that so many developers have a shaky grasp on the most important concepts in JavaScript. JavaScript is a multi-paradigm programming language, and it’s unwise to ignore any of those paradigms. Eventually, you’ll be faced with code you don’t understand, or challenges you don’t know how to solve effectively.

JavaScript Scene

JavaScript, software leadership, software development, and…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store