Table of Contents
I’ve also made a list for non technical books
Books I read partially or fully
Professional Reads
- Introduction to Algorithms - Thomas H. Cormen, Charles C. Leiserson, Ronald L. Rivest, Clifford Stein
- Competitive Programming 3 - Steven Halim & Felix Halim
- Mastering Bitcoin - Andreas M. Antonopoulos
- Designing Data-Intensive Applications The Big Ideas Behind Reliable, Scalable, and Maintainable Systems - Martin Kleppmann
- The Mythical Man-Month - Frederick P. Brooks, Jr.
- Code Complete - Steve McConnell
- Clean Code A Handbook of Agile Software Craftsmanship - Robert C. Martin
- Artificial Intelligence A modern Approach - Stuart Russell and Peter Norvig
- Introduction To Modern Cryptography, 2nd Edition
- Introduction To Multicopter Design and Control - Quan Quan
- The Pragmatic Programmer YOUR JOURNEY TO MASTERY BY DAVE THOMAS, ANDY HUNT
Academic Reads
- Discrete and Combinatorial Mathematics - Ralph P. Grimaldi
- Calculus - Michael Spivak
- Signals and Systems
- Calculus 1
- Calculus 2
- Calculus 3
- Linear Algebra
- Number Theory
Book Backlog
Active Selection - What I intend to read next
- Applied Cryptography - Bruce Schneier
- Programming Rust 2nd Edition
- Mastering Rust - Rahul Sharma and Vesa Kaihlavirta
- The Rust Programming Language - Steve Klabnik and Carol Nichols
- Hands-On Data Structures and Algorithms with Rust - Claus Matzinger
- Mastering Bitcoin Programming the Open Blockchain - Andreas M. Antonopoulos
- AI Engineering: Building Applications with Foundation Models
- Mastering the Lightning Network
- The Cathedral and the Bazaar
- Peopleware Productive Projects and Teams - Tom DeMarco and Timothy Lister
What I may read before I die
- Charles Petzold — The Annotated Turing
- Eric S. Raymond — The Cathedral and the Bazaar
- Structure and Interpretation of Computer Programs - Harold Abelson, Gerald Jay Sussman, Julie Sussman
- But How do It Know? - J.Clark Scott
- Crafting Interpreters - Robert Nystrom
- Understanding the Linux Kernel - Marco Cesati, Daniel P. Bovet
- The Annotated Turing - Charles Petzold
- The Cathedral and the Bazaar - Eric S. Raymond
- Code: The Hidden Language of Computer Hardware and Software - Charles Petzold
- Advanced Programming in the UNIX Environment - W. Richard Stevens and Stephen A. Rago
- Real-World Cryptography - David Wong
- Graduate Course in Applied Cryptography - Dan Boneh (https://toc.cryptobook.us/)
- Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- Modern Operating Systems - Andrew S. Tanenbaum
- Structure and Interpretation of Computer Programs
- Computer Systems: A Programmer’s Perspective
- Distributed Systems 4
- Operating Systems - Three Easy Pieces
- Tanenbaum - Distributed Systems
- Computer Architecture A Quantitative Approach - John L. Hennessy, David A. Patterson
- Lecture Notes: Cryptographic Protocols - Berry Shchoenmakers (a,n)
- Introduction to Modern Cryptography - Jonathan Katz, Yehuda Lindell (a,n)
- Coders At Work Reflections on the craft of programming - Peter Seibel
- How to Solve it: A New Aspect of Mathematical Method - George Polya (a,s)
- Geometry, relativity and the fourth dimension - Rudolf v. B. Rucker (a,n)
- Flatland: A Romance of Many Dimensions - Edwin Abbott Abbott
- Agile Retrospectives Making Good Teams Great - Esther Der-, Diana Larsen
- Mastering Monero - SerHack
- Mastering Ethereum Building Smart Contracts and DApps - Andreas Antonopoulos, Gavin Wood
- REST in Practice Hypermedia and Systems Architecture - Jim Webber, Savas Parastatidis, Ian Robbin
- Understanding the Linux Virtual Memory Manager - nMel Gorman
- Linux Kernel Networking Implementation and Theory - Rami Rosen
- A Guide to Kernel Exploitation Attacking the Core - Enrica Perla, Massimiliano Oldani
- The Art of Linux Kernel Design Illustrating the Operating System Design Principle and Implementation - Lixiang Yang
- Mastering Regular Expressions - Jeffrey E.F. Friedl
- UNIX Filesystems Evolution, Design, and Implementation - Steve D. Pate (a,n)
- The C Programming Language - Brian W. Kernighan, Dennis Ritchie
- Programming Pearls - Jon Bentley
- 802.11 Wireless Networks The Definitive Guide - Matthew S. Gast
- Linux Device Drivers 3rd Edition - Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman (twice read)
- Refactoring Improving the Design of Existing Code - Martin Fowler
- The Design of the Unix Operating System - Maurice J. Bach
- The Clean Coder A Code of Conduct for Professional Programmers - Robert C. Martin
- Essential Linux Device Drivers - Sreekrishnan Venkateswaran
- Linux Kernel Development - Robert Love
- Open Data Structures - Pat Morin
- The Go Programming Language - Alan A. A. Donovan, Brian W. Kernighan
- Pro Git - Scott Chacon
- The Algorithm Design Manual - Steven S Skiena
- Apprenticeship Patterns Guidance for the Aspiring Software Craftsman - David H. Hoover and Adewale Oshineye
- Real World Haskell - Bryan O’Sullivan, John Goerzen and Don Stewart
- Learn You a Haskell For Great Good - Miran Lipovaca
- Structure and Interpretation of Computer Programs - Harold Abelson, Gerald Jay Sussman, Julie Sussman
- The Scheme Programming Language - R. Kent Dybvig
- The Little Schemer - Daniel P. Friedman, Matthias Felleisen
- ARM Assembly Language - William Hohl
- The Linux Programming Interface - Michael Kerrisk
- Programming the World Wide Web - Rebert W. Sebesta
- Python Essential Reference - David M. Beazley
- Python the Hard Way - Zed A. Shaw
- UNIX Network Programming - W. Richard Stevens, Bill Fenner, Andrew M. Rudoff
- Advanced Programming in the UNIX Environment - W. Richard Stevens, Stephen A. Rago
- UNIX Systems Programming - Kay A. Robbins, Steven Robbins
- Intermediate Perl - Randal L. Schwartz, brian d foy, Tom Phoenix
- Learning Perl - Randal L. Schwartz, brian d foy, Tom Phoenix
- Beginning Linux Programming - Neil Matthew, Richard Stones
- Version Control with Git - Jon Loeliger, Matthew McCullough
- The Pragmatic Programmer - Andrew Hunt, David Thomas
- The Art of UNIX Programming - Eric S. Raymond
- Expert C Programming Deep C Secrets - Peter Van Der Linden
- The Practice of Programming - Brian W. Kernighan, Rob Pike
- How Linux Works - Brian Ward
- Learning GNU Emacs - Debra Cameron, James Elliott, Marc Loy, Eric Raymond, Bill Rosenblatt
- The Art of Computer Programming (volume 2) Seminumerical Algorithms - Donald E. Knuth
- The Art of Computer Programming (volume 1) Fundamental Algorithms - Donald E. Knuth -
- Command Line Kung Foo - Jason Cannon
- Linux Shell Scripting with Bash - Ken O. Burtch
- From Bash to Z Shell Conquering the Command - Oliver Kiddle, Jerry Peek, Peter Stephenson
- Computer Networks A Systems Approach - Larry L. Peterson, Bruce S. Davie
- A Concise Introduction to Pure Mathematics - Martin Liebeck
- Computer Organization and Design - David A. Patterson, John L. Hennessy
- Operating System Concepts - Abraham Silberschatz, Peter Baer Galvin, Greg Cagne
Random computer books (potentially interesting topics)
- Compilers Principles, Techniques, and Tools - Aho Lam, Sethi Ullman
- Math books (probably won’t get to all these)
- Concrete Mathematics A foundation for computer science - Graham, Knuth, Patashnik
- Modern Cryptography and Elliptic Curves: A Beginner’s Guid - Thomas R. Shemanske
- The Art of Computer Programming (4 volumes) - Donald E. Knuth
- Algorithms in C (5 parts) - Robert Sedgewick
- Hackers Delight - Henry S. Warren, Jr.
Practical Statistics for Data Science
- Mathematics for Machine Learning
- Hands-On ML with Scikit-Learn, Keras, and TensorFlow
- The Hundred-Page ML Book by Andriy Burkov
- The Elements of Statistical Learning
- Hands-On Large Language Models by Jay Alammar
- Practical MLOps
- AI Engineering by Chip Huyen