Stage 1 of 6 · 10 lessons · ~4 months
Your first language
Learn JavaScript properly as a language before any framework: values, control flow, functions, arrays and objects, and errors. Run it in Node.js from the terminal as well as in the browser.
Start: Values, types and let/constLessons· one lesson for each topic, in this order
- 1Values, types and let/constLesson
- 2Strings and template literalsLesson
- 3Conditionals and loopsLesson
- 4Functions, scope and arrow functionsLesson
- 5ClosuresLesson
- 6Arrays and objectsLesson
- 7References and copyingLesson
- 8Errors, try/catch and debuggingLesson
- 9Modules and running code in Node.jsLesson
- 10Promises and async/await, a first lookOptionalLesson
Start with· follow one of these
- CoursePaidGrokking JavaScript Fundamentals
Design Gurus · Beginner · $50
The language itself, closures and async included, with runnable exercises per lesson
- GuideFreeJavaScript.info
Ilya Kantor
Free: Part 1 is the most complete modern JavaScript tutorial, with tasks per chapter
Practise
Keep handy
Before moving on: Write a 150-line Node.js command-line program, such as a quiz or a budget tracker, that uses functions, arrays, objects, reading a JSON file and error handling, without following a tutorial.

Learn the language before React or any framework: people who skip this spend years confused by closures and async code. Type every example, run your code in Node.js as well as the browser, and do not switch languages for three months.