# Essential JavaScript Links A curated list by Eric Elliott and friends. Suggest links in the comments below. This is a very exclusive collection of only must-have JavaScript links. I'm only listing my favorite links. Nothing else makes the cut. Feel free to suggest links if you think they're good enough to make this list. The really curious should feel free to browse the comments to find other links. I can't guarantee the quality of links in the comments. ## Full Disclosure Some of these links are affiliate links, meaning that if you make a purchase, I might earn a little money. **This has absolutely no bearing on whether or not links make the list.** *None, whatsoever.* However, it does allow me more resources to **[fight poverty with code](https://medium.com/the-backer-army/fighting-poverty-with-code-d1ed3ebd982d)**. *Every little bit counts.* ## Required Reading (Online resources) * [Learn JavaScript Essentials (for all skill levels)](https://medium.com/javascript-scene/learn-javascript-b631a4af11f2) - One clear path to JavaScript mastery * [JavaScript Training Sucks](https://medium.com/javascript-scene/javascript-training-sucks-284b53666245) 99 out of 100 JS developers lack the skills they need to fill hundreds of thousands of jobs. We can change that. * [The Two Pillars of JavaScript Part 1: Prototypal OO](https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3) * [The Two Pillars of JavaScript Part 2: Functional Programming](https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4) * [JavaScript Objects](http://davidwalsh.name/javascript-objects) An excellent explanation of inheritance in JavaScript by Kyle Simpson * [The General Theory of Reactivity](https://github.com/kriskowal/gtor) What is all this talk about reactive? Functional? Promises? This is the beginning of a reactive programming bible. * [Reactive MVC and the Virtual DOM](http://futurice.com/blog/reactive-mvc-and-the-virtual-dom) Great read, even if you're not a React user. * [ES6 Generators](http://davidwalsh.name/es6-generators) A series of blog posts by Kyle Simpson * [Typed JavaScript](http://www.2ality.com/2014/10/typed-javascript.html) - Excellent post about the state of typed JavaScript by Axel Rauschmayer * [Isomorphic JavaScript](http://isomorphic.net/) * [JavaScript Application Architecture on the Road to 2015](https://medium.com/@addyosmani/javascript-application-architecture-on-the-road-to-2015-d8125811101b) - Addy Osmani * [Taming the Asynchronous Beast with CSP in JavaScript](http://jlongster.com/Taming-the-Asynchronous-Beast-with-CSP-in-JavaScript) - James Long ## Required Viewing * [Asynchronous Programming at Netflix](https://www.youtube.com/watch?v=gawmdhCNy-A) - [Jafar Husain](https://twitter.com/jhusain) * [David Nolen: Immutability: Putting The Dream Machine To Work](https://www.youtube.com/watch?v=SiFwRtCnxv4) - [David Nolan](https://twitter.com/swannodette) ## Spec * [ES5 Spec](http://es5.github.io/) An annotated, hyperlinked version of the ES5 spec * [ES6 draft](https://people.mozilla.org/~jorendorff/es6-draft.html) ## Books * [JavaScript for Kids](http://www.amazon.com/gp/product/B00QL616QE?ie=UTF8&camp=213733&creative=393177&creativeASIN=B00QL616QE&linkCode=shr&tag=ericleads-20&linkId=6AOODC27L6URY3K2) * [Effective JavaScript](http://www.amazon.com/gp/product/0321812182?ie=UTF8&camp=213733&creative=393185&creativeASIN=0321812182&linkCode=shr&tag=ericleads-20&linkId=JIC63I267I6UDQQZ) * [Eloquent JavaScript](http://eloquentjavascript.net/) * [JavaScript: The Good Parts](http://www.amazon.com/gp/product/0596517742?ie=UTF8&camp=213733&creative=393185&creativeASIN=0596517742&linkCode=shr&tag=ericleads-20&linkId=IJKESYSOTWGC27DR) * [Programming JavaScript Applications](http://chimera.labs.oreilly.com/books/1234000000262) * [JavaScript: The Definitive Guide](http://www.amazon.com/gp/product/0596805527?ie=UTF8&camp=213733&creative=393185&creativeASIN=0596805527&linkCode=shr&tag=ericleads-20&linkId=AENIF5KLRQI3N335) * [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) * [Node.js in Action](http://www.manning.com/cantelon/) ## Dev tools & collaboration * [nvm](https://github.com/creationix/nvm) First install this... * [Node](http://nodejs.org/) Then install Node (with nvm). You'll need this even if you're a front-end dev. * [npm](https://www.npmjs.com/) Install lots of other things with npm. **The package manager for JavaScript.** Comes with Node. * [Sublime Text 3](http://www.sublimetext.com/3) * [Browserify](http://browserify.org/) Bundle modules for the browser. * [Node Inspector](https://github.com/node-inspector/node-inspector) Debug Node code with the Chrome debug tools * [TraceGL](https://github.com/traceglMPL/tracegl) Powerful runtime analysis of live JavaScript code * [Tern](http://ternjs.net/) Static analysis in JavaScript * [Nitrous.IO](https://www.nitrous.io/join/uJcRo6yQDvs?utm_source=nitrous.io&utm_medium=copypaste&utm_campaign=referral) (Supports live collaboration / pair programming) * [Slack](http://slack.com) Chat for teams, with GitHub and Google hangouts integration * For hangouts, just type /hangout in any channel * [JSHint](http://jshint.com/) * [ESLint](http://eslint.org/) * [PrettyDiff](http://prettydiff.com/) * [ES6 Fiddle](http://www.es6fiddle.net/) ## JavaScript environments * [Node.js](http://nodejs.org/) Server side JavaScript and more * [io.js](https://iojs.org/) - The Node fork ## QA / Deployment / Monitoring / CI * [PM2](https://github.com/Unitech/pm2) Process monitoring / self repair * [New Relic](http://newrelic.com/) Deep insights into the performance and health of your production apps * [Sauce Labs](https://saucelabs.com/) Cross platform web application testing with great collaboration and integration support * [Travis CI](https://travis-ci.org/) CI, of course ## Libraries * [es5-shim](https://github.com/es-shims/es5-shim) * [es6-shim](https://github.com/es-shims/es6-shim/) * [es7-shim](https://www.npmjs.com/package/es7-shim) Yeah, we're already implementing ES7. Keep up! =) * [native-promise-only](https://github.com/getify/native-promise-only) An ECMAScript standard promise polyfill by Kyle Simpson * [jQuery](http://jquery.com/) Yes, [I still use jQuery](https://docs.google.com/document/d/1LPaPA30bLUB_publLIMF0RlhdnPx_ePXm7oW02iiT6o/edit#) and so do 61% of the top 100,000 websites - for good reason. * [Blaze](http://meteor.github.io/blaze/) DOM-diffing isomorphic reactive templates from Meteor * [RxJS](https://github.com/Reactive-Extensions/RxJS) Reactive extensions for JavaScript. [What's reactive?](https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4) * [Moment](http://momentjs.com/docs/) A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates. * [Express](http://expressjs.com/) The most popular framework for Node * [Credential](https://github.com/ericelliott/credential) If you write Node apps with password logins, you need Credential * [cuid](https://github.com/ericelliott/cuid) GUIDs are broken - use cuid, instead * [velocity](http://julian.com/research/velocity/) & [Velocity Motion Designer (VMD)](http://julian.com/research/velocity/#vmd) UI animation library * [json-schema](https://github.com/kriszyp/json-schema) - Great for model validations ## Web Components * [FIRST](http://addyosmani.com/first/) * [Polyfills](http://webcomponents.org/polyfills/) * [HTML Imports](http://webcomponents.org/articles/introduction-to-html-imports/) * [Custom Elements](http://webcomponents.org/articles/introduction-to-custom-elements/) * [Templates](http://webcomponents.org/articles/introduction-to-template-element/) * [Shadow DOM](http://webcomponents.org/articles/introduction-to-shadow-dom/) ## Community * [ES Discuss](https://esdiscuss.org/) The mailing list where all the ECMAScript standard discussion action is. * [JavaScript on Google+](https://plus.google.com/communities/100875929141897651837) * [HTML5 on Google+](https://plus.google.com/communities/103299867207875326585) * [Node.js on Google+](https://plus.google.com/communities/115365528781941125390) * IRC ##JavaScript irc://irc.freenode.net/javascript * IRC #node.js irc://irc.freenode.net/node.js * IRC #io.js irc://irc.freenode.net/io.js - the Node fork ## News * [JavaScript Weekly](http://javascriptweekly.com/) * [Node Weekly](http://nodeweekly.com/) * [HTML5 Weekly](http://html5weekly.com/) * [EchoJS](http://www.echojs.com/) * [DailyJS](http://dailyjs.com/) * [JavaScript Jabber](http://devchat.tv/js-jabber/) ## Pasting / sharing code * [Codepen](http://codepen.io/pen/) * [RequireBin](http://requirebin.com/) ## Contests * [DemoJS](http://demojs.org/) The JavaScript demoscene party * [JS1k](http://js1k.com/) JavaScript domes in 1k of memory * [JS13k Games](http://js13kgames.com/) JavaScript games in 13k of memory * [FightCode game](http://fightcodegame.com/) program virtual battle bots and climb the leaderboard * [Node Knockout](http://nodeknockout.com/) The legendary Node competition ## Hackable Hardware * [Nodebots](http://nodebots.io/) * [Cylon](http://cylonjs.com/) * [Nodecopter](http://www.nodecopter.com/) * [Tessel](https://tessel.io/) * [Espruino](http://www.espruino.com/) ## Hosting * [DigitalOcean](https://www.digitalocean.com/?refcode=fdcfedac5208) ## Transpilers * [6to5](https://github.com/6to5/6to5) (ES6) * [CoffeeScript](http://coffeescript.org/) * [Emscripten](http://kripken.github.io/emscripten-site/) (frequently used for C/C++ JavaScript ports) * [Traceur](https://github.com/google/traceur-compiler) (ES.next) ## Twitter (alphabetical order) * [Addy Osmani](https://twitter.com/addyosmani) - App architecture expert, Chrome dev tools champion * [Angus Croll](https://twitter.com/angustweets) - Author, "If Hemingway Wrote JavaScript" * [Axel Rauschmayer](https://twitter.com/rauschma) - ES Next evangelist, author * [Brendan Eich](https://twitter.com/BrendanEich) - Created JavaScript * [David Nolan](https://twitter.com/swannodette) - Great functional programming content * [David Herman](https://twitter.com/littlecalculist) - Author, "Effective JavaScript" * [EchoJS](https://twitter.com/echojs) - News and links * [Eric Elliott](https://twitter.com/_ericelliott) - That's me. O'Reilly author. JavaScript architect. JS Instructor. * [Jafar Husain](https://twitter.com/jhusain) - Great talks on RxJS, ES next, etc... * [James Halliday](https://twitter.com/substack) aka Substack - author of ~one million~ Node modules you probably use. * [James Long](https://twitter.com/jlongster) - CSP, functional programming advocate, Mozilla developer * [JavaScript Cheerleader](https://twitter.com/JS_Cheerleader) - Mover & shaker, JavaScript evangelist, documentary film maker * [JavaScript Daily](https://twitter.com/JavaScriptDaily) - News and links * [Jordan Harband](https://twitter.com/ljharb) - Keeping us ahead of the JS curve * [Kyle Simpson](https://twitter.com/getify) - Author, YDKJS - O'Reilly, JS Instructor, open web evangelist * [Marijn Haverbeke](https://twitter.com/marijnjh) - Author, "Eloquent JavaScript" * [Nicholas C. Zakas](https://twitter.com/slicknet) - Author, speaker * [Nick Morgan](https://twitter.com/skilldrick) - Author, "JavaScript for Kids" * [Paul Irish](https://twitter.com/paul_irish) - Developer evangelist, Chrome dev tools champion * [Reginald Braithwaite](https://twitter.com/raganwald) - Author, "JavaScript Allongé", speaker, GitHub * [YDKJS](https://twitter.com/ydkjs) - You Don't Know JS, O'Reilly book series by Kyle Simpson