base-cs
Base CS from zero
Start with no CS theory. Finish understanding how a computer runs your code and what every programming construct really means.
Start track →What a computer is
A computer stores everything as bits and is built from two-state switches.Memory
Memory is a long row of numbered cells; an address is the number, a value is what sits there.The processor
The CPU repeats one loop forever: fetch an instruction, decode it, execute it.From machine code to a language
High-level code is translated — compiled or interpreted — into the instructions the CPU runs.Values and types
Bits mean nothing alone; a type is the rule that says how to read them.Variables and state
A variable is a named memory cell; assignment changes what it holds.Control flow
Conditionals and loops are the CPU choosing which instruction to run next.Functions and the call stack
Every call pushes a frame onto the stack; returning pops it back off.Data in memory
Arrays are contiguous cells; objects are labelled cells — both are layouts in memory.Abstraction
Bundling data with the operations on it lets you stop thinking about the machine.When a program fails
An error is the machine reporting it cannot continue; the stack trace says where.Time and concurrency
Async exists because the CPU must not sit idle while a slow device answers.Build with this track
Guided projects that exercise what you learn here.
Pathfinding Route Engine
Four search algorithms, one shared problem: get from A to B across a weighted grid. You'll build BFS, DFS, Dijkstra, and A* on a single graph model, then run them side by side and watch them disagree — DFS lunges into a dead end, BFS floods evenly, Dijkstra crawls outward by cost, A* leans toward the goal. This is where the algorithms unit stops being trivia and becomes a set of tools you choose between, with reasons.
Tiny Stack VM
Build the machine that runs the machine. You define a small bytecode instruction set, write an assembler that turns readable mnemonics into bytes, and write the interpreter loop that fetches, decodes, and executes them one at a time. By the end you will have demystified the whole stack between a line of source and a running program — because you wrote every layer of it yourself.
Algorithms from zero
Know one programming language, know no algorithms. Finish able to solve hard problems with confidence.