100 books like Why Software Sucks...and What You Can Do About It

By David S. Platt,

Here are 100 books that Why Software Sucks...and What You Can Do About It fans have personally recommended if you like Why Software Sucks...and What You Can Do About It. Shepherd is a community of 10,000+ authors and super readers sharing their favorite books with the world.

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

Book cover of The Clean Coder: A Code of Conduct for Professional Programmers

Jesse Liberty Author Of Git for Programmers: Master Git for effective implementation of version control for your programming projects

From my list on for creating great software.

Why am I passionate about this?

I have been coding for over 30 years. I’ve seen some miserable interfaces, and some large programs that collapse under their own weight. Software was, at one point, notorious for being late, over budget, and unreliable. These books have helped turn the corner on these failings, and I have found each of them very valuable in my day-to-day programming. While you can learn technique and even languages online, the kind of insight found in these books is rare and worth spending time and money on.

Jesse's book list on for creating great software

Jesse Liberty Why did Jesse love this book?

Robert (Uncle Bob) Martin is the recognized go-to person for books on creating quality code. This is the first in a series of books that include The Clean Coder, Clean Architecture, and a number more. His advice and guidance in Clean Code have made a significant difference in my personal coding habits and best practices. This is an indispensable book for all programmers, no matter what they are coding or how much experience they have

By Robert C. Martin,

Why should I read it?

1 author picked The Clean Coder as one of their favorite books, and they share why you should read it.

What is this book about?

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…


Book cover of Clean Agile: Back to Basics

Jesse Liberty Author Of Git for Programmers: Master Git for effective implementation of version control for your programming projects

From my list on for creating great software.

Why am I passionate about this?

I have been coding for over 30 years. I’ve seen some miserable interfaces, and some large programs that collapse under their own weight. Software was, at one point, notorious for being late, over budget, and unreliable. These books have helped turn the corner on these failings, and I have found each of them very valuable in my day-to-day programming. While you can learn technique and even languages online, the kind of insight found in these books is rare and worth spending time and money on.

Jesse's book list on for creating great software

Jesse Liberty Why did Jesse love this book?

Many of us have fully embraced agile programming, but doing it well, really well, requires discipline. In Clean Agile a number of world-class programmers discuss what it takes to put Agile programming into practice with y our team. This book has made me a much more “agile” agile programmer, and the section on SCRUM is worth the price of the book.

By Robert C. Martin,

Why should I read it?

1 author picked Clean Agile as one of their favorite books, and they share why you should read it.

What is this book about?

Agile Values and Principles for a New Generation
"In the journey to all things Agile, Uncle Bob has been there, done that, and has the both the t-shirt and the scars to show for it. This delightful book is part history, part personal stories, and all wisdom. If you want to understand what Agile is and how it came to be, this is the book for you."
-Grady Booch
"Bob's frustration colors every sentence of Clean Agile, but it's a justified frustration. What is in the world of Agile development is nothing compared to what could be. This book is…


Book cover of Software Architecture with C# 10 and .NET 6

Jesse Liberty Author Of Git for Programmers: Master Git for effective implementation of version control for your programming projects

From my list on for creating great software.

Why am I passionate about this?

I have been coding for over 30 years. I’ve seen some miserable interfaces, and some large programs that collapse under their own weight. Software was, at one point, notorious for being late, over budget, and unreliable. These books have helped turn the corner on these failings, and I have found each of them very valuable in my day-to-day programming. While you can learn technique and even languages online, the kind of insight found in these books is rare and worth spending time and money on.

Jesse's book list on for creating great software

Jesse Liberty Why did Jesse love this book?

The .Net world is changing fast, and this is a terrific book to help you keep up. This tome covers so many topics it is hard to list them all, but while it doesn’t go super-deep into any one topic it does provide enough of an overview to understand what the technology is and how you might put it to work.  Software Architecture with C# 10 and .NET 6 has helped me understand what exists and what is coming and to decide where to put my mental energy

By Gabriel Baptista, Francesco Abbruzzese,

Why should I read it?

1 author picked Software Architecture with C# 10 and .NET 6 as one of their favorite books, and they share why you should read it.

