Skip to content
loading...

The 25 most recommended programming books of all-time.

Pierre on February 18, 2020

This article is a follow up of the one I did about the the most recommended startup books of all-time. If you've read this one recently. I guess y... [Read Full]
markdown guide
 

I always like to add "Dreaming in Code" by Scott Rosenberg.

In any case, I just added several more books to my list of things to read! Thanks for compiling this list.

(Side note: Not sure I'd take John Sonmez's or Robert Martin's word for anything, especially after some of the recent fallout.)

 

Dreaming in Code isn't really about the act of programming though. It's a chronicling of how a project, and business, failed.

But I do recommend it too. It's a really good and interesting read. And for the younger people it's also a nice dip in the history of software development in late 90s/early 2000.

 

Ah, but it is about programming, specifically how unpredictable programming is. It's helped me time and again with checking my assumptions and cognitive biases as a software developer.

 

In this case we should also mention The Phoenix Project ;)

 

Not sure I'd take John Sonmez's or Robert Martin's word for anything, especially after some of the recent fallout.

Sorry, I must not have been in the loop somehow. What is this about?

 

Despite that the two books Clean Code and Clean Coder are good books.

A long while ago Blaine reviewed Clean Architecture by Uncle Bob here on DEV. It apparently was not up to the same standard. In fact, not even good. That, and the twitter mess highlighted in the article you linked, and the crap articles on his website, is reason for me to have written off Uncle Bob.

I've even heard that Clean Code and Clean Coder have a dangerous mix of good and bad ideas, so they're only "good reads" if you already know enough about coding to sort the wheat from the chaff. I prefer to learn clean coding from anyone but Martin.

It has been a while since I read it. But I do not recall any dangerous ideas. There are a bunch of things in it I do not agree with. But that's common with most books. That's why you should read multiple books by various people on the same subjects so that you can form your mind on different perspectives. There is no single truth.

Clean Code does contain a disclaimer, although in a rather long form. Here's the most important bit of it.

Consider this book a description of the Object Mentor School of Clean Code. The techniques and teachings within are the way that we practice our art. We are willing to claim that if you follow these teachings, you will enjoy the benefits that we have enjoyed, and you will learn to write code that is clean and professional. But don’t make the mistake of thinking that we are somehow “right” in any absolute sense. There are other schools and other masters that have just as much claim to professionalism as we. It would behoove you to learn from them as well.

Indeed, many of the recommendations in this book are controversial. You will probably not agree with all of them. You might violently disagree with some of them. That’s fine. We can’t claim final authority. On the other hand, the recommendations in this book are things that we have thought long and hard about. We have learned them through decades of experience and repeated trial and error. So whether you agree or disagree, it would be a shame if you did not see, and respect, our point of view.

Note, I didn't say there were "dangerous ideas", rather that the mix of good and bad ideas was dangerous. Slight difference in word order, major difference in meaning.

What I'm saying is, you can really only weigh the ideas in Martin's work if you're already well versed in software development. When you're at the "absorb knowledge like a sponge" stage, such a mixed bag is dangerous, because you don't yet have the ability to separate the wheat from the chaff. No book can ever be taken entirely at face value, but Martin's work is particularly inconsistent in its reliability, in part due to his inability to separate his opinion from objective fact.

I didn't say there were "dangerous ideas"

D'oh, guess I wasn't fully awake yet ;)

I hear ya.

Slides a cup of hot coffee and a plate of donuts to Michiel.

 

Well :) Some of these books are really important for developers nowadays (e.g. first third part of "Clean Code").

On the other hand there is no practical sense in reading some others, e.g. "Structure and Interpretation of Computer Programs" or "Art of Computer Programming". Really many people recommend them, but very few really read. They use very specific languages for examples and cover many concepts nowadays either outdated or unnecessary. They were hits decades ago, but now more of historical interest, and, being quite tough, would be real waste of time, moreover that what is useful in them is mainly covered in other, more modern books.

The same may be told about most books on algorithms. I really like algorithms (they are my passion), but unless one is looking for CS degree and scientific work, one needs only shallow understanding of time/space complexity nowadays and brief acquaintance with most popular data structures and sort methods. Both of those aren't usually needed for practical tasks in industry (especially in frontend / webdev), but could be easily asked at interviews.

 

Really many people recommend them, but very few really read

This pretty much sums up 90% of the "best books to read" listicles I've come across.

Don't waste your time reading a book if all you're going to do is tell others that you read said book.

 

I always have a hard time making reviews or the opinion of the collective the main measure of quality. As in, I don't care about votes, I care about a good review with arguments on why something is good or something is not that good.

Even when a book is not read that often, it doesn't mean it's a book of less quality or less important information.

I discovered some books, that are most well worth reading for developers and many people will never find them, because these don't appear on lists like these.

For example:

  • The psychology of computer programming - Gerald Weinberg
  • Exploring requirements - Gerald Weinberg

Yes, both by Gerald Weinberg, but he has written more quality books than Fowler and Martin together.

Another great author is Juval Löwy for which I would recommend all his books. Especially his latest:

  • Righting Software - Juval Löwy

I would not be surprised if the latter will be hitting the next top 25 list.

 

Adding some of these to my Goodreads. Have you considered making a shared list on there? Makes it easy to add to your Want to Read list 👍

I have read a handful of these, I'm in the middle of Code Complete. Pragmatic Programmer was already on my list at the recommendation from a friend as well.

 

I have a handful off of this list. Cracking the Coding Interview is obviously great for trying to get a handle on those kinds of questions. The Pragmatic Programmer has been a great read so far!

My copy of "Don't Make Me Think" arrived today and I'm excited to get started with it.

 

I'm reading Code Complete by Steve McConnell and I have to say it's pretty good. It covers OOP concepts that I haven't be able to understand until now and even though I'm a JavaScript developer I'm glad that I now understand the basics of OOP.

 

I would also like to promote this tiny book. It provides many real world examples of computer programming by devs that were engaged in tech leading companies. Furthermore it provides insights you can‘t learn from theoretic approached books/sources.

shop.oreilly.com/product/978059680...

 
 

I'm surprised that The Phoenix Project isn't on here - maybe still too early?

Thanks for providing the list!

 

Thank you !
Didn't Robert C. Martin wrote 2 books of the list ? So he would be the third author after Marting Fowler and Steve McConnell to have multiple books no ?

 

You are correct.

I missed it!

Corrected now.

 

Great list. I’d also recommend:
Growing Object-Oriented Software Guided by Tests by Freeman and Pryce

 

Awesome work!

I'd definitely recommend The Pragmatic Programmer to anyone who hasn't read it. The first technical book I read, and still my favourite.

 
 

Just wanted to point out a typo in the conclusion:

s/Marting/Martin

Also, thanks for the wonderful collection!

 

Nice list. I can't just believe you did not include "Smalltalk Best Practice Patterns" from Kent Beck. It's an incredible book and it does not apply only to Smalltalk. I can only recommend this to everyone.

 

I feel like I just walked through the Computer Programming section of Powells Books

 

i feel such an idiot now :( ive only read 'dont make me think'

 

Can I tell you a secret? I did not even know about the first one.

 
 

Well.. it always a much easier to work with the devs and their code who actually read at least clean code and pragmatic programming or at least knows what is the message there.

 

Thank you for the post! I'll read some of them and probably contribute here at deve.to after I improve myself with these delicious books xD

 
 

I created a website for this purpose. You can check at techread.dev

 
code of conduct - report abuse