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
- 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:
- 10 Things I Learned from the jQuery Source
- 11 More Things I Learned from the jQuery Source
- Watch every video by Douglas Crockford.
- Take the full course 'JavaScript The Good Parts' by Douglas Crockford on Front End Masters
- Get a really good understanding of closures and this
- Study performance and code optimization
Here is a good article by Nicholas Zakas: 10 Javascript Performance Boosting Tips
-
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.
-
The JavaScript Event Loop: Explained, By Erin Swenson-Healey
-
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, Backbone.JS, underscore, Angular, 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.
-
Subscribe to Newsletters and stay up to date with JS and Node. (See section
3.8 NEWSLETTERS
) -
Start building Desktop Applications using HTML/JavaScript in Node-Webkit.
-
Follow some of the masters on Twitter. (See
section 3.6
of the RESOURCES section) -
Code using a Style Guide.
- Always use
var
when declaring a variable - 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 the Right Way
- JavaScript For Cats, by Max Ogden
- Javascript: BEST PRACTICES PART 1, by Christian Heilmann
- JavaScript Guide, MDN
- 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
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
PROMISES
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
- Functional Programming in Javascript An interactive learning course by Jafar Husain
- Recursion in Functional JavaScript, By M. David Green
- VIDEO | Pure, functional JavaScript, Christian Johansen
BEGINNERS
- 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
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
- Backbone.js Video Tutorials on YouTube, by Moshfegh Hamedani
- Backbone.js Tutorial for Beginners, by Thomas Davis
- Sample application built with Backbone.js, Twitter Bootstrap, Node.js, Express, MongoDB, by Christophe Coenraets
CODE
BOOKS
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
- 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 | |||
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 |
TOOLS
BOOKS
- CoffeeScript Ristretto
- Smooth CoffeeScript
- The Little Book on CoffeeScript
- CoffeeScript: The Good Parts, By Azat Mardan