Programming as Communication

pro/programming

An introductory series about talking to computers, and the thinking skills that come with it.

20/20 chapters
01
00Chapter 0

Talk to the Machine

Programming is telling a very literal, very powerful, very stupid machine exactly what to do. This chapter introduces the core thesis of the course.

02
01Chapter 1

What Exactly Do You Want?

Before we can tell a computer what to do, we must know what we actually want. This chapter explores why precise thinking matters and how to break down problems.

03
02Chapter 2

Read the Room

Programming isn't one thing - it's an entire zoo of related but distinct skills. Understanding which computational creature you're addressing changes everything about how you approach the conversation.

04
03Chapter 3

Reading the Language

Programming is more about reading code than writing it. Learn to recognize variables, understand data types, interpret operators, and decode what you see when AI generates code for you.

05
04Chapter 4

Following the Flow

Learn to trace what code does, understand the flow when reading programs. Follow the computer's path through sequences, decisions, and loops.

06
05Chapter 5

Your New Colleague

AI coding assistants have changed how we build software. This chapter teaches the workflow: prompting, reading output, understanding functions, and building interactive programs.

07
06Chapter 6

The Shape of Information

How to organize information in ways that make questions easy to answer. Arrays keep things in order; objects let you look things up by name.

08
07Chapter 7

When Things Go Wrong

Your code will have errors, including code AI writes for you. This chapter teaches you to classify them, read error messages, debug systematically, and test your assumptions.

09
08Chapter 8

Standing on Shoulders

Libraries are collections of code written by other programmers who've already solved particular problems. Learn to leverage shared knowledge and work with AI to find the right tools.

10
09Chapter 9

Programs That Listen

This is where everything converges. Build interactive programs, connect to web APIs, and complete a guided project with AI, from prompt to working software.

11
10Chapter 10

Write It Like You Mean It

You write code once, but it gets read over and over, by you, by colleagues, by AI. This chapter explores why optimizing for human readability is the most important skill you can develop.

12
11Chapter 11

The Bigger Picture

The programming world is larger than what you've seen. This chapter maps the landscape: how programs handle many things at once, and the different ways programmers have learned to think about problems.

13
12Chapter 12

Keeping Track

Version control is how real projects manage change. It tracks what changed, when, and why: your safety net when working with AI, your collaboration tool when working with people.

14
13Chapter 13

Your Turn

This isn't the end of anything. It's where the training wheels come off and you discover what you're actually capable of building.

15
14Chapter 14

Advanced Control Flow

Deeper exploration of control flow: recursion (functions that call themselves) and the arrow code antipattern.

16
15Chapter 15

Advanced Functions

Higher-order functions, map and filter, pure functions, and treating functions as values: the functional programming concepts that unlock elegant data transformation.

17
16Chapter 16

State Machines & Patterns

State machines, event sourcing, and shared mutable state: patterns for managing complexity when simple variables aren't enough.

18
17Chapter 17

Concurrency Deep Dive

Actors, promises, backpressure, and the deeper patterns of concurrent programming.

19
18Chapter 18

Type Systems & Memory

Static vs dynamic typing, memory management models, and domain-specific languages: the deeper mechanics that differentiate programming languages.

20
19Chapter 19

Famous Bugs

The Therac-25 radiation overdoses, the Mars Climate Orbiter crash, the Morris Worm: real stories of what happens when bugs escape into the wild.