Honest Take — Before You Begin
Here is the honest truth: JavaScript will offend your Ruby sensibilities. Ruby was designed to make programmers happy. JavaScript was designed in ten days to make Netscape ship. Y…
JavaScript Foundations — The Language Itself covers: Eloquent JavaScript, Up & Going, Scope & Closures, this & Object Prototypes, Types & Grammar. 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.
Here is the honest truth: JavaScript will offend your Ruby sensibilities. Ruby was designed to make programmers happy. JavaScript was designed in ten days to make Netscape ship. Y…
You have already written JavaScript. A Stimulus controller here, a fetch call there, an event listener copied from a blog post and adjusted until it worked. That is exactly the re…
There is a specific kind of confidence that comes from shipping production features in a language for years. And there is a specific kind of humility that comes from a page of tha…
Here is a bug that has shipped to production from thousands of codebases:
In Ruby, self is well-behaved. You look at where code is written — class body, instance method, module — and you know what self is. It's a lexical question with a lexical answer.
Every language community has its self-deprecating party trick. JavaScript's is famous:
In 2008, JavaScript was a punchline. It was the language of popup blockers and copy-pasted form validators — nobody's idea of serious engineering. Then a Yahoo architect published…
Work through each item before the checkpoint.
Pure JavaScript, no frameworks, no bundlers, no class. Closures, prototypes, and promises — the primitives every framework is made of. A constraint test statically rejects class a…
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.