JavaScript / Intermediate · Free and public

Build JavaScript apps you can explain.

Move from a working script to a reading-queue app that handles bad data, failed requests, and overlapping searches. Learn the boundaries that make it possible to test and change.

Start intermediate Day 1 →

Bring the basics. Learn the moving parts.

You should be comfortable with functions, arrays of records, map/filter, basic assertions, and a small HTML form. Promises and modules are taught here. Start with the beginner-to-intermediate skills check if you are unsure about readiness; it links each prerequisite to its beginner explanation.

36 lessons across seven days. Plan around 60–90 minutes of active study per day, including worked labs, contrasting cases and an independent checkpoint; the per-day totals below follow the lesson estimates. The later review is an extra 20-minute session. These are proposed study budgets, not measured completion times; harder exercises may need another session.

Predict, run, change, test, and explain. The final project uses a local catalogue with success, failure, and malformed-data scenarios. No account, external API, or installation is needed for in-page practice. A downloadable modular project includes tests and optional local setup instructions.

Progress is saved in this browser separately from beginner. Editor changes are not automatically saved. Use the webpage lab’s Download HTML button to keep edits, or download the modular project on Day 7.

Day 1 · About 80 minutes

Data contracts and useful collections

Validate unknown records, preserve meaningful values, and choose the right collection.

  1. Function Contracts 10 min · Read, predict, build, and test
  2. Destructuring & Optional Values 17 min · Read, predict, build, and test
  3. Map & Set 17 min · Read, predict, build, and test
  4. Data Validation 16 min · Read, predict, build, and test
  5. Checkpoint: Attendance 20 min · Independent checkpoint

Day 2 · About 80 minutes

Functions, modules, and tests

Own state with closures, split real files, and prove update contracts.

  1. Closures 15 min · Read, predict, build, and test
  2. Pure Functions & Updates 17 min · Read, predict, build, and test
  3. ES Modules 12 min · Read, predict, build, and test
  4. Testing Contracts 16 min · Read, predict, build, and test
  5. Checkpoint: Favourites 20 min · Independent checkpoint

Day 3 · About 75 minutes

Asynchronous work you can explain

Trace promises, await operations, and coordinate success and failure.

  1. Promises 10 min · Read, predict, build, and test
  2. async / await 12 min · Read, predict, build, and test
  3. Event Loop & Timers 17 min · Read, predict, build, and test
  4. Promise Coordination 16 min · Read, predict, build, and test
  5. Checkpoint: Async Overview 20 min · Independent checkpoint

Day 4 · About 75 minutes

Reliable service boundaries

Separate HTTP failure from malformed data and inject cancellable dependencies.

  1. HTTP & fetch() 10 min · Read, predict, build, and test
  2. Response Validation 17 min · Read, predict, build, and test
  3. Dependency Injection 17 min · Read, predict, build, and test
  4. AbortController & Cancellation 11 min · Read, predict, build, and test
  5. Checkpoint: Stock Adapter 20 min · Independent checkpoint

Day 5 · About 80 minutes

Interfaces that stay correct

Model UI states, handle dynamic rows, and prevent stale async updates.

  1. UI State 15 min · Read, predict, build, and test
  2. Event Delegation 12 min · Read, predict, build, and test
  3. Request Ordering 17 min · Read, predict, build, and test
  4. Lifecycle & Cleanup 16 min · Read, predict, build, and test
  5. Checkpoint: Preview Requests 20 min · Independent checkpoint

Day 6 · About 80 minutes

An application with clear boundaries

Connect reducers, controllers, and fallible adapters with deterministic tests.

  1. Reducers & Actions 15 min · Read, predict, build, and test
  2. Controllers 12 min · Read, predict, build, and test
  3. Storage Adapters 17 min · Read, predict, build, and test
  4. Async Integration Tests 16 min · Read, predict, build, and test
  5. Checkpoint: Notifications 20 min · Independent checkpoint

Day 7 · About 70 minutes

Ship and extend a reading queue

Exercise the finished app, run its modules locally, and solve a fresh async brief.

  1. Capstone: Reading Queue 10 min · Read, predict, build, and test
  2. Failure & Recovery 17 min · Read, predict, build, and test
  3. Running Locally 12 min · Read, predict, build, and test
  4. Extending the App 16 min · Read, predict, build, and test
  5. On Your Own: Stock Report 15 min · Independent checkpoint
  6. Come Back Later: Review Challenges 20 min · Return later · extra review

This course focuses on small browser applications and reusable core logic. Classes, prototype mechanics, package publishing, and performance tuning can follow once these contracts are comfortable. Continue with advanced JavaScript →