In roughly reverse chronological order, here are some things I’ve written over the years.
Coming in 2024! This is my second book for No Starch Press. I can’t wait for
everyone to see it. This book took me way longer to write than the first one
due to having kids and being hit by a global pandemic, but I’m really pleased
with how it came out, eventually.
The book is structured as a quick (but thorough) intro to the language, followed
by three projects: creating a game (using the canvas element), making music
(using Tone.js), and fetching and graphing data (using D3). I had a lot of fun
making these projects, especially the music one. All the code from the book
is on codepen.io, and the music project is
My first book for No Starch Press, published in 2014. This book came about when
my friend Angus Croll, author of If Hemingway Wrote
The book is primarily aimed at kids, but I was surprised by how many reviews it
got from adults saying that it was the first time they’d been able to pick up
programming from a book.
My favorite quote from a review by GeekDad:
“I’ve fallen in love with a book. Like fallen
head-over-heels, carry-it-all-around-town, sneak-in-pages-whenever-I-can in
love. The real deal.”
Back in 2015 I wanted to learn Forth, so I decided to write an ebook to teach
it, because I often find teaching something is the best way to learn it. It also
gave me the excuse to write my own Forth interpreter, which is used in the book
to let readers write and execute code while they’re reading.
The book ends with a full implementation of the game Snake, as I did with Easy
In 2012 I started learning 6502 assembly language as an academic exercise. I
found that most of the materials out there for learning the language were
lacking, and required installing ancient software. Easy 6502 started out as a
series of unpublished blogs on my website but I realized that it was going to
be bigger than that and deserved its own site. I also decided that the book
6502 assembler and adapted it for my needs.
As with several of my other projects, the book culminated in a playable Snake
game. It was a fun project to write, and showed just how little code you need
to create a simple game.
Easy 6502 was very popular, earning the top spot on Hacker News more than once,
and has even made its way into some computer science curriculums. Possibly my
proudest moment in programming was when John Romero, co-creator of Doom, linked
to it in response to somebody saying they wanted to learn 6502: