Syllabus & Study Plan

What the JavaScript course covers, what you'll be able to do by the end, and a suggested ten-week schedule with a checkpoint each week. Go at whatever pace suits you — finishing in order matters more than finishing fast.

Who this course is for

Complete beginners to programming, and developers coming from other languages who want a thorough grounding in modern JavaScript. Basic familiarity with HTML and CSS helps in Part 7.

Learning outcomes

By the end of the course you will be able to:

  1. Write, run and debug JavaScript in the browser and in Node.js.
  2. Use variables, data types, operators, conditionals and loops confidently.
  3. Process text, numbers and dates, including with regular expressions.
  4. Write clean functions, and understand scope, closures and this.
  5. Transform data with array methods, destructuring, spread, Sets and Maps.
  6. Model data with objects and classes, and exchange it as JSON.
  7. Build interactive pages: select and change elements, handle events and forms, store data in the browser.
  8. Load data from APIs with fetch, and write asynchronous code with promises and async/await.
  9. Structure programs with modules, handle errors properly and follow modern best practices.
  10. Build a complete small application from scratch.

Course outline

PartLessonsFocus
1. Getting Started01–06Setup, console, syntax, variables, types
2. Operators & Control Flow07–12Operators, conditionals, switch, loops
3. Working with Values13–21Strings, numbers, Math, conversion, dates, regex
4. Functions22–28Functions, arrows, scope, closures, this, callbacks
5. Arrays & Collections29–35Array methods, sorting, destructuring, Set/Map, generators
6. Objects & Classes36–41Objects, prototypes, classes, JSON
7. The Browser42–50DOM, events, forms, timers, storage, fetch, browser APIs
8. Asynchronous JavaScript51–53Event loop, promises, async/await
9. Writing Robust Code54–60Errors, modules, pitfalls, debugging, best practices, project

Ten-week study plan

Plan on three to five hours a week, including time spent experimenting in the editors.

Week 1 — First steps

Lessons 01–06. Set up a local HTML file with a script and open the browser console.

Checkpoint: write a script that stores your name and birth year in variables and logs a sentence with your age.

Week 2 — Making decisions and repeating

Lessons 07–12.

Checkpoint: solve FizzBuzz without looking, and write a loop that totals an array of prices.

Week 3 — Text and numbers

Lessons 13–18.

Checkpoint: turn " Hello World " into the slug "hello-world", and format a number as currency.

Week 4 — Truthiness, dates and patterns

Lessons 19–21.

Checkpoint: compute the number of days until your next birthday, and validate a postcode with a regex.

Week 5 — Functions

Lessons 22–28.

Checkpoint: write a createCounter closure and a debounce function, and explain what this refers to in each of your methods.

Week 6 — Arrays and collections

Lessons 29–35.

Checkpoint: given an array of products, list the names of in-stock items sorted by price using only array methods. Complete the "Arrays and objects" exercises.

Week 7 — Objects and classes

Lessons 36–41.

Checkpoint: build a BankAccount class with a private balance, and save/restore its data with JSON.

Week 8 — The browser

Lessons 42–48.

Checkpoint: build a page with a form that adds items to a list, with delete buttons using event delegation, saved in localStorage.

Week 9 — Talking to servers, asynchronously

Lessons 49–53.

Checkpoint: load data from a public API with fetch and async/await, showing a loading message and handling errors.

Week 10 — Professional habits and the final project

Lessons 54–60.

Final project: complete the to-do app and at least three of its challenges, split into modules. Then take the quiz and aim for 25 out of 30 or better.

Faster tracks

  • Three-week intensive (about 15 hours a week): Parts 1–4, then 5–7, then 8–9.
  • Experienced in another language? Skim Parts 1–2, then focus on lessons 18–19, 23–28, 33, 38 and 51–53, where JavaScript differs most from other languages.
  • Heading for React or Vue? Make sure you're comfortable with lessons 23, 31, 33, 39, 44, 52–53 and 55 first.