I’ve been keeping a mental tab of CS books that are freely accessible digitally, with an option to purchase a physical copy. I love this format of publishing so I thought I’d share all the CS books that Please reach out if there are ones I missed!
Systems
- Operating Systems: Three Easy Pieces - a goto textbook for learning introductory operating systems, with bits of humor and dialogue to keep you engaged
- Dive Into Systems - textbook that you would typically find in an undergrad Computer Organization or Computer Systems course, a possible alternative to CSAPP
- Effective Rust - meant to be the second book a Rust newcomer reads, this will guide you to writing idiomatic Rust
- Distributed Systems - textbook with an overview of distributed systems topics, also used in an undergrad course
Interpreters and Compilers
- Crafting Interpreters - a great book in the genre for writing languages and — arguably — a work of art
- Introduction to Compilers and Language Design - textbook made for an undergrad compilers course, something a bit more formal than Crafting Interpreters if you’re in to that sort of thing
Networking
- High Performance Browser Networking - while slightly outdated, a solid book introducing networking concepts for Software Engineers and a must read
Graphics
- Physically Based Rendering - a very in-depth book on writing your own ray tracer, featuring the best code formatting I’ve come across
Free CS Books
Here are some books that don’t fit the criteria since they only exist digitally, but are honorable mentions.
- Ray Tracer in One Weekend (Series) - a good introduction to writing ray tracers with complete code examples in C++, but will leave you wanting more. I still go to it whenever I’m learning a language