What is this book about?

Design scalable and high-performance enterprise applications using the latest features of C# 10 and .NET 6

Key Features Gain comprehensive software architecture knowledge and the skillset to create fully modular apps Solve scalability problems in web apps using enterprise architecture patterns Master new developments in front-end architecture and the application of AI for software architectsBook Description

Software architecture is the practice of implementing structures and systems that streamline the software development process and improve the quality of an app. This fully revised and expanded third edition, featuring the latest features of .NET 6 and C# 10, enables you to acquire…


Book cover of Unit Testing Principles, Practices, and Patterns

Jesse Liberty Author Of Git for Programmers: Master Git for effective implementation of version control for your programming projects

From my list on for creating great software.

Why am I passionate about this?

I have been coding for over 30 years. I’ve seen some miserable interfaces, and some large programs that collapse under their own weight. Software was, at one point, notorious for being late, over budget, and unreliable. These books have helped turn the corner on these failings, and I have found each of them very valuable in my day-to-day programming. While you can learn technique and even languages online, the kind of insight found in these books is rare and worth spending time and money on.

Jesse's book list on for creating great software

Jesse Liberty Why did Jesse love this book?

There are literally dozens of good books on unit testing, but I highly recommend reading at least one. Unit testing is one of the most important practices that a great many programmers do not do. It isn’t easy, once you get past tiny programs, but it is absolutely essential if you wish to create robust code. Without unit testing you fix one thing over here, and break it over there. With good unit testing you know that your program will be flexible and easily evolved.

By Vladimir Khorikov,

Why should I read it?

1 author picked Unit Testing Principles, Practices, and Patterns as one of their favorite books, and they share why you should read it.

What is this book about?

Unit Testing: Principles, Patterns and Practices shows you how to refine your existing unit tests by implementing modern best practices. You'll learn to spot which tests are performing, which need refactoring, and which need to be deleted entirely! Upgrade your testing suite with new testing styles, good patterns, and reliable automated testing.



Unit Testing: Principles, Practices and Patterns is a practical guide to modern unit testing best practices. Microsoft MVP Vladimir Khorikov takes you hands-on with examples of the ideal unit test and unit testing practices, building your skills step by step on a solid foundation.



Key Features

* A…


Book cover of User Story Mapping

Gojko Adzic Author Of Impact Mapping: Making a Big Impact with Software Products and Projects

From my list on for new software product managers.

Why am I passionate about this?

I’m a software developer turned independent software vendor, learning about product management as a way to launch more successful products. I’m a co-founder of MindMup, a popular collaboration tool used by millions of students and schoolchildren worldwide, and Narakeet, an innovative video maker for people who are not video professionals. The books from this list helped me create successful products that users love, and successfully compete with companies that have several orders of magnitude more staff and resources. 

Gojko's book list on for new software product managers

Gojko Adzic Why did Gojko love this book?

Patton’s book is an amazing introduction to modern product management techniques, both from a practical and theoretical view. It introduces story mapping as a practical technique that you’ll be able to use immediately to start making sense of large plans and visualizing product ideas. More importantly, Patton uses this technique as an excuse to introduce readers to principles such as focusing on outcomes over outputs, working closely with users and iterative delivery, and experimentation. 

The book is a gateway drug for new product managers. It is an easy read and will get you hooked on modern ways to ensure that both users and stakeholders get value from your products. It helps people get started easily in a new role and provides a great foundation for going deeper into this field.

By Jeff Patton,

Why should I read it?

1 author picked User Story Mapping as one of their favorite books, and they share why you should read it.

What is this book about?

User story mapping is a valuable tool for software development, once you understand why and how to use it. This insightful book examines how this often misunderstood technique can help your team stay focused on users and their needs without getting lost in the enthusiasm for individual product features. Author Jeff Patton shows you how changeable story maps enable your team to hold better conversations about the project throughout the development process. Your team will learn to come away with a shared understanding of what you're attempting to build and why. Get a high-level view of story mapping, with an…


Book cover of Computers Ltd.: What They Really Can't Do

Martin Erwig Author Of Once Upon an Algorithm: How Stories Explain Computing

