Programming

What every language assumes you already know: how a machine runs your code, the tools you work in, memory as it really is, then the data structures, algorithms and databases the rest of the work stands on.

Who it's for: Anyone who can write a little code and wants the ground underneath it, and anyone preparing for interviews that ask about data structures and algorithms. The language courses beside the roadmap are open to complete beginners.

Sign in to keep your progress.

How much of it do you want?

Everything this subject teaches, in the order it is meant to be met: what a machine actually does with your code, the tools you work in, one language with nothing hidden, then the structures, the algorithms and the databases that the rest of your working life is built on.

All modules

6 modules · 33 topics · ~382 estimated learning hours. Each one stands on its own, so start wherever you like.

P-1

How Computers Run Code

What is actually happening underneath a program: how source text becomes instructions a processor runs, what memory really is, why numbers and text go wrong in the particular ways they do, and how to read a failure instead of guessing at it.

5 topics ~54 h5 foundation · 0 core · 0 advanced
See the 5 topics
Open
P-2

The Working Environment

The tools around the code: a command line you are not afraid of, an editor that catches mistakes before you run anything, version control for history and for working with other people, and dependency management that makes a setup reproducible on someone else's machine.

5 topics ~52 h3 foundation · 2 core · 0 advanced
See the 5 topics
Open
P-3

C, and How Memory Actually Works

One language where nothing is hidden: types and control flow with no safety net, pointers as ordinary numbers, arrays and text as raw storage, memory you request and must return, and the compile-and-link steps every other language performs on your behalf.

5 topics ~60 h0 foundation · 5 core · 0 advanced
See the 5 topics
Open
P-4

Data Structures

How to hold data so that the operations you perform most often are the cheap ones: arrays that grow, linked storage, last-in and first-out access, hash tables, ordered trees, heaps, and the several ways to represent a graph.

7 topics ~76 h0 foundation · 7 core · 0 advanced
See the 7 topics
Open
P-5

Algorithms and Complexity

How to measure what an algorithm costs and how to design one that costs less: growth rates, recursion, sorting and searching, divide and conquer, greedy choices, dynamic programming, and the standard results on graphs.

6 topics ~80 h0 foundation · 4 core · 2 advanced
See the 6 topics
Open