The last book I read which is definitely in my top list : A philosophy of software design by John Ousterhout. It deals with software complexity and is not language specific. It is concise and easy to read. It’s the one I always carry.
I also love Clean Code which was very inspiring and helped me write better, more readable code I believe.
Last one I’d say is Domain Driven Design by Martin Fowler. I must admit that as a non native English I found it not so easy to read but I discovered a great programming paradigm which I felt very in line with.
The Structure and Interpretation of Computer Programs, anyone?
That’s the book that’s responsible for introducing me to Lisp, and leading me to learn Clojure. But a couple of things happened since then that make that seem like an accident of history unlikely to be repeated:
- The famous MIT course responsible for the book switched from using Scheme to Python
I’m kind of surprised no one has mentioned The Art of Computer Programming, but perhaps I shouldn’t be, because it’s not really a book, it’s an encyclopedia (written by one person over like 40 years) that one does not simply read…
…unless they’re in a situation like I was last Summer, away from civilization recovering from Covid, without access to the internet.
No, I didn’t read the entire thing. But I developed a very keen appreciation for pseudorandom number generators and sorting algorithms.
Oh, and I think it’s the reason for LaTeX… I heard the legend that when Donald Knuth saw the first printing he was appalled at how terrible the mathematical expressions looked, and decided to, as one does, stop everything and design an entire typesetting system
I found Introduction to Computation and Programming Using Python: With Application to Understanding Data to be a good book for a beginner to get comfortable with Python and also programming concepts.
The Go Pogramming Language has been a good primer/reference to get started with Go.
I wanted to read this but it is a bulky one. I’d like to know if it is worth spending time.
Also I bought The Linux programming Interface a while ago with grand ambitions of learning C on the side and eventually tinker with driver code! With Go and Rust seen as successors, I am not sure if I should continue on that path.
I thought someone would have mentioned Why’s poignant guide to Ruby already, but no foxes
SICP is one of my favorite books ever, but I’m not sure I’d recommend it to the average developer. Other fans of it might be angry at me for saying this, but unless you are into Lisp, and specifically Scheme, and/or very adventurous, I think your time would be better spent checking out some of the others in this thread! Just my two cents.
FWIW, even Rich Hickey (the creator of Clojure) isn’t a fan, and even wrote a piece saying something to the effect that its value doesn’t really transfer beyond its historical context.
EDIT: I found it in case anyone is curious: Rich Hickey on SICP and Clojure - NeoWiki (7thgen.info) It was a response to a question someone asked about whether it would help them learn Clojure.
I like the Headfirst series. I’ve read Headfirst git and Java, both very good books.
The Art of Computer Programming (TAOCP), but I am waiting for George R.R. Martin to complete the final book.
Agreed! Working through the Headfisrt content for Go was really beneficial.
I worked my way really slowly through the Go book and still going! Taking my sweet time but feel it’s allowing the learning to really solidify.
Why’s (Poignant) Guide to Ruby was fun to read. There is even a soundtrack!
The best way I can describe it (the characters, aesthetic, music, all of it) is “What if Pendleton Ward wrote a programming manual?”
This is not a great programming book. It’s a major achievement of human creativity, which happens to teach you Ruby
Well I have read many comments on this, I observed that almost all books are different.
Well there are lots of excellent books available over the internet from which you can start your preparation and can be a master in almost any programming language.
Well as per me you should read below books, these will help you to understand almost each programming languages basics and many more.
- Clean Code Written by Robert C Martin.
- The Art of Computer Programming.
- Programming Pearls.
Seven Languages in Seven Weeks, by Bruce Tate
This book describes seven programming languages. My favorite ones are Prolog, Clojure and Erlang. After reading this book, José Valim decided to create Elixir, a language that runs on BEAM, the Erlang virtual machine.
Surprised this one hasn’t been mentioned yet: Clean Architecture by Uncle Bob. I found that this deepened my understanding of where the SOLID principles come from, as well as being a good place to start understanding high level architecture principles.
Head First Design Patterns was a great introduction to design patterns in Java. It’s not technical and structured to teach effeciently.
Data-Oriented Programming by Yehonatan Sharvit
Grokking Simplicity by Eric Normand
They are still currently on my reading list but i can already highly recommend based on the community response… and i happen to know the authors personally and theyre both amazing guys!