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 plan01
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 minProgramming as a skill
02
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 minHow code becomes behaviour
03
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 minThe developer's environment
04
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