Books are your best mentor. If you read one good programming book every month, roughly ten pages a day, you’ll soon have a firm grasp on the industry and distinguish yourself from nearly every developer around you.
There are thousands of books, but not all of them are equally good. Below is my list of the best programming books of all time. I will keep this list in sync with new releases.
Authors: Andy Hunt, Dave Thomas · Topic: general programming · Level: beginner
This book is essential for software developers who want to develop their skills and become masters of the field. It is essential for anyone working in a team or working solo. If you are just starting out, read this book. If you are in the midst of your career, read this book. If you are an experienced veteran of the craft or feel yourself a master, read this book, then teach it.
Authors: Eric Freeman, Kathy Sierra · Topic: code design · Level: beginner
Knowing the object-oriented programming (OOP) basics does not make you a good OO designer. This book is a fast-track to design patterns - battle-proven solutions to commonly occurring problems in software design. The book presents a complicated topic in a fun, readable and practical way. This book is a better version of the original GoF design patterns book. Must-read for every developer doing OO design.
Author: Robert C. Martin (Uncle Bob) · Topic: coding · Level: beginner/intermediate
Clean Code teaches you how to write code that works well, reads well and expresses the intent of the author. This book’s biggest strength is that it includes tons of code examples, including some long and in-depth ones. Instead of just listing rules or principles of clean code, many of the chapters go through these code examples and iteratively improve them. This book is a must-read for every professional software developer.
Author: Robert C. Martin (Uncle Bob) · Topic: soft skills · Level: beginner/intermid
The Clean Coder is a sequel to Uncle Bob’s famous Clean Code book. This book contains practical advice about everything from estimating and coding to refactoring and testing. You will learn how to communicate, estimate and deal with difficult situations at work. Strongly recommended for all programmers that would like to call themselves “professional.”
Author: Steve Freeman, Nat Pryce · Topic: testing and TDD · Level: intermediate
GOOS is not only the most practical book on Test-Driven Development but also the best book about automated software testing in general. This book shows how to create a realistic project using TDD and is full of code examples. When I meet a developer skeptical about TDD, I give him this book.
Author: Gene Kim · Topic: management and process · Level: intermediate
Anyone who has worked for a large organization will identify themselves with the issues described in the book. The Phoenix Project is an entertaining novel about IT, DevOps and problems every large organization faces. That’s one of the best and funny reads on how to understand, manage and improve large organizations. You will learn a lot about Lean, Theory of Constraints and DevOps.
Author: Sandro Mancuso · Topic: software craftsmanship · Level: intermediate
How it is done is as important as getting it done. Software craftsmanship is a mindset where software developers choose to be responsible for their careers, constantly learning new tools and techniques. In this book, you will find a lot of ideas to improve yourself, your development team and company. If you want to be proud of your work and build a remarkable career, read this book.
Author: John Sonmez · Topic: career · Level: intermediate
Soft Skills is a very unusual book for software developers, but so much needed. This book addresses a wide range of important “soft” topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint. Read this book if you want to know how to manage your career, how to market yourself, build right habits or live a more fulfilling life.
Author: Jez Humble · Topic: development best practices · Level: intermediate
Work is not done until it ships. This book sets out principles and technical practices that enable rapid delivery of software to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours – sometimes even minutes. Skip at your own peril.
Author: Michael Nygard · Topic: software architecture · Level: intermediate
Release It! is a practical guide on building modern fault-tolerant systems. The book examines ways to architect, design, and build production-ready systems that survive high load, hardware failures, and unreliable network. Are you ready for a world filled with flakey networks, tangled databases, and impatient users? Get this book to skip the pain and get the experience.