Write a Shell in C (brennan.io) · Stephen Brennan
Do: the shell itself; pipes and redirection are a bonus.
The smallest build here: fork, exec, wait. It shows what every program you start actually costs.
Plans / Plan 01 · Eight weekends
You end up withEight small programs that work, and a feel for which of the eleven courses you want to do properly.
Do: the shell itself; pipes and redirection are a bonus.
The smallest build here: fork, exec, wait. It shows what every program you start actually costs.
Do: the first essay; leave the sequel for later.
A whole interpreter in about a page. After it, "read, then evaluate in an environment" is something you've written, not read about.
Its own title promises a weekend. You send a query you built by hand and follow referrals down from a root server.
One page, eight steps, and you've rebuilt the core ideas of the framework most front-end code is written in.
The second book whose title names a weekend. It ends with an image, so you know when you're done.
Do: init, hash-object, cat-file, log and checkout are enough for a weekend; the rest is a second one.
Git's object model, checked against real git. Merges and history stop being mysterious.
Do: through incremental search; syntax highlighting is a bonus.
About 1,000 lines of C with no libraries. You learn what a terminal really is.
Do: through the B-tree leaf splits; internal-node splitting can wait.
The largest build, so it comes last: a pager and an on-disk B-tree.
Each course's bigger books: Crafting Interpreters, the OS in 1,000 lines, Build Your Own Database From Scratch. They're where to go once you know which subject you want.
Pick the build you enjoyed most and open its course. Each of these steps sits early in its course, so you'll have done the start already.