Understanding Computation

Understanding Computation book cover

I’ve written a book called “Understanding Computation” for O’Reilly Media. You can buy it from the O’Reilly shop or Amazon (US, UK). Here’s a sample chapter and all the code.

It’s a book about old, deep ideas from theoretical computer science, deconstructed and explained in an engaging, practical way for an audience of working programmers.

The focus is on answering questions about computation and the fundamental mechanics of programming languages: how do they really work? what can they really do? what do the programs we write in them really mean? The book consists of pragmatic explorations of these questions, demonstrated with real code and meaningful examples in a familiar language.

These are foundational concepts that you’ll wish you’d always known, digested and presented in a way that makes sense; universal truths which are interesting in their own right, but which also give you a better understanding of the way you do your job and the limitations of what’s possible.

The chapters are:

“Understanding Computation” was published in May 2013. For book-related updates and announcements, please follow @computationbook or enter your email address here: (I’ll only use this to keep you informed about the book, and won’t share it with anyone.)