web · 22 lessons
JavaScript engineering
References, closures, events, async work, and reliable state.
What you are working toward
Trace browser behavior and manage asynchronous lifetimes.
0 learning steps complete · View prerequisites and evidence →
The existing foundation
Start here, or use it to fill a gap.
Original lessons, practice, bosses, and progress are preserved. Completion from this journey is distinct from the new independent evidence model.
- 01Values & variablesGuided foundationOpen →
- 02Strings & numbersGuided foundationOpen →
- 03Booleans & conditionsGuided foundationOpen →
- 04ArraysGuided foundationOpen →
- 05ObjectsGuided foundationOpen →
- 06LoopsGuided foundationOpen →
- 07FunctionsGuided foundationOpen →
- 08DOM mental modelGuided foundationOpen →
- 09DOM & eventsGuided foundationOpen →
- 10Forms & validationGuided foundationOpen →
- 11ModulesGuided foundationOpen →
- 12Async thinkingGuided foundationOpen →
- 13Errors & debuggingGuided foundationOpen →
- 14Local storageGuided foundationOpen →
Engineering sequence
The language beneath the syntax
- 01Two names can point to one objectintermediate · 20 min · predict, experiment, debug, buildunseen
- 02A closure keeps access to its lexical environmentintermediate · 21 min · predict, experiment, debug, buildunseen
- 03Method calls choose a receiverintermediate · 23 min · predict, experiment, debug, buildunseen
Engineering sequence
Browser and asynchronous engineering
- 04One event travels through a treeintermediate · 22 min · predict, experiment, debug, buildunseen
- 05The stack must empty before queued work runsadvanced · 24 min · predict, experiment, debug, buildunseen
- 06A promise is an outcome, not a background threadadvanced · 23 min · predict, experiment, debug, buildunseen
- 07Only the current request may commitadvanced · 25 min · predict, experiment, debug, buildunseen
- 08Give every resource an ownerproduction · 24 min · predict, experiment, debug, buildunseen