Skip to content

Instantly share code, notes, and snippets.

@suzmas
Forked from michaelBenin/essential-javascript-links.md
Last active April 23, 2017 19:31
Show Gist options
  • Save suzmas/bad90cf1068efd81c724b5872d24180a to your computer and use it in GitHub Desktop.
Save suzmas/bad90cf1068efd81c724b5872d24180a to your computer and use it in GitHub Desktop.
# Essential JavaScript Links # Essential JavaScript Links
-A curated list by Eric Elliott and friends. Suggest links in the [gist comments](https://gist.github.com/ericelliott/d576f72441fc1b27dace#comment-1365676). +I use the Essential JavaScript Links list almost daily. I add to it when I find more links that I think every JS developer should know about. I want to make it easier to scan, and easier for users to suggest new links. We're going to turn it into a proper website, so...
-[Help us turn this into a proper website!](https://github.com/ericelliott/essential-javascript-links/issues) +## The List has a New Home:
-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. +[The Essential JavaScript Links List](https://github.com/ericelliott/essential-javascript-links#essential-javascript-links)
-## Full Disclosure +Please visit there and [open an issue](https://github.com/ericelliott/essential-javascript-links/issues/new) if you have any suggestions.
-
-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)
-* [How to Fix the `class` Keyword](https://medium.com/p/how-to-fix-the-es6-class-keyword-2d42bb3f4caf) TL;DR `class` is broken. Don't use it until it's fixed.
-* [JavaScript Objects](http://davidwalsh.name/javascript-objects) An excellent explanation of inheritance in JavaScript by Kyle Simpson
-* [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
-* [The Dao of Immutability](https://medium.com/javascript-scene/the-dao-of-immutability-9f91a70c88cd) The Way of the Functional Programmer
-* [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.
-* [Introduction to Reactive Programming](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754)
-* [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.
-* [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
-* [Taming the Asynchronous Beast with CSP in JavaScript](http://jlongster.com/Taming-the-Asynchronous-Beast-with-CSP-in-JavaScript) James Long
-* [ES6 Modules: The Final Syntax](http://www.2ality.com/2014/09/es6-modules-final.html) by @rauschma #AMDisDead
-* [Advanced Performance Audits with DevTools](http://www.paulirish.com/2015/advanced-performance-audits-with-devtools/) In-depth perf case studies with Paul Irish
-
-## Required Viewing
-* [Classical Inheritance is Obsolete: How to Think in Prototypal OO](https://vimeo.com/69255635) by [Eric Elliott](https://twitter.com/_ericelliott)
-* [Asynchronous Programming at Netflix](https://www.youtube.com/watch?v=gawmdhCNy-A) [Jafar Husain](https://twitter.com/jhusain)
-* [What is Reactive Programming?](https://www.youtube.com/watch?v=dwP1TNXE6fc) [Jafar Husain](https://twitter.com/jhusain) explains reactive programming
-* [Immutability: Putting The Dream Machine To Work](https://www.youtube.com/watch?v=SiFwRtCnxv4) by [David Nolen](https://twitter.com/swannodette)
-* [Delivering the Goods](https://www.youtube.com/watch?v=R8W_6xWphtw) Paul Irish on one of the most important but overlooked topics in the development world today - page load times.
-* [Simplicity Matters](https://www.youtube.com/watch?v=rI8tNMsozo0) A later version of the influential talk, "Simple Made Easy" by [Rich Hickey](https://twitter.com/richhickey)
-
-
-## 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) by Nick Morgan
-* [Eloquent JavaScript](http://eloquentjavascript.net/) by Marijn Haverbeke
-* [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) by Douglas Crockford
-* [Effective JavaScript](http://www.amazon.com/gp/product/0321812182?ie=UTF8&camp=213733&creative=393185&creativeASIN=0321812182&linkCode=shr&tag=ericleads-20&linkId=JIC63I267I6UDQQZ) by David Herman
-* [Programming JavaScript Applications](http://pjabook.com) by Eric Elliott
-* [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) by David Flanagan
-* [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) by Kyle Simpson
-* [Understanding ECMAScript 6](https://leanpub.com/understandinges6/read/) by Nicholas C. Zakas
-* [JavaScript Allongé](https://leanpub.com/javascriptallongesix) by Reginald Braithwaite
-* [Node.js in Action](http://www.manning.com/cantelon/) by Mike Cantelon, Marc Harter, T.J. Holowaychuk and Nathan Rajlich
-* [The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal](http://www.amazon.com/gp/product/0670899763?ie=UTF8&camp=213733&creative=393177&creativeASIN=0670899763&linkCode=shr&tag=ericleads-20&linkId=NDUXYQOCMPC47SQI) by M. Mitchell Waldrop
-* [WebGL Fundamentals](http://webglfundamentals.org/) by Greggman - An interactive online book about graphics programming.
-
-
-## 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)
-* [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
-* [JSDoc](http://usejsdoc.org/) Pair with [Tern](http://ternjs.net/) for static analysis
-* [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
-* [PrettyDiff](http://prettydiff.com/)
-* [ES6 Fiddle](http://www.es6fiddle.net/)
-
-
-## Building
-
-* [Browserify](http://browserify.org/) Bundle modules for the browser.
-* [How to use NPM as a Build Tool](http://blog.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/)
-* [pre-commit](https://github.com/observing/pre-commit) Easily configure pre-commit hooks for your package
-
-
-### Testing / Lint / Quality checkers
-
-* [JSHint](http://jshint.com/)
-* [ESLint](http://eslint.org/)
-* [babel-eslint](https://github.com/babel/babel-eslint) Allow ES6 features to pass ESLint.
-* [eslint-plugin-no-class](https://github.com/emmenko/eslint-plugin-no-class) Forbid the ES6 `class` keyword. [Why?](https://github.com/eslint/eslint/pull/2096#issuecomment-83044888)
-* [ESLint no-inferred-methodname](https://github.com/johnstonbl01/eslint-no-inferred-method-name) A custom rule for a common problem.
-* [Istanbul](https://github.com/gotwarlost/istanbul) Code coverage reporting
-* [tape](https://github.com/substack/tape) Minimal, dead simple unit testing. (This is all you need, really!)
-* [faucet](https://github.com/substack/faucet) Prettify unit testing output (like what comes from tape).
-* [Supertest](https://github.com/tj/supertest) The best way to test HTTP endpoints.
-
-
-### Transpilers
-
-* [Babel](https://github.com/babel/babel) Transpile ES6, ES7 to ES5
-* [CoffeeScript](http://coffeescript.org/)
-* [Emscripten](http://kripken.github.io/emscripten-site/) Frequently used for C/C++ JavaScript ports
-* [ES6 tools](https://github.com/addyosmani/es6-tools) Addy Osmani's ES6 Tools list
-
-
-## JavaScript environments
-
-* [Node.js](http://nodejs.org/) Server side JavaScript and more
-* [io.js](https://iojs.org/) The Node fork
-
-
-## Libraries
-
-* [es5-shim](https://github.com/es-shims/es5-shim) Stable, production ready.
-* [es6-shim](https://github.com/es-shims/es6-shim/) Somewhat stable, but a few things I thought were solid got shifted to ES7.
-* [es7-shim](https://www.npmjs.com/package/es7-shim) Experimental. Use with caution.
-* [HTML5 Cross Browser Polyfills](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills) A fairly comprehensive list of HTML5 API polyfills.
-* [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate) You'll want to cherry-pick the best of this for your production apps. See [Initializr](http://www.initializr.com).
-* [The Isomorphic Express Boilerplate](https://github.com/ericelliott/isomorphic-express-boilerplate) Write apps using the same code for both the client and the server using Node, Express, and Browserify.
-* [rootrequire](https://github.com/ericelliott/rootrequire) Require files relative to your project path using the normal node require().
-* [dotty](https://github.com/deoxxa/dotty) Get deep properties using dot notation without throwing. e.g., `dotty.get(req, 'user.id');`
-* [native-promise-only](https://github.com/getify/native-promise-only) An ECMAScript standard promise polyfill by Kyle Simpson.
-* [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) A [WHATWG fetch](https://fetch.spec.whatwg.org/). standard polyfill.
-* [sseasy](https://github.com/heroku/sseasy) Server Sent Events for Node (HTML5 standard push notifications).
-* [EventSource browser Polyfill](https://github.com/Yaffle/EventSource/) Required client-side patching to support Server Sent Events.
-* [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.
-* [React](https://github.com/facebook/react) What do Facebook, Instagram, Netflix and PayPal have in common? React.
-* [Lodash-FP](https://github.com/lodash/lodash-fp) Like Underscore, but much faster, and featuring a more expressive API.
-* [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)
-* [Page.js](https://github.com/visionmedia/page.js) Tiny client-side router, inspired by Express.
-* [Moment](http://momentjs.com/docs/) A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.
-* [Globalize](https://github.com/jquery/globalize) i18n / translate your app for many languages and locations (locales)
-* [Lusca](https://github.com/krakenjs/lusca) Secure your Express application. By the Kraken team at PayPal.
-* [Express](http://expressjs.com/) The most popular framework for Node.
-* [Stampit](https://github.com/ericelliott/stampit) Create objects from reusable, composable behaviors. Prototypal inheritance with stamps.
-* [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.
-* [is-my-json-valid](https://github.com/mafintosh/is-my-json-valid) A fast [json-schema](http://json-schema.org/) validator.
-* [inquirer.js](https://github.com/SBoudrias/Inquirer.js) Great library for building CLI tools.
-
-
-## React
-
-* [Introducing React](https://www.youtube.com/watch?v=XxVg_s8xAms)
-* [JSX Looks Like an Abomination but it's Good for You](https://medium.com/javascript-scene/jsx-looks-like-an-abomination-1c1ec351a918) My take on JSX
-* [Immutable Data and React](https://www.youtube.com/watch?v=I7IdS-PbEgI&list=PLb0IAmt7-GS1cbw4qonlQztYV1TAW0sCr) by [Lee Byron](https://twitter.com/leeb)
-* [Data Fetching for React](https://www.youtube.com/watch?v=9sc8Pyc51uU) Relay & GraphQL Described
-* [Introducing Relay and GraphQL](https://facebook.github.io/react/blog/2015/02/20/introducing-relay-and-graphql.html)
-* [Building the Facebook Newsfeed with Relay](https://facebook.github.io/react/blog/2015/03/19/building-the-facebook-news-feed-with-relay.html)
-* [Relay FAQ](https://gist.github.com/wincent/598fa75e22bdfa44cf47)
-* [react-engine](https://github.com/paypal/react-engine) PayPal's isomorphic React view engine for Express or Kraken
-* [Radium](http://projects.formidablelabs.com/radium/) Simplify inline styles
-* [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react)
-* [React Hot Loader](https://gaearon.github.io/react-hot-loader/) for Webpack
-* [livereactload](https://github.com/milankinen/livereactload) for Browserify
-
-
-## 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/)
-* [x-gif](http://geelen.github.io/x-gif/#/http://i.imgur.com/iKXH4E2.gif) This web component wins the internet.
-* [Vulcanize](https://github.com/Polymer/vulcanize) Don't let web components slow your app down. Bundle your HTML imports.
-
-
-## 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
-* [Docker](https://www.docker.com/) Run your CI process using the same OS configs as your production systems.
-* [Shippable](https://www.shippable.com/) Docker-based hosted build / CI
-
-
-## Community
-
-* [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 demos 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/)
-* [Onion Omega](https://onion.io/omega)
-
-
-## Hosting
-
-* [DigitalOcean](https://www.digitalocean.com/?refcode=fdcfedac5208)
-
-## For kids (and people who just love to have fun)
-
-* [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)
-* [LearnToMod](http://www.learntomod.com/) Mod Minecraft with JavaScript
-* [The Young Person's Guide to Programming in Minecraft](https://github.com/walterhiggins/ScriptCraft/blob/master/docs/YoungPersonsGuideToProgrammingMinecraft.md#the-young-persons-guide-to-programming-in-minecraft)
-
-
-## 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 Nolen](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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment