The Ideas Every
Machine Shares.
Explore what a program does, how a machine counts and how your instructions reach it. Pseudocode, diagrams and worked examples keep the ideas independent of any one language. You need no programming experience to begin. Follow the groups in order, visit a subject that interests you, or return when a game raises a question. You can start a system track without completing Foundations first.
One Instruction.
One Result.
Here is the smallest program there is. One instruction, which shows a word.
Read A Program Is InstructionsPseudocode
SHOW "Hello"Output
Hello
Programming
What a program is. Follow these five in order, or visit an idea when you need it.
The Basics
What a program is, before any machine or language: instructions in order, a way to show things, a place to remember, and a way to ask.
Start →Working It Out
The computer does arithmetic on values it did not have when you wrote the program, grows a box from its own value, and decides what to do with a leftover.
Start →Decisions
A program that reacts: test a value, choose between paths, keep a yes or no in a box, and join questions together.
Start →Repeating
Count repeated work, test before or after it, and check what can make a loop finish.
Start →Structure
Lists, jobs with names, jobs that take a value and hand one back, and the one skill that separates getting it done from getting stuck.
Start →
Numbers
How a machine counts. For anyone heading down to a machine, and sooner than you might think.
Counting in Twos
How a machine counts: binary, hex, two bytes together, and a minus sign made of nothing but switches.
Start →Working the Bits
The tools that change a byte one switch at a time, slide the whole row, turn a letter into a number, and carry a fraction on a machine that only counts in whole steps.
Start →
The machine underneath
What it is made of, and how your program reaches it. Three modules that gate nothing.
Truth Tables
A way to write down every case a question can have, so you can see that two different-looking tests are the same test.
Start →Gates and the Adder
The same truth tables, built out of wire, and then wired into something that adds. This is where a machine stops being magic.
Start →From Source to Silicon
How source becomes instructions, what translation costs, and how to investigate performance.
Start →
Put The Ideas To Work.
Once you know what a program is, the next step is a real computer. Pick one, meet it, then meet the language you will write it in. You can go now and come back to the number modules when you need them. If you are heading for assembly, Counting in Twos and Working the Bits are the ones it leans on most. And if you already think in variables and loops, skip straight to a machine.