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.
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 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.
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.
Hi everyone
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.
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.
These 2 deserve a mention because they are not widely known. They were both written by Clojure developers to teach the philosophy of programming with just data and functions, but it uses JavaScript to be more widely accessible.
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!