Back to Top

Top five books for programmers

Stack Overflow is one of programmers’ favorite destinations, being visited by over 50 million people each month. It is estimated that over 20 million of them are professional developers; this makes it the world’s largest community, and a platform that can help people who want to learn programming, are interested in sharing their knowledge with others, or want to build their careers.

With so many active users, it’s not a surprise that the site can already boast with tens of millions of answered questions. Often, developers will also recommend helpful books, which can help beginners learn more about a particular programming aspect.

Fortunately, has analyzed over 40 million Stack Overflow answers, creating a list with the most recommended programming books. The list includes over 5,000 titles and can be of great help for people who are either trying to learn programming, or want to boost their coding skills.

Here are the top 10 most recommended programming books on

1. Working Effectively with Legacy Code by Michael C. Feathers

This book was written for programmers who want to learn how to safely test and debug complex projects. You will learn new techniques that can be used with any programming language; the author shows examples for Java, C, C++ and C#.

2. Design Patterns by Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm

This book discusses the most common design-related problems, and shows elegant methods that help non-designers (read “programmers”) to solve them. It’s as if you’d look over the authors’ shoulders, learning from them how to properly create great looking, real-life applications.

3. Clean Code by Robert C. Martin

Bad code can work fine, but if your code isn’t clean, very few people will understand what it does. In fact, bad code may even get you fired! Robert Martin’s book wants to change that; the author is a software expert which uses this volume to present his advanced, agile-based code cleaning method.

Firstly, you will learn how to write clean code. Then, you will study several projects, which range from very simple to complex. Finally, you will get access to a knowledge base that will instantly help you spot bad code as you write it.

4. Java concurrency in practice by Brian Goetz, Tim Peierls

Java used to be a slow programming language in the past. Fortunately, things have changed for the better as the CPUs have become faster and faster, and Java 6’s concurrency features have increased application speed even more.

Java can now work with computers that utilize multiple processors, and this book will teach you everything you need to know to unleash their combined power. You will discover how to use the best concurrency building blocks, how to use threads safely, and much more.

5. Domain-driven Design by Eric Evans

This book can help any developer design an application which matches the mental model of the problem that it is supposed to solve.

Eric Evans focuses his energy on domain modeling in this book, and provides a great variety of techniques that can help developers build high quality business applications.