Skip to main content

Command Palette

Search for a command to run...

Computer Science Reading List

2026 and beyond...

Published
6 min read
Computer Science Reading List

This article contains a few recommendations and notes about some of the books I intend to read, if you just want to skip all that and see the list you can download it here.


Why?

As a creative developer (and previously a long-time designer), I've always been keen to dip a toe into various fields and explore. I'm essentially a jack-of-all-trades who likes to bring it all together in my work. Over the Christmas/New Years break after watching video by Carl Brown and following his advice, I decided to try the CodeCrafters.io Shell challenge (yes that is a personal referral link, I highly recommend it). As someone without any CS background, I figured it wouldn't hurt to go into something "low-level" and slightly intimidating.

Fortunately I loved it and I spent many hours working on the shell to complete each challenge; learning about a few computer science concepts in the process. I realised I loved discovering and learning that stuff so much I preferred it to my actual job, so I figured I'd finally go deeper and aim to fill in all of the fundamental knowledge gaps, starting from early 2026, in the aim of becoming a competent engineer; finding out what I really want in life (...until I want something else again).

List Structure

Before I talk about anything I should explain the structure, in the list I created 5 categories of priority, and a diagram below which shows how I might approach reading books between categories:
- Base for fundamentals I want to learn this year
- In-Depth for further knowledge (not essential right now)
- Specialisation for graphics programming and creative coding books
- Eventual for non-essential or longer term reading goals
- Future a big maybe list, highly dependent on where my CS path takes me

Here's a mermaid diagram with the order I plan to study:

🌱 Base

🔍 In-Depth

Specialisation

🕐 Eventual

🔭 Future

Notable Books

Here's a selection of books per category that I'm excited to read and how I expect they will benefit me:

Base

  • Effective TypeScript
    This one's cheating because I'm already half-way through it, but I've loved every moment, if you use TypeScript you'll very quickly learn how to use it better and understand why you'd need to. For example before I read I didn't fully connect the structural typing to set theory, and I didn't understand that typeof has a risk of widening so should be used more sparingly versus declaring interfaces upfront. One faux pas I ran into was trying to type CSS values as a learning experiment; ending up with excessively large union types and slow hints because I didn't use the correct utilities. This book will correct all of that.

  • The Pragmatic Programmer (20th Anniversary)
    I first saw this referenced in one of Dreams of Code's videos but only after did I notice how frequently it came up in conversation around programming books. I've bought the book and read a few chapters, the advice inside has already benefitted me in terms of my own perception of my skills and confidence. Martin Fowler's quote "You can change your organization (sic) or change your organization" resonated with me.

  • Writing An Interpreter In Go (PDF)
    The first of Thorsten Ball's (Zed IDE) series of books, an excellent entry to Go and Interpreters... I've read a fair bit already, and it feels like it could teach building an interpreter to a Monkey (the name of the language you build in the books 😏). Looking forward to getting around to this properly as a natural progression from the shell challenge mentioned earlier.

In-Depth

  • Concrete Mathematics (2nd ed.)
    First published in 1989, I've read that this is a highly-regarded seminal reference book for computer scientists, and I'm hoping it will be a great reference for algorithms.

  • TCP/IP Illustrated Vol. 1 (2nd ed.)
    A recommendation from Internet of Bugs Book Overflow podcast episode. Networking is something I don't yet know a lot about, I get how it works, protocols, addresses, requests, packets, etc. It's a loose mental-model rather than a complete understanding.

  • Operating Systems: Three Easy Pieces (a.k.a. OSTEP)
    This sounds great, and part of me is excited about learning the core concepts of an operating system (virtualisation, concurrency, and persistence) to be able to understand what's happening behind each process. I'd also love to try building one eventually, but perhaps I'm being somewhat ambitious!

Specialisation

  • The Nature of Code
    Daniel Shiffman who runs The Coding Train wrote this, as soon as I discovered it I bought it. My hope is to be able to read this and know how to code visual patterns occurring in nature, which would be endlessly useful for any creative work.

  • Real-Time Rendering (4th ed.)
    Released in 2018, but a thorough compendium of graphics rendering principles and more modern techniques for rendering, particularly useful for game development. One of the things that lead me to finding this book was learning about and being amazed by Sucker Punch's unique grass rendering system in Ghost of Tsushima, via a SimonDev video which can be viewed here.

  • CUDA by Example
    CUDA-specific, written by NVIDIA employees, but why only learn about fragment and vertex shaders for VFX when I can learn about super fast compute shaders and know when to use them?

Eventual/Future

  • The Book of Shaders
    I would probably have read this sooner, but I've heard it's not even finished so I haven't been prioritising it. I'll likely pick this up sooner rather than later though just to fill in any foundational GLSL gaps.

  • Rust for Rustaceans
    A good amount of the software I use these days has been built in Rust. It's consistently bug-free and fast, and I love it. I may end up picking this up sooner, but right now I'm prioritising C++ and TypeScript.


You can download the full reading list here, however I likely won't keep this up to date with what I've read etc as my personal list is in Obsidian:
Download the full list here

Best,
Alex

Computer Science Journey

Part 1 of 1

My discoveries and plans as I learn computer science and go from creative web developer to engineer.