Skip to content

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.

Start with The Basics →

One Instruction.
One Result.

Here is the smallest program there is. One instruction, which shows a word.

Read A Program Is Instructions

Pseudocode

SHOW "Hello"

Output

Hello
From The Basics: A Program Is Instructions. This static example shows how the pseudocode produces its result, independently of a language.

Programming

What a program is. Follow these five in order, or visit an idea when you need it.

  1. 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 →
  2. 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 →
  3. Decisions

    A program that reacts: test a value, choose between paths, keep a yes or no in a box, and join questions together.

    Start →
  4. Repeating

    Count repeated work, test before or after it, and check what can make a loop finish.

    Start →
  5. 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.

  1. Counting in Twos

    How a machine counts: binary, hex, two bytes together, and a minus sign made of nothing but switches.

    Start →
  2. 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.

  1. 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 →
  2. 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 →
  3. 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.