
How to Solve It
Practise understanding a problem, finding a plan, and checking the result. A small book with ideas that travel well beyond mathematics.
About the book: How to Solve ItOn our reading table
Books that help make computers, software, and systems less mysterious. Start with something that catches your attention, and see where it takes you.
Problem-solving, models, trade-offs, and the people using the system.

Practise understanding a problem, finding a plan, and checking the result. A small book with ideas that travel well beyond mathematics.
About the book: How to Solve It
Learn to notice the clues, feedback, and constraints that make things usable. A helpful lens for every workflow you build.
About the book: The Design of Everyday Things
Question what your categories, names, and records actually represent. Especially useful before turning a messy business process into a database.
About the book: Data and Reality
Compare ways to store, move, and process data. Learn the trade-offs behind systems that need to keep working as they grow.
About the book: Designing Data-Intensive ApplicationsFrom switches to computers, from parts to wholes, from data to models.

See how switches, symbols, and logic become a working computer. A patient route from familiar objects to unfamiliar machinery.
Book & interactive illustrations: Code
Follow simple components as they come together into a computer. A concrete starting point for the question in the title.
About the book: But How Do It Know?
Notice feedback, delays, and unintended consequences. Useful for understanding what happens when you change one part of a larger system.
About the book: Thinking in Systems
Explore the mechanisms behind AI through diagrams and exercises. A visual companion to asking better questions about models.
Book & exercises: The Welch Labs Illustrated Guide to AIUnaffiliatedFrom hardware and memory to operating systems and networks.

Build a computer from small parts, then build the software that runs on it. Best read with the accompanying projects.
Book & projects: The Elements of Computing Systems
Trace what happens beneath a program: memory, machine instructions, processes, and the operating system. A deeper technical read.
Book & resources: Computer Systems: A Programmer’s Perspective
Learn how computers share processors, manage memory, and keep data. The authors make the chapters freely available online.
Read free online: Operating Systems: Three Easy Pieces
Start with familiar applications and work down through the network. Understand the layers behind a message arriving at its destination.
Book & resources: Computer Networking: A Top-Down ApproachTurn ideas into programs, and learn to reason about the result.

Explore how programs express ideas and manage complexity. A demanding classic that rewards doing the exercises as you read.
Book & free online edition: Structure and Interpretation of Computer Programs
Turn a problem statement into data, examples, tests, and a program. A systematic introduction to designing software.
Read free online: How to Design Programs
Learn to recognise the shape of a problem and choose an approach. A practical reference to return to while building.
Book & resources: The Algorithm Design Manual
Build a programming language and watch text become behaviour. A guided project for readers ready to get their hands into code.
Read free online: Crafting InterpretersSeveral selections draw on Teach Yourself Computer Science, a useful route into deeper study. For further depth, CS Primer is one of the best software engineering educations money can buy. It was founded in San Francisco by friends and former colleagues of mine. These are independent books and resources. Explore what interests you; no purchase is required for our programs.
Read on your own. Join the waitlist to get the practice guides and a place in a live program, where you work through your questions with others.