From my list on computer science without coding.

Why am I passionate about this?

I’m a professor of computer science at Oregon State University. My research focus is on programming languages, but I also work on computer science education and outreach. I grew up in Germany and moved to the United States in 2000. Since computer science is a fairly new and not widely understood discipline, I am interested in explaining its core ideas to the general public. I believe that in order to attract a more diverse set of people to the field we should emphasize that coding is only a small part of computer science.

Martin's book list on computer science without coding

Martin Erwig Why did Martin love this book?

This book provides a brief introduction to the concept of algorithms before discussing the limitations of computation. Specifically, Harel explains undecidable problems (that is, problems for which no algorithm exists) and infeasible problems (that is, problems for which only algorithms are known that have an exponential runtime). I like this book (and its splendid title) because of its focus on the limitations of computation. Harel does a marvelous job in explaining two difficult topics about computation. The understanding of any scientific discipline requires the understanding of its limits, and the limits of computation are as significant as they are surprising.

By David Harel,

Why should I read it?

2 authors picked Computers Ltd. as one of their favorite books, and they share why you should read it.

What is this book about?

Computers are incredible. They are one of the most important inventions of the 20th century, dramatically and irrevocably changing the way we live. That is the good news. The bad news is that there are still major limitations to computers, serious problems that not even the most powerful computers can solve. The consequences of such limitations can be serious. Too often these limits get overlooked, in the quest for bigger, better, and more powerful computers. In Computers Ltd., David Harel, best-selling author of Algorithmics, explains and illustrates one of the most fundamental, yet under-exposed facets of computers - their inherent…


Book cover of Computer Vision: Algorithms and Applications

Mark S. Nixon Author Of Feature Extraction and Image Processing for Computer Vision

From my list on computer vision from a veteran professor.

Why am I passionate about this?

It’s been fantastic to work in computer vision, especially when it is used to build biometric systems. I and my 80 odd PhD students have pioneered systems that recognise people by the way they walk, by their ears, and many other new things too. To build the systems, we needed computer vision techniques and architectures, both of which work with complex real-world imagery. That’s what computer vision gives you: a capability to ‘see’ using a computer. I think we can still go a lot further: to give blind people sight, to enable better invasive surgery, to autonomise more of our industrial society, and to give us capabilities we never knew we’d have.

Mark's book list on computer vision from a veteran professor

Mark S. Nixon Why did Mark love this book?

Richard’s authoritative leading textbook excellently describes the whole field of computer vision. It starts with the sensor, moves to image formation followed by feature extraction and grouping, and then by vision analysis. It’s pragmatic too, with excellent descriptions of applications. And there is a ton of support material. This is a mega textbook describing the whole field of computer vision.

By Richard Szeliski,

Why should I read it?

1 author picked Computer Vision as one of their favorite books, and they share why you should read it.

What is this book about?

Computer Vision: Algorithms and Applications explores the variety of techniques commonly used to analyze and interpret images. It also describes challenging real-world applications where vision is being successfully used, both for specialized applications such as medical imaging, and for fun, consumer-level tasks such as image editing and stitching, which students can apply to their own personal photos and videos.

More than just a source of "recipes," this exceptionally authoritative and comprehensive textbook/reference also takes a scientific approach to basic vision problems, formulating physical models of the imaging process before inverting them to produce descriptions of a scene. These problems are…


Book cover of 97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts

Jeanne Boyarsky Author Of OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829

From my list on becoming a better Java developer.

Why am I passionate about this?

I’ve always enjoyed mentoring folks whether new or experienced in programming. Whether it is teaching an intern or a high school robotics student, or onboarding an experienced Java developer, it brings me joy to see people learn. I also love to read. Being able to recommend some of my favorite books can help even more people absorb all of this information.

Jeanne's book list on becoming a better Java developer

Jeanne Boyarsky Why did Jeanne love this book?

When trying to become a better Java developer, there is so much to learn.

97 Things covers, well 97, of them in a series of brief essays. What’s cool is that the essays were written by different people so you get lots of points of view on what is important. Topics range from language (comments, fat jars) to the ecosystem (benchmarking, frequent releases) to the language-agnostic (definition of done and breaking down problems.)

