"Доверяй, но проверяй" ("Trust, but verify")
-- Russian Proverb
People are often wrong: we make bad bets, buy property before housing bubbles burst, and go on fad diets. We make poor decisions, sometimes on the advice of others (going to the Lephrechaun Museum in Dublin is 2 hours of my life that I'll never get back).
In spite of this anecdotal evidence, listening to the advice of those who have had different life experiences from us is a supremely valuable activity. If someone else has taken the time to read an entire book and strongly recommends it, maybe we should listen. If 100 people have done so and all of them recommend it, it's almost definitely worth your time. Following this logic, and being the extremely type-A person that I am, I've constructed a meta-list: a list of the books recommended most often in lists of recommended books.
I've compiled the suggestions of dozens of programmers, managers, career coaches, and other industry professionals to bring you a list of the 20 most-recommended books for software developers, with some short summaries (courtesy of Amazon). All of the data I used to compile this list is freely available as a single Excel workbook on GitHub. As of Saturday 19 October 2019, my meta-list cites 36 sources and includes recommendations for 297 unique books.
I did this mostly to help myself organise the books I want to read in the near future, but also to help out anyone else who wants to build a good foundation, but might be frustrated by all of the different lists on the Internet making different recommendations. Why trust one of them when you can take everyone's opinion in aggregate? You're welcome, Internet.
Here are the rules of thumb I used to compose this list:
As often as possible, articles asking for recommendations are not included.
Recommendations for different editions of a book are considered recommendations for the same book, but recommendations for multiple editions within one article are not double-counted.
Articles where an author simply lists books they've read or are currently reading are not included. The article must be presented as a list of recommended books.
Lists which are geared toward a particular level of developer (i.e. CTO, junior developer, newbie) are included.
I tried to skip lists which are geared toward a particular technology (i.e. PHP, CSS, Java), but some lists have these types of books interspersed; every book on an included article is included in my list of books, even if it's a novel, technology-specific, or not related to programming.
Although they may be interpreted slightly differently by some, for the purposes of this list, "software developer", "software engineer", "developer", "programmer", and "coder" are all equivalent. Articles geared toward any of the above are included, unless point (5) also applies.
This is -- as far as I can tell -- the most complete meta-list of software development book recommendations anywhere on the Internet. I went through every result Google returned for "books software developer" as well as every article with "books" in the title on Dev.To and this is the result. If you find a list of book recommendations for general software development which isn't included in my sources spreadsheet on GitHub, please let me know. I'd be happy to add it to the list if it meets my criteria outlined above.
And, without further ado, the list:
#20. Patterns of Enterprise Application Architecture
by Martin Fowler (3-way tie with #19 and #18)
13.0% recommended
This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts.
Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them.
-- Amazon.com
#19. Clean Architecture: A Craftsman's Guide to Software Structure and Design
by Robert C. "Uncle Bob" Martin
13.0% recommended (3-way tie with #20 and #18)
- Learn what software architects need to achieve–and core disciplines and practices for achieving it
- Master essential software design principles for addressing function, component separation, and data management
- See how programming paradigms impose discipline by restricting what developers can do
- Understand what’s critically important and what’s merely a “detail”
- Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications
- Define appropriate boundaries and layers, and organize components and services
- See why designs and architectures go wrong, and how to prevent (or fix) these failures
-- Amazon.com
#18. The Art of Computer Programming
by Donald Knuth
13.0% recommended (3-way tie with #20 and #19)
This magnificent tour de force presents a comprehensive overview of a wide variety of algorithms and the analysis of them. Now in its third edition, The Art of Computer Programming... contains substantial revisions by the author and includes numerous new exercises.
Although this book was conceived several decades ago, it is still a timeless classic. One of the book's greatest strengths is the wonderful collection of problems that accompany each chapter. The author has chosen problems carefully and indexed them according to difficulty. Solving a substantial number of these problems will help you gain a solid understanding of the issues surrounding the given topic. Furthermore, the exercises feature a variety of classic problems.
-- Amazon.com
#17. CODE: The Hidden Language of Computer Hardware and Software
by Charles Petzold
15.9% recommended (tied with #16)
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It's a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today's world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
-- Amazon.com
#16. Agile Software Development: Principles, Patterns, and Practices
by Robert C. "Uncle Bob" Martin
15.9% recommended (tied with #17)
Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application—from the early stages of analysis, through the low-level design and into the implementation. Walks readers through the designer's thoughts — showing the errors, blind alleys, and creative insights that occur throughout the software design process. The book covers: Statics and Dynamics; Principles of Class Design; Complexity Management; Principles of Package Design; Analysis and Design; Patterns and Paradigm Crossings. Explains the principles of OOD, one by one, and then demonstrates them with numerous examples, completely worked-through designs, and case studies. Covers traps, pitfalls, and work arounds in the application of C++ and OOD and then shows how Agile methods can be used. Discusses the methods for designing and developing big software in detail. Features a three-chapter, in-depth, single case study of a building security system. For Software Engineers, Programmers, and Analysts who want to understand how to design object oriented software with state of the art methods.
-- Amazon.com
#15. Introduction to Algorithms
by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
17.4% recommended (3-way tie with #14 and #13)
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.
The first edition became a widely used text in universities worldwide as well as the standard reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, substantial additions to the chapter on recurrence (now called “Divide-and-Conquer”), and an appendix on matrices. It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many exercises and problems have been added for this edition
-- Amazon.com
#14. Head First Design Patterns: A Brain-Friendly Guide
by Eric Freeman, Elizabeth Robson, Kathy Sierra, and Bert Bales
17.4% recommended (3-way tie with #15 and #13)
At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns—now updated for Java 8—shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.
-- Amazon.com
#13. Cracking the Coding Interview: 189 Programming Questions and Solutions
by Gayle Laakmann McDowell
17.4% recommended (3-way tie with #15 and #14)
- 189 programming interview questions, ranging from the basics to the trickiest algorithm problems.
- A walk-through of how to derive each solution, so that you can learn how to get there yourself.
- Hints on how to solve each of the 189 questions, just like what you would get in a real interview.
- Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen.
- Extensive coverage of essential topics, such as big O time, data structures, and core algorithms.
- A behind-the-scenes look at how top companies like Google and Facebook hire developers.
- Techniques to prepare for and ace the soft side of the interview: behavioral questions.
- For interviewers and companies: details on what makes a good interview question and hiring process.
-- Amazon.com
#12. Don't Make Me Think: A Common Sense Approach to Web Usability
by Steve Krug
18.8% recommended (tied with #11)
Don't Make Me Think is a book by Steve Krug about human–computer interaction and web usability. The book's premise is that a good software program or web site should let users accomplish their intended tasks as easily and directly as possible. Krug points out that people are good at satisficing, or taking the first available solution to their problem, so design should take advantage of this. He frequently cites Amazon.com as an example of a well-designed web site that manages to allow high-quality interaction, even though the web site gets bigger and more complex every day.
The book itself is intended to be an example of concision (brevity) and well-focused writing. The goal, according to the book's introduction, was to make a text that could be read by an executive on a two-hour airplane flight.
-- Wikipedia
#11. The Clean Coder: A Code of Conduct for Professional Programmers
by Robert C. "Uncle Bob" Martin
18.8% recommended (tied with #12)
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.
In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
-- Amazon.com
#10. Soft Skills: The Software Developer's Life Manual
by John Sonmez
23.2% recommended (tied with #11)
Soft Skills: The Software Developer's Life Manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.
-- Amazon.com
#9. Peopleware: Productive Projects and Teams
by Tom DeMarco and Timothy Lister
23.2% recommended (tied with #12)
Peopleware is a popular book about software organization management. The first chapter of the book claims, "The major problems of our work are not so much technological as sociological in nature". The book approaches sociological or 'political' problems such as group chemistry and team jelling, "flow time" and quiet in the work environment, and the high cost of turnover. Other topics include the conflicts between individual work perspective and corporate ideology, corporate entropy, "teamicide" and workspace theory.
The authors presented most subjects as principles backed up by some concrete story or other information. As an example, the chapter "Spaghetti Dinner" presents a fictional example of a manager inviting a new team over for dinner, then having them buy and prepare the meal as a group, in order to produce a first team success. Other chapters use real-life stories or cite various studies to illustrate the principles being presented
-- Wikipedia
#8. Programming Pearls
by Jon Bentley
26.1% recommended
Computer programming has many faces. Fred Brooks paints the big picture in The Mythical Man Month; his essays underscore the crucial role of management in large software projects. At a finer grain, Steve McConnell teaches good programming style in Code Complete. The topics in those books are the key to good software and the hallmark of the professional programmer. Unfortunately, though, the workmanlike application of those sound engineering principles isn't always thrilling -- until the software is completed on time and works without surprise.
The columns in this book are about a more glamorous aspect of the profession: programming pearls whose origins lie beyond solid engineering, in the realm of insight and creativity. Just as natural pearls grow from grains of sand that have irritated oysters, these programming pearls have grown from real problems that have irritated real programmers. The programs are fun, and they teach important programming techniques and fundamental design principles.
-- Amazon.com
#7. Working Effectively with Legacy Code
by Michael Feathers
27.5% recommended (tied with #6)
Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. Topics covered include:
- Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance
- Getting legacy code into a test harness
- Writing tests that protect you against introducing new problems
- Techniques that can be used with any language or platform—with examples in Java, C++, C, and C#
- Accurately identifying where code changes need to be made
- Coping with legacy systems that aren't object-oriented
- Handling applications that don't seem to have any structure
-- Amazon.com
#6. The Mythical Man-Month: Essays on Software Engineering
by Frederick P. Brooks
27.5% recommended (tied with #7)
Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.
-- Amazon.com
read my review of The Mythical Man-Month on Dev.To
#5. Refactoring: Improving the Design of Existing Code
by Martin Fowler
33.3% recommended (tied with #4)
For more than twenty years, experienced programmers worldwide have relied on Martin Fowler’s Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.
This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape. Refactoring, Second Edition, features an updated catalog of refactorings and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes.
Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.
- Understand the process and general principles of refactoring
- Quickly apply useful refactorings to make a program easier to comprehend and change
- Recognize “bad smells” in code that signal opportunities to refactor
- Explore the refactorings, each with explanations, motivation, mechanics, and simple examples
- Build solid tests for your refactorings
- Recognize tradeoffs and obstacles to refactoring
-- Amazon.com
#4. Design Patterns: Elements of Reusable Object-Oriented Software
by Erich Gamma, Richard Helm, and Ralph Johnson
33.3% recommended (tied with #5)
This book isn't an introduction to object-oriented technology or design. Many books already do a good job of that...this isn't an advanced treatise either. It's a book of design patterns that describe simple and elegant solutions to specific problems in object-oriented software design....Once you understand the design patterns and have had an "Aha!" (and not just a "Huh?" experience with them, you won't ever think about object-oriented design in the same way. You'll have insights that can make your own designs more flexible, modular, reusable, and understandable--which is why you're interested in object-oriented technology in the first place, right?
-- Amazon.com
#3. Code Complete: A Practical Handbook of Software Construction
by Steve McConnell
44.9% recommended
Widely considered one of the best practical guides to programming, Steve McConnell’s original Code Complete has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking—and help you build the highest quality code.
- Discover the timeless techniques and strategies that help you:
- Design for minimum complexity and maximum creativity
- Reap the benefits of collaborative development
- Apply defensive programming techniques to reduce and flush out errors
- Exploit opportunities to refactor—or evolve—code, and do it safely
- Use construction practices that are right-weight for your project
- Debug problems quickly and effectively
- Resolve critical construction issues early and correctly
- Build quality into the beginning, middle, and end of your project
-- Amazon.com
#2. The Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt and Dave Thomas
47.8% recommended
Programmers are craftspeople trained to use a certain set of tools (editors, object managers, version trackers) to generate a certain kind of product (programs) that will operate in some environment (operating systems on hardware assemblies). Like any other craft, computer programming has spawned a body of wisdom, most of which isn't taught at universities or in certification classes. Most programmers arrive at the so-called tricks of the trade over time, through independent experimentation. In The Pragmatic Programmer, Andrew Hunt and David Thomas codify many of the truths they've discovered during their respective careers as designers of software and writers of code.
Some of the authors' nuggets of pragmatism are concrete, and the path to their implementation is clear. They advise readers to learn one text editor, for example, and use it for everything. They also recommend the use of version-tracking software for even the smallest projects, and promote the merits of learning regular expression syntax and a text-manipulation language. Other (perhaps more valuable) advice is more light-hearted. In the debugging section, it is noted that, "if you see hoof prints think horses, not zebras." That is, suspect everything, but start looking for problems in the most obvious places. There are recommendations for making estimates of time and expense, and for integrating testing into the development process. You'll want a copy of The Pragmatic Programmer for two reasons: it displays your own accumulated wisdom more cleanly than you ever bothered to state it, and it introduces you to methods of work that you may not yet have considered. Working programmers will enjoy this book.
Finally, the single most-recommended book for software developers:
#1. Clean Code: A Handbook of Agile Software Craftsmanship
by Robert C. "Uncle Bob" Martin
52.2% recommended
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.
What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
Readers will come away from this book understanding
- How to tell the difference between good and bad code
- How to write good code and how to transform bad code into good code
- How to create good names, good functions, good objects, and good classes
- How to format code for maximum readability
- How to implement complete error handling without obscuring code logic
- How to unit test and practice test-driven development
- This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
-- Amazon.com
The above "recommendation percentages" are the fraction of all lists surveyed which contain that book. So even if a book is only "12.5% recommended", it means that, on average, 1 out of every 8 developers has read that book and recommends it to other developers. All of the books above pass that 1-in-8 threshold.
More surprisingly are the books in the top 10. Books #10 through #6 are recommended by 1 in every 4 developers on average. Books #5 and #4 are recommended by 1 in every 3. And the top three books, Code Complete, The Pragmatic Programmer, and Clean Code, are recommended by about every other software developer. That is an immense impact on one of the most critical industries in modern society. If you're looking to strengthen your software development knowledge and you haven't yet read these three books, there's a good chance about half of your coworkers would recommend that you do so.
If you enjoyed the above article, maybe you'd like to follow my work on Dev.To? Or read my dumb tweets on The Tweeter? Or buy me a cup of coffee? (I have a debilitating caffeine addiction.)
Anyway, thanks for stopping by!
Top comments (41)
You've got some excellent recommendations in there.
I don't think much of Robert Martin, but given your opening, I suppose an exception could be made. Trust but verify. The advice I hear time and again, at least from anyone who isn't a loyal disciple of Uncle Bob, is basically "read his work with a critical eye." Bring your own discernment so you can separate out objective fact from his own personal opinion...seeing as he generally can't. If you can do that, there's plenty of good ideas to be gleaned. (If you can't, there are plenty of other more objective books and articles on Clean Code/Architecture and Agile, which are valuable concepts in and of themselves.)
One book I don't see, but strongly recommend, is Dreaming in Code by Scott Rosenberg. It's a chronicle of a real life open source project that, some might say, was fated from the start. It shows a lot of the concepts outlined in these books at play in real world software development stories. He cites Knuth, Weinberg, Raymond, and many others.
I'd also recommend The Cathedral and the Bazaar by Eric S. Raymond for anyone who wants to understand the philosophy and history of Open Source software. It's the watershed book that started the entire movement, so it's worth reading.
I'm always suspicious of lists like this that end up mostly Uncle Bob and Martin Fowler (or any other recognizable name in tech). No industry should be run on the words of a few people. It's cool to read their words and make your own observations, but that should be the goal of any reading rather than putting power in the hands of influencers.
The Cathedral and the Bazaar is an awesome book!
Thanks for recommending Dreaming in Code. It's on my reading list.
Thanks for the recommendations, Jason. I'll add them to my to-read list!
A MUST have to read in the bookshelf of any developers is The Phoenix Project
In fact this book should be read by anyone working in a company that produces software, this is not a book just for the DevOps guy.
I'm always suspicious of lists that recommend The Art of Computer Programming. Having spent more than 100 hours on volume one without finishing it, I can say that Knuth's own estimation that fewer than 100 people have read it end-to-end is probably true.
Each one of these books in valuable and every developer should probably read some of them, but each "high-theory" book you read is time taken away from learning practical, hands-on skills. I'm glad I read the top three back when all I was sacrificing was quality time with Access 2 and Visual Basic 3.
Just for anyone interest The Pragmatic Progammer book had its 20th anniversary edition, that have a more fresh and update view of todays world.
Taken from another dev.to post:
And in my opinion this SHOULD be the first book for a developer to read.
Do not read "The Art of Computer Programming". It is the "War and Peace" of computer science.
It is a shame it will never be finished. It is already a masterpiece of programming principles.
It is however not easy to grok. This is something you should read on a nice autumn Sunday afternoon with a whiskey, when you are 20-30 years into your career.
I tried to read it and it's so dry I am now a shrivelled husk of my former self. Note that inclusion on this list doesn't mean I personally recommend these books, just that other people seem to like them.
I agree, lamentably. I read the 1/3 of the first volume, and I that was as far as I could slog through.
So even if a book is only "12.5% recommended", it means that, on average, 1 out of every 8 developers has read that book and recommends it to other developers.
It means that 1 out of every 8 people who published the lists you chose recommends it. Not the same thing.
Good list, anyway.
Yeah that's fair enough. If you assume that the reading habits / taste in books of developers who write these lists aren't significantly different from those who don't, though, then they're a representative sample of the whole. Maybe I should put the word approximately in there somewhere...
Not to pick nits, but I assume that the kind of people who write this kind of lists read a lot of programming books, probably more than non-list writers. So, again, the 1/8 and such only really applies to the list writers, not devs as a whole. As a sample, it might be representative of which books are more popular, but not of the absolute amount of non-list writers who have read and recommended the books.
I still like the article, though.
You got the first 2 positions the other way around.
First you need to read The Pragmatic Programmer book, and then the Clean Code book, because Clean Code references the Pragmatic Programmer several times.
Another book that anyone should read, is The Bottleneck Rules, and its free.
This book will show you why the bottleneck may not be where everyone sees it is, but instead is somewhere else in the pipeline of your organization.
From GoogReads:
This is a book that is quick to read and it will change the way you look into bottlenecks, not only the ones in the organizations, but the ones in your code.
It really changes the way you look into stuff.
Pragmatic Programmer 20th edition! Awesome.
Mine hasn't been delivered yet! Pre-ordered though 😎
Same. I'm waiting for the hardcover which should ship in 2 weeks. I wonder what has changed from the original.
I do not have the habit of reading books ☹️. I lose patience a lot.
I enjoy live coding examples and conference talks.
I hope a list of best talks and videos be published as well for people like me 🙂
I actually came back to this list after the Sonmez's story, and after reading your Should we separate the artist from its art? article @awwsmm .
It's interesting to see, and unfortunately not surprising, that most of these books are writing by old white men. Don't get me wrong, there are some great books in this list, books I own myself and that I enjoy. This is the industry we have, dominated by white dudes, who had the most exposure and opportunities over the years. It's only normal that they come up so often in a list like that.
However, I think, and I'm pretty sure @awwsmm will agree with that, we would all be better off promoting books from people coming from different origins. So, here a proposition, is it possible to make such a list while excluding people that already had a good amount of exposure and privilege? We've heard them, and for some in that list, we also know what kind of people they are. Just a thought.
Keep up the good work Andrew ❤️
Nice list. I also have a list of all time software engineer book at techread.dev
Quite cool books are given here, but unfortunately, they will be as boring to a large enough circle of professionals as they are to beginners. Because in today's world, there is more value in various courses, which are much more effective in squeezing out information. Take automation testing courses, and for example, they are more effective than any book, any of them.
Thanks for taking the time to compile this list, I love these sort of data-driven listings, while they have their weaknesses (as noted in some of the comments) they are still valuable in understanding what is popular.
I'd be interested to see if you collated by year if the order of the recommendations changed. One of the issues with recommended book lists is that they tend to be self-reinforcing, people read books on someone's list and then recommend them.
A number of the books on the list are quite old in coding years, while this doesn't mean they don't deserve to remain on the list...I wonder if they would trend less highly given some sort of curve for recency of recommendation?
I thought about this as I was making this list, but wasn't able to find enough recommendation lists to do any sort of slicing. You could do something similar with data from big websites with lots of reviews like Amazon. Look at the frequency and median value of reviews over time, and weight more strongly a book with the same median rating, but more overall reviews in a given time period. That's a slightly different question than the one I was trying to answer in this post, though.
I like how this top 20 list was collated. Data Driven Book Recommendation (DDBR). :-)
Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more