Learning JS
This section contains resources for learning how to program in Javascript.
Note this is a living document and is constantly being updated. Some things may come and go over time.
Beginner
A beginning Javascript programmer is someone that is new to the Javascript language and possibly programming. This set of resources spans learning what Javascript is and how it works in the browser to fundamental concepts of computer programming, computer science, and software engineering. Its best to have a good handle on the basics of HTML and CSS before learning Javascript.
Pro tip 1: If you don't have a sandbox environment to work out of you can get started quickly with any of these Javascript Sandboxes.
Pro tip 2: To open a blank page in the Chrome browser just type about:blank
into the URL field. You can then open the Chrome Developer Tools to use the console.
- Firefox: Tools > Web Developer > Web Console
- Google Chrome: View > Developer > JavaScript Console
- Safari: Develop > Show JavaScript Console. On first use, you need to enable this menu by enabling "Show Develop menu in Menu Bar" in Safari's preferences.
Getting Started
- What is Javascript? - A great overview of the language and how it works with HTML and CSS.
- What is Javascript? (Video)
- ECMAScript aka JavaScript
- Kahn Academy - Computer Programming - Greate entry level short course for programming in general.
- How to Learn JavaScript Properly - A decent self directed plan for learning how to program with js.
Tutorials
- The Modern JavaScript Tutorial - A great tutorial series that's easy for any beginner to follow. This is a great to place to start if you are new.
- Javascript for Cats
- Get Started with Debugging JavaScript in Chrome DevTools
- Vanilla Javascript by Traversy Media
- Javascripting (Nodeschool) - Learn JS / Terminal by playing with a node app. You need to know how to use npm and the terminal to run this.
- freeCodeCamp - Basic Javascript
- JavaScript Tutorial by Sololearn
- Javascript.com by Pluralsignt - Check out these short courses for learning specific topics using JS.
- JavaScript Tutorial for Beginners: Learn Javascript in 5 Days
Language
- Javascript (Mozilla)
- W3 Javascript Tutorial
- How Javascript Works
- Code Academy - Intro to JavaScript ($)
- Google Developers Training
- Javascript Basics: What is Javascript, really?
- JavaScript building blocks
Language Summaries & Cheatsheets
- JS Cheat Sheet - Quick reference for JS syntax
- Javascript.com by Pluralsignt - A great quick reference of parts of the language.
- Javascript Basics (P5.js Wiki Reference) - This is a quick-ish overview of the language and how to use it.
DOM
- Introduction to the DOM
- What is the DOM? (Video)
- The HTML DOM
- DOM Interfaces
- Core Interfaces in the DOM
- Document Object Properties and Methods
- JavaScript DOM Tutorial Series (Video Playlist) - by The Net Ninja
- Eloquent Javascript: CH 14 - The Document Object Model
Event Handlers
Books
- JavaScript: The Definitive Guide by David Flanagan, 7th Edition
- Professional JavaScript for Web Developers by Nicholas C. Zaka
- Eloquent Javascript
- Object-Oriented JavaScript by Stoyan Stefanov and Kumar Chetan Sharma
- You Don't Know JS - A Github based book series on JavaScript.
- The Complete JavaScript Handbook
- Exploring JS: JS books for programmers - A great collection of the latest and greatest books on the language.
- JSbooks - Huge collection of free books at all skill levels.
JQuery
Articles
- Learn to Code: 13 Tips that Could Save You Years of Effort
- 10 Priceless Resources for JavaScript Learners
- A Study Plan To Cure JavaScript Fatigue
JS Collections
- Micro JS- A website with tons of JS libraries. Some big some small.
Intermediate
An intermediate Javascript programmer understands parts of Javascript language of syntax (form) and semantics (meaning) and is interested in learning more about design patterns, best practices, libraries, frameworks, and alternative workflows.
Language
- JS the Right Way
- JavaScript Design Patterns - Free Udacity Course
Regular Expressions
Tutorials
Regex Sandboxes
Books
- JavaScript Patterns by Stoyan Stefanov
- JavaScript Enlightenment: From Library User to JavaScript Developer by Cody Lindley
Data Structures and Algorithms
- Data Structures and Algorithms with JavaScript by Michael McMillan
- Introduction to Algorithms by Thomas H. Cormen et al
- Coding Math (Youtube Channel)
Package Management
- What are the best front-end package managers? - February 2018
- Guide to JavaScript frontend package managers - November 2015
Tutorials
Advanced
An advanced Javascript programmer understands how to utilize Javascript to solve technical and creative challenges by using existing tools and designing custom solutions.
Language
Design Patterns
- Learning JavaScript Design Patterns
- Pro JavaScript Design Patterns: The Essentials of Object-Oriented JavaScript Programming by Dustin Diaz and Ross Harmes
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma et al
- Writing Modular JavaScript With AMD, CommonJS & ES Harmony
Working with Modules
- RequireJS
- Module Best Practices - Writing JS Modules in Node/CommonJS