Step 1 of 2
How much JavaScript do you already have?
Be honest, nobody is watching. This only decides which chapters come first. Every chapter stays open to you either way.
Part 1 of 3
Beginner
“I can write working code.”
18 chapters~2 h 33 min35 exercises
Start at the bottom of the ladder — what the engine does with your code before line 1 runs, why one thread is enough, and then types, values, operators and functions.
It opens with
- B1Setup & mental model8 min
- B2Execution context11 min
- B3var, let and const14 min
- B4Scope15 min
and 13 more chapters below
This is you if
- You have written a few scripts
this, closures and hoisting still feel like magic- You want the foundation, in order, once
Part 2 of 3
Intermediate
“I understand why it works.”
12 chapters~1 h 22 min33 exercises
You know the syntax. Now learn the machinery: objects and prototypes, async that holds up on a real network, modules, and the browser APIs every real app reaches for.
It opens with
- I1Scope & functions, properly9 min
- I2Objects deeply8 min
- I3Prototypes & OOP7 min
- I4Async, properly10 min
and 7 more chapters below
This is you if
- Comfortable with functions, arrays and objects
- Promises work, until they don't
- You want to stop memorising and start reasoning
Part 3 of 3
Advanced
“I can reason about the engine and the ecosystem.”
13 chapters~1 h 52 min31 exercises
Memory, generators, Proxy, performance, security and testing — and how V8 actually stores your objects. The layers almost nobody can explain out loud.
It opens with
- A1Engine & memory10 min
- A2Advanced async9 min
- A3Metaprogramming10 min
- A4Types & data5 min
and 8 more chapters below
This is you if
- You can already explain closures and
this - You debug performance and memory, not just bugs
- You want the why under every behaviour
Every stop on the way
Everything each level eventually covers. Solid cards are written and open to read, dashed ones are still on the desk.
Beginner
“I can write working code.”
17 chapters written
- Setup & mental modelThe layer everybody skips — and it shows in interviews.
- Execution contextWhat JavaScript does with your code before it runs a single line of it.
- var, let and constThree keywords, four questions they answer differently — where a name lives, when you can touch it, whether it can change, and whether you can declare it twice.
- ScopeWhich names a line of code can see, why that is decided by where you wrote it, and how JavaScript finds a name — for reading and for writing.
- One thread, one stackWhy JavaScript can only do one thing at a time — and how it still does ten.
- Inside the browserFrom a script tag to pixels on screen — and where your code sits in that.
- Types & valuesEight types, one conversion table, and the equality check that never stops mattering.
- Strings, numbers & MathThe everyday toolbox every other chapter quietly assumes you already have.
- Operators & flowEvery operator here has an interview question hiding behind it.
- FunctionsA function is a value first, a block of code second.
- Objects & arraysThe two shapes almost everything you build is made of.
- The this keywordNot where it was written — who called it.
- ClosuresThe function that walked out with its birthplace still attached.
- DOM & eventsThe DOM is a live tree of objects — and JS can poke every branch of it.
- Callbacks, then promisesHanding work to someone else, and getting the answer back later.
- Errors & toolsThe last lesson before the beginner project — reading what the engine is trying to tell you.
- Guided project: build a to-do appEverything from the beginner chapters, in one small thing that works.
Checkpointyou can build a to-do list app that survives a refresh, without copying a tutorial.
Intermediate
“I understand why it works.”
11 chapters written
- Scope & functions, properlyThe corners of how a scope is built, new versus bind, and what you build once functions are values: currying, composition, recursion.
- Objects deeplyThe rest of the object/array toolbox — past what the beginner chapter covered.
- Prototypes & OOPclass is real syntax now — but it's still prototypes underneath, every time.
- Async, properlyPromises, done right — and the sequential-vs-parallel mistake almost everyone makes once.
- Modules & toolingEverything that turns files full of JS into one thing a browser can run.
- Regex & datesTwo toolboxes every real app ends up reaching for, and the traps that come with each.
- Browser APIs, in depthStorage, the URL bar, and the event system — past what the beginner DOM chapter reached.
- Modern JavaScript, ES2023 to ES2026What the language gained in the last few years, and how to tell whether you can use it yet.
- Error handling & debuggingPast what the beginner errors chapter covered — error chains, lost rejections and real debugging tools.
- Real-time connectionsfetch answers one question at a time. This is what answers a stream of them.
- Offline & storagelocalStorage is fine for a theme or a small cache. Past a few MB, it stops being enough.
Checkpointyou can explain prototypes and promise ordering to someone else, run independent requests in parallel, and cancel or retry one without guessing.
Advanced
“I can reason about the engine and the ecosystem.”
12 chapters written
- Engine & memoryWhat V8 is actually doing while your code just runs.
- Advanced asyncPast promises: pausable functions, streams, and running real work concurrently.
- MetaprogrammingCode that changes how ordinary-looking code behaves.
- Types & dataWhat happens once a number, a string, or a file gets big or exotic enough to need its own type.
- Patterns & architectureShapes that show up again and again once code has to scale past one file.
- PerformanceMaking a page feel fast is a different skill than making code run fast.
- SecurityThe mistakes that turn into a real incident, not just a bug.
- Ecosystem & professionalHow the tools around JS actually work, and where the language itself comes from.
- TestingNot optional at this level — and this whole site's own test suite is the example.
- Browser observabilityThe bug is on somebody else's device, on a network you cannot reproduce.
- JavaScript interview bankThirty-four questions, split by the level they are asked at, with the answer that lands.
- Build it yourselfThe six things a senior loop asks you to build from scratch — because you can, not because you should ship them.
Checkpointyou can find a memory leak from a heap snapshot, explain why a function deoptimized, and defend an architectural choice with tradeoffs.
Three honest notes
DOM and events are the most commonly missing piece — for most jobs that's half the actual work. It sits beside the beginner objects/arrays chapter, not off at the end.
Regex, dates and Intl are the "boring" topics that show up in every real codebase and every interview take-home.
Security and testing aren't optional at the advanced tier — they're often what separates "senior" from "writes good code."