Foundation

Programming Foundations

Before the language, the machine and the craft.

What a program is, what turns it into behaviour, and the tools you use every day without being taught them: the terminal, the filesystem, environment variables, a debugger, and the HTTP a backend actually speaks. If you already write code, skim it; if you do not, everything after this assumes it.

15 lessons written4 modules~3h reading

After this course you can

  • Say what a compiler, an interpreter and a runtime each do, and which one a given error came from
  • Work in a terminal: paths, environment variables, and why PATH decides which java runs
  • Use a debugger instead of print statements, and read what it shows you
  • Describe a request from a browser to a server and back, in HTTP terms
  • Read and write JSON, and know what it cannot represent

Curriculum

15 lessons · outlined lessons show their plan
01

Programming as a skill

4/4 written · ~38 min
What a program isInstructions, state and time — and why a computer is stupider than you expect.8 minAlgorithms and decompositionTurning a problem you understand into steps a machine can follow, and the habit of splitting before solving.10 minReading a problem before writing codeThe five minutes that save an hour: inputs, outputs, edge cases, and the example you work by hand first.10 minImperative, object-oriented, functionalThree ways of organising the same computation, what each optimises for, and why Java has all three.10 min
02

How code becomes behaviour

3/3 written · ~32 min
Source code, and why it is textWhat a source file actually is, what an encoding is, and why your editor matters less than you think.8 minCompiler, interpreter, runtimeThree words people use interchangeably and should not — with the error each one produces.12 minWhat happens when you run a programFrom a double click to a process: loading, memory, the operating system's part, and where your code sits in it.12 min
03

The developer's environment

5/5 written · ~56 min
The terminal, and why it is not optionalThe handful of commands that cover ninety per cent of a backend engineer's day, and why the GUI cannot replace them.12 minFiles, paths and the working directoryAbsolute and relative, the working directory that breaks your file-not-found, and how a program resolves a path.10 minEnvironment variables and PATHWhere configuration lives outside your code, why PATH decides which java runs, and how a container inherits none of it.12 minAn IDE, and what it is doing for youIndexing, compilation, refactoring and inspections — and what you should still know how to do without it.8 minDebugging: breakpoints, stepping, watchingReplacing print statements with a debugger, and the method that finds a bug faster than guessing.14 min
04

The shape of a backend's world

3/3 written · ~34 min
Client and serverWho asks, who answers, and what "backend" actually means once you draw it.10 minHTTP: methods, status codes, headers, bodyThe protocol every API speaks, read as a conversation you can inspect.14 minJSON, and why everything speaks itThe format your API returns, what it can represent, and the three things it cannot.10 min