FREE Plain English · no account

Learn. Code. Build.

Semicolon is a coding school: tracks, practice, and projects. Ada is a real chat inside it — ask anything, paste broken code, and learn with follow-ups.

10Learning tracks
31Lessons
£0Cost, forever
Colourful illustration of a laptop and notes for learning to code
Start here

Four ideas, and you're programming

Almost everything in every language is built from these. Learn them once and they transfer to every language you ever touch.

Store something

A variable is a labelled box. Put a number, a name or a whole list inside it, then use the label instead of the value.

Make a decision

if and else. Do one thing when something's true and another when it isn't. That's every choice a program ever makes.

Repeat it

A loop does the same job across a thousand items as easily as one. This is where computers stop being calculators and start being useful.

Name a recipe

A function is a set of steps with a name. Write it once, use it anywhere, fix it in one place when it's wrong.

How coding works

From a file you typed to something happening

A computer does not “understand” English. It follows a short pipeline. Once you can picture that pipeline, errors stop looking like magic.

You write source

A .py or .js file is just text. The interesting part is that every character is a rule, including the spaces in Python.

A program reads it

Python’s interpreter (or a compiler, or the browser) turns that text into steps the machine can run. If a bracket is missing, it stops here and prints an error.

The CPU does work

Add numbers, copy values in memory, jump to another instruction. Loops and if are just “do this again” and “skip that bit”.

You see a result

Print to the terminal, paint a web page, write a file. If the result is wrong but there is no crash, the instructions were legal — and still not what you meant.

The tools

What each language is actually for

You do not need all of them. You need one that matches what you want to make.

Start here

Python

Readable, useful the same day. Automation, data, scripts, learning the ideas. python hello.py runs the file.

The web

HTML, CSS, JavaScript

HTML is structure. CSS is looks. JavaScript is the only language browsers run for decisions, clicks and live updates.

Memory

Git

Not a language — a save-history for your project. Commit when something works. Write .gitignore first.

Later

SQL, C, and friends

SQL asks questions of tables of data. C talks close to the machine. Add them when a project actually needs them.

What it's for

Code isn't only for making apps

Most programming isn't building the next big website. It's making a computer do a dull job so a person doesn't have to.

Automating boring jobs

Renaming 400 photos, tidying a downloads folder, checking a website every hour. Twenty lines of Python can save you an afternoon every month.

Understanding data

Scientists, doctors and journalists use code to find patterns in numbers too big to read. Climate models and medical trials both run on it.

Building things people use

Websites, games, phone apps. The visible end of programming — and the part where you get to hand someone a link and watch them use it.

Controlling machines

Robots, 3D printers, satellites, the traffic lights on your road. If it makes a decision without a human, something wrote the rules.

Keeping things safe

Security work is mostly reading code carefully and asking "what happens if someone does the unexpected thing here?"

Thinking more clearly

Programming forces you to break vague problems into exact steps. That habit is useful long after you close the editor.

Where to begin

Three good starting points

Each track is self-contained, free, and ends with something that works.

From the blog

Recent writing

Short pieces on the things that trip people up early.

Worth remembering

From people who built this field

This site is new and has no users yet, so it has no reviews — and inventing some would be a poor start. Here are real quotes instead. Every one is sourced.

Questions

The ones everybody asks