DEV Community

Cover image for The 25 most recommended programming books of all-time.

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...
Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

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.)

Collapse
 
elmuerte profile image
Michiel Hendriks • Edited

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.

Collapse
 
codemouse92 profile image
Jason C. McDonald

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.

Collapse
 
richstoneio profile image
Rich Steinmetz

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

Collapse
 
aschwin profile image
Aschwin Wesselius

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?

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Here's the best summary. (Read Ben's comment there; the bulk of information is there.)

There's also this, which gives the entire timeline:

medium.com/@cherp/propaganda-other...

Thread Thread
 
elmuerte profile image
Michiel Hendriks

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.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald

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.

Thread Thread
 
elmuerte profile image
Michiel Hendriks

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.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

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.

Thread Thread
 
elmuerte profile image
Michiel Hendriks

I didn't say there were "dangerous ideas"

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

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

I hear ya.

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

Collapse
 
rodiongork profile image
Rodion Gorkovenko

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.

Collapse
 
aleksandrhovhannisyan profile image
Aleksandr Hovhannisyan

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.

Collapse
 
aschwin profile image
Aschwin Wesselius

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.

Collapse
 
kamranayub profile image
Kamran Ayub

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.

Collapse
 
memitaru profile image
Ami Scott (they/them)

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.

Collapse
 
hugoliconv profile image
Hugo

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.

Collapse
 
muchwowdodge profile image
Anton Rhein • Edited

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...

Collapse
 
dangoslen profile image
Dan Goslen

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

Thanks for providing the list!

Collapse
 
drm317 profile image
Daniel Marlow • Edited

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

Collapse
 
pamprog profile image
PamProg

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 ?

Collapse
 
daolf profile image
Pierre

You are correct.

I missed it!

Corrected now.

Collapse
 
julianogtz profile image
Juliano Pereira Lima

Pragmatic Programmer is amazing o/

Great list.

Collapse
 
martinezpeck profile image
Mariano Martinez Peck

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.

Collapse
 
murrayvarey profile image
MurrayVarey

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.

Collapse
 
daolf profile image
Pierre

Thank you, will do it asap :)

Collapse
 
sivaraam profile image
Kaartic Sivaraam

Just wanted to point out a typo in the conclusion:

s/Marting/Martin

Also, thanks for the wonderful collection!

Collapse
 
lshanel profile image
Shane Hamilton

I really like this list, Id like to add Category Theory for Programmers as a really good book for programmers. It also has an accompanying lecture series on youtube. I think most programmers will put Category Theory in the functional paradigm box but I found learning and understanding mathematical concepts like Group and Category theory is better understood as understanding abstraction and I found it really helped all my coding OOP and Functional.

Collapse
 
rcneupane profile image
Ram Chandra Neupane

"Getting Real" is also a fantastic read.

Collapse
 
realtrevorfaux profile image
Trevor Fox

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

Collapse
 
domas profile image
Domas Juodele

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.

Collapse
 
osde8info profile image
Clive Da

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

Collapse
 
daolf profile image
Pierre • Edited

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

Collapse
 
edgardbraz profile image
edgardbraz

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

Collapse
 
techread_dev profile image
techread

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

Collapse
 
moomooya profile image
moomooya • Edited

Great list.
May I summarize and introduce in Japanese?

Collapse
 
lytecyde profile image
Mik Seljamaa 🇪🇪

any links in japanese ?