Languages MOC
Date: 2026-08-16
One folder each. Each holds a reference — the language mapped rung by rung — plus concepts for the durable models that language exposes better than the others. What belongs here: the reference, and concepts genuinely about that language’s model. What doesn’t: patterns expressible anywhere, which are Foundations. A closure is a JavaScript note; a state machine isn’t.
JavaScript
The one that has to be deepest, because everything client-side runs through it.
- Reference - JavaScript — the language mapped
- Closures — the mechanism, and the practical uses that make it worth understanding
- Prototypes and Inheritance — what
classis sugar over - this and Binding — four rules, one permanent source of confusion
- Promises and Async Await — the model, and the error handling that catches people out
- Modules — ESM versus CommonJS, and the interop mess between them
- Iterators and Generators — lazy sequences and the protocol behind
for...of - Equality and Coercion —
==versus===, and the coercion table worth knowing once - Scope and Hoisting —
var,let,const, and the temporal dead zone
TypeScript
- Reference - TypeScript — the type system mapped
- Structural Typing — the core idea, and how it differs from the nominal typing most languages use
- Generics — parameterised types, and the point at which they stop helping
- Type Narrowing — how the compiler learns what something is inside a branch
- Utility Types — the built-in transformations worth memorising
- Type Safety Boundaries — where types stop being guaranteed:
any, assertions, and anything from the network
CSS
- Reference - CSS — the language mapped
- The Cascade and Specificity — origin, layer, specificity, order. The four-step answer to “why isn’t this applying”
- The Box Model — content, padding, border, margin, and
box-sizing - Flexbox — one-dimensional layout, and what the properties actually do
- Grid — two-dimensional layout, and when it beats flex
- Positioning and Stacking Contexts — the reason
z-indexdoesn’t work - Container Queries — component-scoped responsiveness, replacing most breakpoint work
- Custom Properties — runtime variables, and how they differ from preprocessor variables
- Cascade Layers — controlling override order deliberately rather than by specificity war
- Fluid Type and Space —
clamp()and the scale it makes possible - Logical Properties — writing-direction-aware CSS, and why it’s the better default
- Responsive Design — breakpoints as a last resort, intrinsic sizing as the default
- CSS Architecture — BEM, utility-first, CSS-in-JS: what each optimises for
PHP
- Reference - PHP — the language mapped
- The Request Lifecycle in PHP — the shared-nothing model, and everything that follows from dying after each request
- Composer and Autoloading — dependency management and PSR-4
- PHP Type Juggling — the comparison rules, and the security bugs they’ve caused
C#
- Reference - C# — the language mapped
- The Common Language Runtime — compilation, JIT, and managed memory
- LINQ — query syntax over collections, and deferred execution
- Async in C# —
async/awaitover a thread pool, contrasted with JavaScript’s single thread
Liquid
- Reference - Liquid — the language mapped, Shopify flavour, base-gem differences marked
SQL
- Reference - SQL — the language mapped
- Joins — the four kinds, drawn as row sets rather than described
- Window Functions — computing across rows without collapsing them; the tool most analytics work actually needs
- Common Table Expressions — naming intermediate results, and readable recursion
- Aggregation and Grouping —
GROUP BY,HAVING, and the ordering of evaluation that explains most errors - Query Performance — the handful of rewrites that fix most slow queries, and why warehouse cost is bytes rather than time
- SQL Dialects — where Postgres, MySQL, BigQuery and SQLite diverge on things you’d assume are standard
Borders
Filed elsewhere, needed constantly here.
- Foundations — The Relational Model · Indexing · Query Planning · N+1 Queries · Type Systems · Garbage Collection
- Performance — Memory and Long Sessions — closures, listeners and detached nodes: JavaScript’s leaks
- Tooling — Package Managers · Lockfiles · Supply Chain Risk · Static Analysis
- Analytics — Sessionisation · Double Counting · Warehouse-First Analytics