Stage 3 of 6 · 9 lessons · ~2 months
How computers run your code
Understand what happens below your code: bits, memory, the CPU, compilers and interpreters, and the operating system. Enough that bugs about memory and numbers stop surprising you.
Start: Binary, bits and bytesLessons· one lesson for each topic, in this order
- 1Binary, bits and bytesLesson
- 2Text encodings: ASCII, Unicode and UTF-8Lesson
- 3Integers and overflowLesson
- 4Floating point numbersLesson
- 5How a CPU runs a programLesson
- 6Compiled vs interpreted codeLesson
- 7Memory: the stack and the heapLesson
- 8What happens when you pass a value to a functionLesson
- 9Processes and the operating systemLesson
Start with· follow one of these
- CourseFreeCS50: Introduction to Computer Science
Harvard University · Beginner
Weeks 0, 1, 2 and 4 teach C, arrays and memory; the difficulty is the point
- VideoFreeCrash Course Computer Science
CrashCourse · Beginner
Short free videos from logic gates to operating systems; episodes 1 to 20
Keep handy
Also worth your time
- What Happens WhenGo deeper
Everything from a key press to a rendered page; read it after this stage
Before moving on: Explain in writing why 0.1 + 0.2 is not exactly 0.3, what happens in memory when you pass a list to a function in your language, and finish CS50x weeks 0 to 2 and week 4.

You are not training to be a hardware engineer; you are learning enough that the machine stops feeling like magic. CS50x uses C on purpose and it will feel slow, so push through week 4, because memory is the idea everything later builds on.