The Nonfiction Shelf

Published 6/7/25

Updated 3/25/26

These are some of my favorite pieces of nonfiction. They are somewhat biased toward computer science and sports science.

Check out my fiction shelf for my other recommendations.

Operating Systems: Three Easy Pieces

An amazing book about operating systems. In particularly, it's great at explaining the background and design tradeoffs in virtual memory and filesystems. It is also extremely digestable with short chapters (51 over the course of 700 pages). Would help to have some background in computer systems and C programming.

Aesthetic review: nicely typeset and funny in an off-beat way. I think that the crux questions are pedagogically very effective.

Salt, Fat, Acid, Heat

Notes: /salt-fat-acid-heat

A lot of books about cooking are overly practical: just lists upon lists of recipes and ingredients, interspaced between page-size spreads of delicious food. This makes it difficult to develop a mental framwork for cooking. What is the purpose of vinegar and baking soda? Why do you add oil to salads and cakes?

This books explains these critical components systematically. It's helped me a lot with identifying what makes food taste good. (I also immediately notice when something is undersalted.) Highly recommend.

Beastmaking

Beastmaking introduces "a fingers-first approach to becoming a better climber." I found the discussion about active grip very useful; I never really thought about how I open-handed all holds before. Now I pay better attention to what my fingers are doing.

Designing Data-Intensive Applications

Notes: /ddia

DDIA is the most recommended computer science book out there. I'm guessing that it's most helpful for entry-level developers who are just getting into building complex systems. I found that as a computer science student, the ideas were abstract and hard to appreciate. It was only when I started working on bph-site that things started to click for me.

System Design Interview

Notes: /system-design-interview

Most system design books are fairly abstract. Replication, partitioning, consensus—you've heard it over and over again. This book actually gets into the weeds of designing something like a rate-limiter or url shortener. I recommend it even if you're not preparing for a systems design interview.

9 Out of 10 Climbers Make the Same Mistakes

This book is as good as everyone says it is. You can read it over and over again and still learn something new. Although it covers all aspects of climbing, I think its strongest point is its focus on the psyche (rather than strength or technique).

Outlive: The Scieince & Art of Longetivity

Notes: /outlive

I heard a few people raving about Outlive online before I finally picked it up. It lived up to expectations--I've since completely changed my attitude toward exercise and health, and have started lifting weights and running in Zone 2. Strongly recommend as a practical introduction to health and wellbeing.

Learn Rust in a Month of Lunches

Background: I've failed to learn Rust from the Book many times before college. The main problem was that I didn't have the computer systems background to understand Rust's design choices at that time. To put it bluntly, you need to know how memory allocation works.

This book is a very gentle introduction to Rust. I was reading this over the summer, so I appreciate that every chapter is lightweight. You can definitely read a chapter every day in the beginning (maybe a chapter every three days later on).

Further, everything in this book is immediately practical. In addition to common language features, the book gives you a tour of Rust tooling and the most popular crates as well. I felt ready to write a complex, multithreaded program after reading it.

Algorithms
Algorithms
7/21/23

A lucid and sometimes funny introduction to algorithms. Topics include: recursion, backtracking, dynamic programming, greedy algorithms, graph algorithms, minimum spanning trees, shortest paths, maximum flows & minimum cuts, and NP-hardness.

Aesthetic review: the diagrams are clear and there is clean use of color. The footnotes are hilarious.

The Good Life

One of the seminal books on happiness, based on one of the world's longest scientific studies of happiness. The main idea is very simple: relationships are important, and you need to apply curiousity and attention to nurture them.

Crafting Interpreters

A practical introduction to creating interpreters and compilers in Java and C. I only wish that it had used pattern-matching and not the visitor design pattern, but this is a language issue.

Aesthetic review: beautifully hand-drawn diagrams, useful sidenotes, and a fantastic color palette. Clearly made with love.