Curated list of some books I own, targeted towards beginner to intermediate topics in programming.
Effective C by Robert C. Seacord (2nd Ed.)
- How I learned C, very straightforward, 10/10 would reccomend.
Fluent Python by Luciano Ramalho
- Extremely knowledgeable author, probably the best book for anyone looking to advance their Python skills and knowledge.
How Linux Works by Brian Ward (3rd Ed.)
- Very digestable for even new computer hobbyists. I reccomend this to so many as it teaches fundamentals regarding operating system (helps when you read OSTEP), the shell, server administration, and so much more. It even intoduces topics like how containers like Docker and Podman work.
But How Do It Know? by J. Clark Scott
- Amazing book for new computer hobbyists looking to understand the fundamentals of computers like, bits/bytes, digital logic, decoders, opcodes, memory, the cpu (and all of its complexities), storage, and even finishes with more general concepts like operating systems and drivers. Is quite verbose, however.
Inside the Machine by Jon Stokes
- Great follow-up to Scott’s book. Delievers on its promise to distill introductory computer architecture concepts. Despite the book being quite old in terms of computing history, as CPUs have advanced, understanding the CPUs mentioned in the book is critical to understanding the modern age of CPUs. In other words, the early 2000s was a very important time for CPUs, seeing many turning points, revolutions, and harsh lessons.
Learning Go by Jon Bodner (2nd Ed.)
- Straightforward yet extremely detailed introduction to the Go programming language. Whether or not Golang is a good first language for new computer hobbyists is a topic I still ponder over, as despite being a good medium between say C and Python, its design choices are not fully understandable without considering the context of the languages inception.
Operating Systems: Three Easy Pieces by Remzi and Andrea Arpaci-Dusseau
- Currently reading. Very clear, practical code examples. I’ve tried to read this a few times over the past year despite my lack C and computer architecture knowledge. Needless to say, you should definitely have strong fundamentals in those 2 areas before reading a book like this. You will be greatly rewarded.
Books I will read soon (and am very excited about)
- TCP/IP Illustrated Vol. 1 2nd Ed.
- Unix Network Programming Vol. 1 3rd Ed.
- The Linux Programming Interface
Given my recent interest in W. Richard Steven’s work, I was considering his book “Advanced Programming in Unix Environments”, but Michael Kerrisk’s TLPI is simply too good to pass up, and can be thought of as its successor.