Note that two of these are mine. The book is thin at just over 200 pieces. And since each “thing” is short, it’s easy to read on the go.

By Kevlin Henney, Trisha Gee,

Why should I read it?

1 author picked 97 Things Every Java Programmer Should Know as one of their favorite books, and they share why you should read it.

What is this book about?

If you want to push your Java skills to the next level, this book provides expert advice from Java leaders and practitioners. You'll be encouraged to look at problems in new ways, take broader responsibility for your work, stretch yourself by learning new techniques, and become as good at the entire craft of development as you possibly can

Edited by Kevlin Henney and Trisha Gee, 97 Things Every Java Programmer Should Know reflects lifetimes of experience writing Java software and living with the process of software development. Great programmers share their collected wisdom to help you rethink Java practices, whether…


Book cover of Computer Security: Art and Science

Nancy R. Mead Author Of Cyber Security Engineering: A Practical Approach for Systems and Software Assurance

From my list on software security engineering.

Why am I passionate about this?

As a kid, I used to do all the math problems in my textbooks just for fun, even if they weren’t part of a homework assignment. My grandchildren cringe when I tell them this. I am a researcher and educator in secure software engineering and have enjoyed a productive career in software development and management, software engineering and software security research, and software and secure software engineering education.  

Nancy's book list on software security engineering

Nancy R. Mead Why did Nancy love this book?

Although strictly speaking, this book is not on software security, it is so well-known in the field as a general reference that it deserves to be on this list. It discusses the important issues of computer security and can be used as either a textbook or a reference. No doubt that many, if not most, students of computer security are familiar with this book.

By Matt Bishop,

Why should I read it?

1 author picked Computer Security as one of their favorite books, and they share why you should read it.

What is this book about?

Today, everyone recognizes the importance of safeguarding computer systems and networks from vulnerability, attack, and compromise. But computer security is neither an easy art nor a simple science: its methodologies and technologies require rigorous study, and a deep grounding in principles that can be applied even as technologies change. Moreover, practitioners must understand how to align concepts with real policies, and then actually implement those policies -- managing inevitable tradeoffs such as "How secure do our devices really need to be, and how much inconvenience can we accept?"



In his extensively updated Computer Security: Art and Science, 2nd Edition, University…


Book cover of Code Complete: A Practical Handbook of Software Construction

Rod Stephens Author Of Beginning Software Engineering

From my list on making you a better software developer.

Why am I passionate about this?

During my career, I’ve worked on projects large and small (1 - 60+ people) in a wide variety of fields (like repair dispatch, ticket sales, and professional football coaching--the NFL kind not the FIFA kind). All of them, and particularly the big ones, were like antique clocks: they had lots of moving pieces and if any piece broke, the whole thing wouldn’t work. (Unfortunately, failed software projects don’t look nice on your mantelpiece.) In this list, I’ve tried to pick some books that you might not discover if you look only for programming books. Read those, too, but don’t ignore the more human-oriented dimensions of software development. Hopefully you’ll find these choices interesting and useful.

Rod's book list on making you a better software developer

Rod Stephens Why did Rod love this book?

Software engineering involves several phases such as requirements gathering, design, programming, testing, and deployment.

This book explains techniques that allow you to build quality and robustness into every phase of the process. It discusses design, classes, defensive programming, collaboration, refactoring, and more.

The book uses many examples in an assortment of languages but the concepts apply to any programming language. In fact, the main themes like building error detection into every step of the process generalize to even non-programming parts of the development process.

If you’re an experienced developer, you may have discovered some of this book’s ideas elsewhere or even on your own, but you only need to pick up one or two new tidbits to make the book worthwhile.

By Steve McConnell,

Why should I read it?

1 author picked Code Complete as one of their favorite books, and they share why you should read it.

What is this book about?

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…


5 book lists we think you will like!

Interested in software, user interface design, and computers?

10,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about software, user interface design, and computers.

Software Explore 55 books about software
User Interface Design Explore 19 books about user interface design
Computers Explore 28 books about computers