This list originated from this discussion on LinkedIn's Javascript group.
Contributors:
Kudos to Dimitrios Michalakos for suggesting the Understand the Single Threaded Process & Event Loop
section and providing me with the links.
-
Understand type coercion
-
Get a good understaning of
Functions
,Scope
andHoisting
-
Study
Objects
,Prototypal Inheritance
andOOP
, and OLOO: Objects Linked to Other Objects -
Understand
callbacks
,IIFEs
andasynchronicity
-
Study the source code of popular libraries: jQuery, underscore, etc.
Here are 2 great videos on the subject by Paul Irish:
-
Watch every video by Douglas Crockford.
-
Take the full course 'JavaScript The Good Parts' by Douglas Crockford on Front End Masters
-
Study performance and code optimization
Here is a good article by Nicholas Zakas:
-
Check every tip on the A Drip of JavaScript list and subscribe to it.
-
Check JavaScript Garden.
JavaScript Garden is a growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes and subtle bugs, as well as performance issues and bad practices, that non-expert JavaScript programmers may encounter on their endeavours into the depths of the language.
-
Read some books. You can find some great books for JS on the BOOKS section of this list.
-
Learn how to debug your JS code. Here are some good links as a starting point:
Debugging JavaScript Chrome DevTools Command Line API Reference
-
Study JavaScript Patterns and Anti-Patterns:
-
Understand the Single Threaded Process & Event Loop.
- Concurrency model and Event Loop, MDN
- The JavaScript Event Loop: Explained, By Erin Swenson-Healey
- Understanding the node.js event loop, by Mixu
- Introduction to Javascript Processes, by *Nico Valencia *
- How JavaScript Timers Work, By John Resig
- Philip Roberts: Help, I'm stuck in an event-loop: How JavaScript actually works
-
Study some of the modern APIs: WebRTC, File API, Blob API, etc.
-
Master
Regular Expressions
. -
Get in the habit of testing. (Crucial!). QUnit is a good starting point.
-
Subscribe to these great YouTube channels and watch every video you can:
-
Learn some framework or library like jQuery, React, Angular, Vue.JS, Backbone.JS, underscore, AngularJS, Ember, Knockout.JS, etc.
-
Get to know Node.JS and start building apps.
- Try running server-side JS code usign
Node.JS
on Runnable.com - Install Node.JS locally and start experimenting.
- Try running server-side JS code usign
-
Subscribe to Newsletters and stay up to date with JS and Node. (See section
3.8 NEWSLETTERS
) -
Start building cross-platform Desktop Applications using HTML/CSS/JavaScript in Electron.JS or Node-Webkit.
-
Follow some of the masters on Twitter. (See
section 3.6
of the RESOURCES section) -
Code using a Style Guide.
- Always use
let
orconst
when declaring variables. Avoid usingvar
. - Code using
"use strict"
- Always use semicolons. // Not using semicolons??? Lonley Island uses them everyday
- Prefer using
===
over==
- Always use curly braces
- Comment your code
- Avoid/Reduce global variables
- Avoid using
with()
- Avoid using
eval()
- Pass functions instead of strings to setTimeout or setInterval, as this triggers eval() internally.
- Use JSHint / JSLint
- Inline lint highlighting for the Sublime Text 2 editor
- Interactive code linting framework for Sublime Text 3
The difference between JavaScript and JavaScript with use strict
- JavaScript First Steps | MDN
- JavaScript the Right Way
- JavaScript For Cats, by Max Ogden
- Javascript: BEST PRACTICES PART 1, by Christian Heilmann
- JavaScript Guide, MDN
- Introduction to JavaScript - 24 Interactive Screencasts
- Learn modern JavaScript - ES6 through Interactive Screencasts
- Introduction to ES6+ - 23 Interactive Screencasts
- JAVASCRIPT FUNDAMENTALS, by Azat Mardan
- 5 Tips to Become a Better JavaScript Developer, by JUSTIN CHMURA
- JS 101
- 7 JavaScript Basics Many Developers Aren't Using (Properly)
- 5 Tips to Become a Better JavaScript Developer
- Things Every Javascript Developer Should Know, by Lubomir Vitol
- JavaScript Idiosyncrasies
- Airbnb JavaScript Style Guide
- Context or the "This" Keyword in JavaScript, by Adam Breindel
- 45 Useful JavaScript Tips, Tricks and Best Practices
- JavaScript DevDocs
- MDN JavaScript Guide
- How to Become a Great JavaScript Developer*
COURSES
TESTING CODE
APIs
- Essential JavaScript Links,A curated list by Eric Elliott and friends
- JavaScript Garden
- Learn JavaScript Essentials (for all skill levels), by Eric Elliott
- JavaScript, The Right Way
- Learn Javascript resources on MDN
- Dos and Donts: Best Practices When Learning JavaScript
- The site of Dr. Axel Rauschmayer
- David Walsh's Blog
- DailyJS
- Understand JavaScript Closures With Ease
- JavaScript the Right Way
- JavaScript and the Browser: Under the Hood, by Ariya Hidayat
- JSdo It: Share JavaScript, HTML5 and CSS.
PERFORMANCE
- JavaScript Performance Analysis: Keeping the Big Picture, by Ariya Hidayat
- Speeding up JavaScript: Working with the DOM
- Javascript optimization – high performance JS apps
- Writing Efficient JavaScript: Chapter 7 - Even Faster Websites, by Nicholas C. Zakas
- A Couple of Quick Tips for JavaScript Optimization
- CSS TRIGGERS
- JavaScript Goes Asynchronous (and It’s Awesome)
- Write Better JavaScript with Promises, By Landon Schropp
- The Evolution of Asynchronous JavaScript
- Javascript Async Control Flow, By KENNY KAYE | 20 OCTOBER 2015
DEBUGGING
LINTERS
ADVANCED
- JavaScript language advanced Tips & Tricks
- Byte saving techniques: a collection of JavaScript wizardry that can shave bytes off of your code
- Advanced JavaScript Techniques
- MetaJS: Visualize JavaScript AST Execution
- Philip Roberts: What the heck is the event loop anyway? | JSConf EU 2014
FUNCTIONAL PROGRAMMING: READING
- An Intro to Functional Programming Concepts in JavaScript, By Thomas Collardeau
- Why Curry Helps, By Hugh FD Jackson
- Functional Programming in Javascript An interactive learning course by Jafar Husain
- Recursion in Functional JavaScript, By M. David Green
- Functional Programming, By Scott Sauyet
- Ramda + ramda-fantasy REPL
FUNCTIONAL PROGRAMMING: VIDEO
- Intro to Recursion - Refactoring to a Pure Function, By Shanon Osbourne
- Functional programming and curry cooking in JS By Stefanie Schirmer | JSConf EU 2015**
- Next-level functional Javascript with Ramda, By Warren Seymour
- Pure, functional JavaScript, By Christian Johansen
- Lenses Quick n' Dirty: Functional Lenses in javascript, By Brian Lonsdorf
FUNCTIONAL PROGRAMMING: LIBRARIES
BEGINNERS
- Stream Adventure: Go on an educational stream adventure!
- test-anything: Learn to test anything with TAP
- Node.js for Beginnersby Maciej Sopyło
- Node School
- Resources to Get You Up to Speed in Node.js
- Getting Started With NodeJS: Installing And Writing Your First Code
- UNDERSTANDING MODULE.EXPORTS AND EXPORTS IN NODE.JS
- Introduction to the MEAN Stack
- Felix's Node.js Beginners Guide
- 8 NPM Tips for Better Node Development
- Command-line utilities with Node.js
- Receiving Emails with Node
- Build a Killer Node.js Client for Your REST+JSON API
- Beer Locker: Building a RESTful API With Node - Passport
- Most Popular Node.js Frameworks for App Development
- 10 Tips to Make Your Node.js Web App Faster
- LEARN ALL THE NODES: SCREENCASTS EXPLORING, EXPLAINING, AND EXPANDING THE WORLD OF NODE.JS
EXPRESS.JS
- Express.js Fundamentals
- The Basics of Express Routes
- LEARNING EXPRESS 4
- Creating a REST API using Node.js, Express, and MongoDB
- Restful: A Better REST API Using Node.js With Express
- Using Express.js for APIs
- Build a Complete MVC Website With ExpressJS
- Simple form handling with Express and Nodemailer
- Form Validation With ExpressJS
- Migrating Express.js 3.x to 4.x: Middleware, Route and Other Changes
- Intro to Express.js: Parameters, Error Handling and Other Middleware
ADVANCED
- Using Node.js in Production
- Node.js in Production
- Scaling Node.js with recluster
- Comparison: Tools to Automate Restarting Node.js Server After Code Changes
- Error Handling in Node.js
- Using Node.js to join audio files
BOOKS
VIDEOS
- Express.js Tutorial: Build RESTful APIs with Node and Express | Mosh
- Node.js Tutorial for Beginners: Learn Node in 1 Hour | Mosh
- NodeTuts: Node.JS Video Tutorials
- Node.JS videos @ egghead.io
TESTING CODE
HOSTING PLATFORMS
LISTS
- JavaScripting
- Awesome JavaScript: A collection of awesome browser-side JavaScript libraries, resources and shiny things
- Getting Started with Backbone.js, By Miguel Mota
- Getting Started with Backbone, by Koren Leslie Cohen
- Awesome Backbone List of Resources
- Introduction to Backbone Js and Setting Up an Working Environment – Learning Backbone Js
- Single Page ToDo Application With Backbone.js
- Developing Backbone.js Applications, by Addy Osmani
- Your First Backbone.js App – Service Chooser, by Martin Angelov
- Sample application built with Backbone.js, Twitter Bootstrap, Node.js, Express, MongoDB, by Christophe Coenraets
- Top 8 Common Backbone.js Developer Mistakes, By Mahmub Ridwan
CODE
BOOKS
VIDEOS
- Backbone.js Video Tutorials on YouTube, by Moshfegh Hamedani
- Backbone.js Tutorial for Beginners, by Thomas Davis
- Jeremy Ashkenas - Taking JavaScript Seriously with Backbone.js
TUTORIALS
- 3 Reasons to Choose AngularJS for Your Next Project
- Comprehensive Beginner’s Guide to AngularJS
- Recipes with Angular.js
- AngularJS for Absolute Beginners, by David East
- Learn AngularJS With These 5 Practical Examples
- How to Learn AngularJS - Your AngularJS Sherpa
- ANGULARJS: SHOPPING LIST APPLICATION
- Building a Spreadsheet in 20 Minutes with Angular.js, by David Graunke
- Learning AngularJS by Example – The Customer Manager Application
- Web Spreadsheet in 99 lines using Angular
- Fun with AngularJS!
- AngularJS Cheat Sheet
- Speeding up AngularJS apps with simple optimizations
- Optimizing AngularJS: 1200ms to 35ms
VIDEOS
- AngularJS Fundamentals In 60-ish Minutes, by Dan Wahlin
- AngularJS videos @ egghead.io
- Introduction to Angular.js in 50 Examples, by Curran Kelleher
NEWSLETTERS
- YDKJS: You-Dont-Know-JS, A book series on JavaScript by Kyle Simpson
- JavaScript: The Good Parts, by Douglas Crockford
- JavaScript, The Definitive Guide, by David Flanagan
- High Performance JavaScript, by Nicolas Zakas
- Secrets of the JavaScript Ninja, by John Resig
- Programming JavaScript Applications, by Eric Elliot
- Professional JavaScript for Web Developers by Nicolas Zakas
- JavaScript For Cats, by Max Ogden (Free PDF)
- Eloquent Javascript, by Marijn Haverbeke (Free Online Version)
- Speaking JavaScript: An In-Depth Guide for Programmers, by Dr. Axel Rauschmayer (Free Online Version)
- JavaScript Essentials
- Oh My JS: The Best JavaScript Articles, by Azat Mardan
- Understanding ECMAScript 6, by Nicholas Zakas
- JavaScript Enlightenment
- You Don't Know JS: A JavaScript book series
BEGINNERS
GENERAL
- Javascript, the Good Parts, GoogleTechTalks, Douglas Crockford
- Douglas Crockford: The JavaScript Programming Language
- Vanilla JavaScript YouTube Playlist by Traversy Media
- ES6 Playlist by Traversy Media
- TreeHouse - Beginner's Guide to JavaScript
- Modern JavaScript YouTuybe Playlist By NetNinja
- OOP in JavaScript | YouTube Playlist by NetNinja
- 10 Things I Learned from the jQuery Source, Paul Irish
- 11 More Things I Learned from the jQuery Source, Paul Irish
- Paul Irish, "Delivering the goods"
- Paul Irish, "JavaScript Development Workflow of 2013"
- JavaScript Scope Chains and Closures, by Adam Breindel
- Must-watch videos about javascript, video list curated by Sergey Bolshchikov
- Must-Watch JavaScript, video list curated by Matt Smith
- JavaScript Coding Tips, by Axel Rauschmayer
- Philip Roberts: Help, I'm stuck in an event-loop: How JavaScript actually works
- JavaScript Weekly
- A Drip of JavaScript
- Node Weekly
- ng-newsletter: The free, weekly newsletter of the best AngularJS content on the web
DEVELOPER | BLOG | VIDEO CHANNEL | |
---|---|---|---|
Addy Osmani | Blog | ||
Azat Mardan | |||
Alex Castrounis | Blog | ||
Aria Stewart | Blog | ||
Ariya Hidayat | Blog | YouTube | |
Axel Rauschmayer | Blog | ||
Andrea Giammarchi | Blog | ||
Angus Croll | Blog | ||
Béla Varga | |||
Ben Alman | Blog | ||
Ben Cherry | Blog | ||
Brendan Eich | Blog | ||
Christian Heilmann | Blog | ||
Cody Lindley | Blog | ||
David Flanagan | Blog | ||
David Walsh | Blog | ||
Dion Almaer | Blog | ||
Douglas Crockford | Blog | ||
Dean Edwards | Blog | ||
Dmitry Baranovskiy | Blog | ||
Dustin Diaz | Blog | ||
Eric Elliott | |||
Ilya Grigorik | |||
Jeremy Ashkenas | Blog | ||
John Resig | Blog | ||
Juriy Zaytsev | Blog | ||
James Coglan | Blog | ||
John-David Dalton | Blog | ||
James Padolsey | Blog | ||
Kyle Simpson | Blog | ||
Lucas Smith | |||
Michael Bolin | Blog | ||
Nicholas Zakas | Blog | ||
Pamela Fox | Blog | ||
Paul Irish | Blog | ||
Peter van der Zee | Blog | ||
Peter Michaux | Blog | ||
Rebecca Murphey | Blog | ||
Remy Sharp | Blog | ||
Rey Bango | Blog | ||
Stoyan Stefanov | [Twitter](Stoyan Stefanov) | Blog | |
Thomas Fuchs | Blog | ||
Oliver Steele | Blog | ||
Yehuda Katz | Blog |
- CoffeeScript Official site
- Hard Rock CoffeeScript
- CoffeeScript: The beautiful way to write JavaScript, By Amir Salihefendic
TOOLS
VIDEOS
BOOKS
- CoffeeScript Cookbook
- CoffeeScript Ristretto
- Smooth CoffeeScript
- The Little Book on CoffeeScript
- CoffeeScript: The Good Parts, By Azat Mardan