What follows is a non-ordered & non-exhaustive list of great programming books that I’d recommend every ambitious software engineer. The language specific ones are obviously not for everyone.
Disclaimer: I have not read all of these from cover to cover. I’ve read most, but some are on my list of books to read next based on suggestions and/or reviews from people I trust.
General Link to heading
- Deep Work: Rules for Focused Success in a Distracted World โ Not a programming / software engineering book at all per say, but a highly recommended read regardless. If you read one book on this list, go for this one, for real.
- Clean Code, Clean Coder and Clean Architecture โ These Uncle Bob classics are great. I’m currently enjoying the architecture one on audible, that’s a first for me with a software engineering book. Simply great, and truly a pleasant read/listen.
- The Pragmatic Programmer: Your Journey To Mastery โ A classic, and a good one at that!
- Staff Engineer: Leadership beyond the management track โ This one I find a tiny bit boring, to be perfectly honest, but still very helpful. Lot’s of insight about “all the other stuff” (not coding).
- The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact โ I haven’t read this one yet, but it’s been highly recommended to me by trustworthy people. And how about that killer subtitle, ey?
Golang Link to heading
- The Go Programming Language โ Kind of obvious, this one. But a great classic! I remember enjoying the chapter about UTF-8 a lot, as well as the generally thorough explanations of how and why Golang behaves.
- Concurrency in Go: Tools and Techniques for Developers โ This is a truly great programming book! Even though Golang is made for concurrency, it’s still very possible to mess up. This book shows you how it’s done. What’s a bit cool (๐ค) is that it predates the
context.Context
interface, and as such suggests using a manual “done channel” to enable canceling of coroutines. It shows the author’s insight that an exact pattern like that was introduced with theContext.Done()
method introduced later in the language. For more on that, check out this git diff, on a small golang utility library I started on way back. - Feel free to skip this one, though: Learning Functional Programming in Go โ This book should, IMHO, rather have been a tweet. Something like this: “Go is not really suited for functional programming, I’d advice you not to do it at scale.” Fun fact: this book is actually what got me into Kotlin. All that talk about tail call optimization (and how Golang is not doing that…) got me searching for more functional fun outside of Elm, Haskell and Lisp.
Python Link to heading
- Fluent Python: Clear, Concise, and Effective Programming โ I read this one on my Kindle, actually, before I learned that Kindle’s not where programming books really shine. That aside, I have nothing but fond memories from the first edition, and I’ve heard the updates on the second edition are really worthwhile. If you want to read one Python book, this is it.
- Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners โ This one is also cool! While mainly targeting “total beginners”, it’s also suitable for seasoned programmers who don’t usually work in Python, but want to leverage its super fast scripting capabilities to automate stuff.
Kotlin Link to heading
- Functional Programming in Kotlin โ Functional Programming and Kotlin in the same book title?! No-brainer. This one is great!
- Kotlin in Action โ One of two “general Kotlin books” I’d recommend.
- Mastering Kotlin โ The other one :)
Lisp Link to heading
- Land of Lisp: Learn to Program in Lisp, One Game at a Time! โ A bit whimsical, but then again Lisp is not, so in sum a semi-serious book. I liked it ยฏ\(ใ)/ยฏ
- On Lisp: Advanced Techniques for Common Lisp โ The Lisp book, by mr. Paul Graham himself. Hats off, hands down.
- Practical Common Lisp โ The other Lisp book, I guess? Great.
React Link to heading
- Advanced React: Deep dives, investigations, performance patterns and techniques โ I’ve actually read (or at least skimmed) quite a few books on React โ I even started writing one, way back โ but this is the only one I think is worth recommending. If you’re a complete beginner there are probably other/better options, but given that you’re at least semi-familiar with thinking in React, this is The One.
Rust Link to heading
- The Rust Programming Language โ “The Book”, as official as it gets, and quite good at that.
- Programming Rust โ Less official, but a fine resource regardless. The two complement each other (and of course overlap a bit as well).
Warning: I might add more later.