The best books for the best programmers

Krzysztof Kwieciński
6 min readOct 2, 2018
A book is a great source of knowledge (image: link)

If you want to be the best, you have to learn from the best. Luckily, nowadays a lot of great software developers publish their thoughts online. However, such articles are often just a great short introduction to the topic but they lack more detailed information. In such a case, the best choice to master a new subject is a book. There is plenty of amazing IT literature. In this article, the best (in my opinion) positions are briefly described.

Guru of mainstream programming books (image: link)

Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin

When you hold this book in your hand, you just cannot expect it to be so valuable. The book is neither very thick, nor very heavy, but after opening it and skimming through pages you will immediately notice that the small font will teach you a lot. The book is a predecessor of Clean Code, Clean Architecture and The Clean Coder, but it contains most of the information described in the following books and even some more! For instance, you can read about design patterns, refactoring, and agile projects. Plenty of theory and examples make the book a perfect choice for everyone.

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

Holy Bible of programmers. At least one can have such a feeling after reading and hearing about the book everywhere. Literally, in every discussion about code quality, Martin’s clean code rules are mentioned. Is the Clean Code really that good? Well, indeed it is. The book contains a lot of information about writing good code — the clean code.

Clean Architecture by Robert C. Martin

This book is a successor of Clean Code. Hence, it is more difficult and focused on things that are useful for more experienced programmers. As the title indicates, the Clean Architecture is focused mainly on architecture. The best architecture principles and patterns are presented. This book is extremely useful for someone who thinks about an application’s architecture and wants to have a perfect code, not just well-written, but also perfectly organized.

Crafting a good code (logo of Dublin Software Craftsmanship)

The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin

In contrary to the two other Clean books, The Clean Coder is about programming in general, not from the technical point of view. Such a book is also very important for our development because social skills are much more important for a software developer than most of the non-programmers think.

The Software Craftsman: Professionalism, Pragmatism, Pride by Sandro Mancuso

The book is well written, as one could expect from the Craftsman. Mancuso focused mainly on soft skills and career. This book is very similar to The Clean Coder by Martin. The Software Craftsman is totally worth reading but, unfortunately, it is not written by Martin and hence is less popular, but for sure not worse.

Patterns of programming (image: link)

Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

We had a Holy Bible and now we have a Holy Grail. This book is so often cited (according to Google Scholar, as for today, almost 400 thousands times!) that we cannot have any doubts that Design Patterns is an outstanding book. Gang of Four, as the authors are called, write about most of the design patterns. They introduce them with plenty of great examples. Even though the subject of this book is demanding, it is relatively easy to read because it is so well-written. A must-read for everyone.

Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, Don Roberts

Names of authors of Refactoring make us assume that the book will be great. And surely it is. There are presented many examples of a bad code and ways how to fix it. Although the book was written some time ago when IDEs were not equipped with refactoring tools, knowing how to spot bad smells in code and how to deal with them is a basic knowledge that every programmer should have. Like Design Patterns, the book is amazingly well-written and reading and learning all the refactoring methods is relatively easy.

Test Driven Development: By Example by Kent Beck

Kent Beck is famous for his perfection. In his book, he shows us how to create a clean code that is covered with many good tests. TDD teaches us how to write a test, and only then the necessary code to pass the test. The book contains numerous examples of how to write good tests. After reading it, you will see the advantages of TDD and start to use this methodology on a daily basis. Another must-read on our list.

Recipes for known problems (image: link)

Grokking Algorithms: An Illustrated Guide For Programmers and Other Curious People by Aditya Y. Bhargava

Why should we invent new solutions for the already solved problems? Why should we waste time thinking about a possible solution if the best was already found? A software developer has to know the basic algorithms in order to be ready to use and adapt them. Grokking Algorithms is an introduction to the well-known algorithms. In the last chapter, the algorithms of future are briefly described. The book is very well written and everyone should be able to understand and learn the presented algorithms.

The essence of Java (image: link)

Thinking in Java by Bruce Eckel

Introduction to objective programming and thinking like a software developer (this time in Java). In the book, every nuance of Java is described and always a great example is provided. The more pages we read, the more difficult subjects are discussed. I bet also experienced programmers will benefit from reading Thinking in Java. Unfortunately, the book contains updates only up to Java 5. For learning newer language features you should definitely read the next position on the list.

Effective Java Programming Language Guide by Joshua Bloch

After learning Java from the Eckel’s book (or some other source), it’s high time to learn how to use it effectively. In contrary to numerous other books that teach you grammar of language or its libraries, Effective Java will teach you how to fluently speak and think in Java. 90 items are discussed and what’s really important, the book was updated to Java 9. Moreover, the best practices described in the book will be useful for every programmer, not only Java developer.

Android Programming: The Big Nerd Ranch Guide by Kristin Marsicano, Chris Stewart, Bill Phillips

The Big Nerd Ranch wrote a perfect bootcamp-book. Not only is it an introductory Android book for programmers with Java experience, but also a perfect source of knowledge for more advanced developers. Basic and more advanced Android concepts are covered. Apart from that, every person who would like to gain some knowledge about mobile systems and programming will find this book highly useful. Language, examples and staying up-to-date with fastly developing Android make this book an outstanding title.

--

--

Krzysztof Kwieciński

Software Craftsman who loves learning new things and is always eager to share his knowledge with others