JavaScript

The language of the web pages you use every day, also used for servers and command-line tools through Node.js.

Status
In progress
Paradigm
object-oriented, functional, imperative, scripting
First appeared
1995
Latest version
Node.js 26.12.0 (October 2026)
Latest standard
ECMAScript 2026
Lessons
89

Beginner

Values, functions, arrays and objects, and modules in Node.js, with an optional first look at the browser.

Intermediate

Classes and prototypes, iteration, asynchronous JavaScript, text and dates, Node.js essentials and testing.

Advanced

Metaprogramming, resources and concurrency, binary data, and building and shipping packages.

Resources and concurrency

  1. using and explicit resource management50 min · Node.js 24+Release files, locks and connections at a known moment with using and await using, write your own disposable objects, handle errors raised during cleanup, and manage groups of resources with DisposableStack.
  2. Advanced async patterns50 minBuild the small concurrency tools that real programs need, with plain promises - a semaphore, a bounded queue with backpressure, retries with exponential backoff, and a token-bucket rate limiter - and test them without depending on timing.
  3. Worker threads and Web Workers55 minRun CPU-heavy JavaScript in parallel with node:worker_threads - start workers, exchange messages, know what structured clone copies and what transferring moves, build a small worker pool, handle crashes and timeouts - and see the same model in browser Web Workers.
  4. SharedArrayBuffer and Atomics50 minShare memory between worker threads with SharedArrayBuffer, see a data race lose updates, fix it with Atomics, coordinate threads with Atomics.wait, notify and waitAsync, and know what browsers require before they allow shared memory.
  5. Streams in depth55 minSee how backpressure travels through a stream pipeline, write transforms as async generators that survive chunk boundaries, implement your own Writable, handle errors and cancellation in pipeline, and use web streams with queuing strategies alongside Node streams.
  6. Child processes50 minChoose between execFile, spawn, exec and fork, keep user input away from the shell (and know why Node deprecates args with shell true), read exit codes, signals and timeouts, stream data into and out of a child, talk to a forked Node process over IPC, and clean children up with using.

Expert

V8 internals, performance, and security across the supply chain.

Not written yet.