One Clear Path
There are so many JavaScript resources available out there, it’s hard to understand how much of it overlaps and how much is redundant. Not to mention the process of weeding out bad information.
There are many possible paths, several good paths, but few great paths.
Here is one clear path to JavaScript mastery:
Why JavaScript?
JavaScript is the standard language of the web platform. Learning it will allow you to build any app you want for any device or platform you want. Watch this 1 minute video to learn more about what JavaScript can do for you:
The essentials, in order:
- Newbies: “JavaScript for Cats”, Max Ogden (free website)
- “Eloquent JavaScript: Second Edition”, Marijn Haverbeke (book with free online edition)
- “JavaScript: The Good Parts”, Douglas Crockford (book)
- “Learn JavaScript with Eric Elliott”, disclaimer: I’m Eric Elliott (online courses in preorder, scheduled to launch in December 2014)
- “Programming JavaScript Applications”, Eric Elliott (book, free online, print & ebooks available)
- “JavaScript: The Definitive Guide”, David Flanagan
- “Delivering the Goods” by Paul Irish (video)
On JavaScript Modules
The largest package repository in the world (for any programming language) is npm, or node packaged modules. It’s the package manager that comes with Node.js, but it’s also widely used for client-side modules using solutions like Browserify.
There are competing standards: Primarily AMD with Bower and ES6 modules (which can be transpiled to node or AMD modules). None of those solutions can currently compare to the richness of the developer ecosystem offered by npm + Browserify. My current recommendation for production is to stick to npm and Node modules — both in Node and in the browser.
Classes vs Prototypes
Most JS books will teach you how to implement classical inheritance in JavaScript. Watch this video to learn why classical inheritance should be avoided in JavaScript, and how to put prototypal inheritance to work for you:
Email me when JavaScript Scene publishes stories
