Course · 9 lessons ~48 hr Intermediate

JavaScript Foundations — The Language Itself

Deeply understand JavaScript as a programming language — not jQuery tricks, not framework syntax, but the language mechanics: closures, scope, prototypes, the event loop, coercion, `this`, and the module system. This is the foundation everything else builds on. You already understand blocks and procs — closures are the JavaScript equivalent. A Ruby block captures variables from its enclosing scope; a JavaScript closure does the same thing but is far more pervasive (every function is a closure). Ruby's `self` changes based on context; JavaScript's `this` does too, but with four different binding rules instead of Ruby's simpler model. Ruby's `require` is like JavaScript's `import`, but JS went through three module systems (CommonJS, AMD, ES Modules) before settling on one. Understanding this history explains why Node.js uses `require()` while browsers use `import`.

reading · we frame, you read MIT or the canonical taught · we author, no canonical fits ↺ spirals back to earlier lessons

9 lessons. Read in order; spiral back when you need to. By the end you'll have used the core ideas twice — once on the abstract, once on something you'll meet at work next week.