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:
- Write, run and debug JavaScript in the browser and in Node.js.
- Use variables, data types, operators, conditionals and loops confidently.
- Process text, numbers and dates, including with regular expressions.
- Write clean functions, and understand scope, closures and
this. - Transform data with array methods, destructuring, spread, Sets and Maps.
- Model data with objects and classes, and exchange it as JSON.
- Build interactive pages: select and change elements, handle events and forms, store data in the browser.
- Load data from APIs with
fetch, and write asynchronous code with promises andasync/await. - Structure programs with modules, handle errors properly and follow modern best practices.
- Build a complete small application from scratch.
Course outline
| Part | Lessons | Focus |
|---|---|---|
| 1. Getting Started | 01–06 | Setup, console, syntax, variables, types |
| 2. Operators & Control Flow | 07–12 | Operators, conditionals, switch, loops |
| 3. Working with Values | 13–21 | Strings, numbers, Math, conversion, dates, regex |
| 4. Functions | 22–28 | Functions, arrows, scope, closures, this, callbacks |
| 5. Arrays & Collections | 29–35 | Array methods, sorting, destructuring, Set/Map, generators |
| 6. Objects & Classes | 36–41 | Objects, prototypes, classes, JSON |
| 7. The Browser | 42–50 | DOM, events, forms, timers, storage, fetch, browser APIs |
| 8. Asynchronous JavaScript | 51–53 | Event loop, promises, async/await |
| 9. Writing Robust Code | 54–60 | Errors, 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
Checkpoint: solve FizzBuzz without looking, and write a loop that totals an array of prices.
Week 3 — Text and numbers
Checkpoint: turn " Hello World " into the slug "hello-world", and format a number as currency.
Week 4 — Truthiness, dates and patterns
Checkpoint: compute the number of days until your next birthday, and validate a postcode with a regex.
Week 5 — Functions
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
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
Checkpoint: build a BankAccount class with a private balance, and save/restore its data with JSON.
Week 8 — The browser
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
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
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.