Best books for programmers - feature image

The best books for programmers (2019)

In this article, I’ve compiled a list of the most relevant books for programmers. These books are on the topics programming in general, Java programming, personality development, and career development. I have read all the recommended books. The list is not complete; there are a lot more great books I have on my “to read” list. I will therefore regularly update this list.

Books for software developers are rarely suitable as audiobooks, as they often contain code examples and complex diagrams. Fortunately, there are a few exceptions. Therefore, I also indicate for each book whether it is suitable and available as an audiobook.

All links on this page are affiliate links. You can find legal information on this in the “Affiliate programs and affiliate links” section of the Privacy Policy.

Books about programming in general – Hard Skills

by Robert C. Martin

Link to the book at Amazon

In this excellent book, Robert C. Martin, also known as “Uncle Bob,” co-author of the agile manifesto, explains the core concepts of agile software development, Extreme Programming (XP), and Test-First Design (the predecessor of Test-Driven Design). He shows how to write clean, maintainable code through agile design and the application of SOLID principles. The author then demonstrates these principles and the application of well-known design patterns using three case studies developed in C++ and Java. I recommend that every programmer study these case studies intensively and implement them themselves.

The book is from 2002 and is available in a new edition from 2013, which I haven’t read yet.

Suitable as an audiobook? No. The book is full of source code and UML diagrams that are essential for understanding this book.

by Steve Freeman and Nat Pryce

Link to the book at Amazon

This book provides a practical introduction to Test-Driven Development (TDD), especially in object-oriented programming. The authors (one of whom is the developer of jMock) explain how unit tests and mock objects lead to a clean object-oriented design with reliable and maintainable code. In a case study, they design and implement an auction system in Java with a test-driven approach. I particularly recommend this book to every Java programmer. Once you’ve experienced how tests lead to more elegant design and code, you’ll never want to develop without them again.

Suitable as an audiobook? No, due to numerous code examples.

by Erich Gamma, Richard Helm, Ralph E. Johnson, John Vlissides

Link to the book at Amazon

Every programmer should actually have read this classic. “Actually,” because it is written in a very academic style and therefore difficult to read – especially if you’re a non-native speaker and read it in the original English edition. It describes some of the most relevant design patterns (if not the most relevant ones of all) and their relationships with each other in great detail. You’ll notice that the book is already 25 years old: the code examples are partly outdated from today’s point of view, and they entirely ignore newer aspects like concurrency. Nevertheless, every programmer should have this work on his bookshelf and know, recognize, and apply the classic 23 design patterns.

If you prefer something more practical, I recommend the online course “Java Design Patterns” by Dr. Heinz Kabutz, author of the well-known JavaSpecialists’ newsletter.

Suitable as an audiobook? No, due to numerous code examples and diagrams.

by John Vlissides

Link to the book at Amazon

This book by one of the four authors of the classic “Design Patterns” gives insights into the development process and describes the ten biggest misunderstandings about design patterns. Frequently used design patterns are explained using practical examples – in contrast to the very academic approach in the classic. Variations of established patterns are presented, as well as two entirely new design patterns. You don’t necessarily have to read this book, but for me, it was a very pleasant and much easier to digest read after having worked through “Design Patterns.”

Suitable as an audiobook? No, due to numerous code examples and diagrams.

Books about programming in general – Soft Skills

by John Sonmez

Link to the book at Amazon

In this book, developer and blog author John Sonmez gives helpful advice on building the soft skills a developer should have, and which lead to a more satisfying life as a professional software developer. It’s all about career development, self-marketing, learning, productivity, investment strategies, and financial security, fitness, and mental health – all from a software developer’s perspective. For a change, if you would like to read a book for programmers without source code and diagrams, I can recommend this book.

Suitable as an audiobook? Yes, absolutely. I particularly like the fact that John Sonmez reads his books himself and repeatedly adds a few paragraphs that are not in the book.

by John Sonmez

Link to the book at Amazon

This book is a comprehensive guide to a successful career in software development. It answers questions from all levels of the development career: How do I start my career? How do I get a job? In which direction can and should I specialize? How do I deal with superiors and colleagues? How do I earn a promotion? How do I develop myself? The book is written in a simple and entertaining form, enriched with personal anecdotes, and it is enjoyable to read.

Suitable as an audiobook? Yes, absolutely. I particularly like the fact that John Sonmez reads his books himself and repeatedly adds a few paragraphs that are not in the book.

by Chad Fowler

Link to the book at Amazon

This book gives software developers numerous helpful and practical tips for professional success and career development. The author describes which technical skills you should have as a programmer, how you should develop yourself technically, but also how you should not leave your career path to chance, and instead take your personal development into your own hands, pursue your own goals and remain motivated to realize them. In particular, he describes how you should market yourself as a programmer and gives numerous short recommendations for action.

Suitable as an audiobook? Yes, but the book is currently not available as such.

Books about Java programming

by Maurice Naftalin

Link to the book at Amazon

Mastering Lambdas is an excellent book about Lambdas and Streams, introduced in Java 8. Despite their presence in the title, Lambdas occupy only about the first quarter of the book. The major part describes Streams: how to use them, how to create them, and how to terminate them using Collectors and Reducers. I recommend this book to both beginners and advanced users. Beginners can use the book as a step-by-step introduction to the functionality of Lambda and Streams. Advanced readers learn how to develop Spliterators to generate streams as well as custom Collectors and Reducers.

Suitable as an audiobook? No, due to numerous diagrams and code examples.

by Maurice Naftalin and Philip Wadler

Link to the book at Amazon

While these days, most Java developers can skip the book’s introduction to generics, the book quickly addresses advanced topics such as Subtyping, Wildcards, Wildcard captures, and Bounds – topics that every Java programmer has probably had to deal with before, but has usually walked through compiler errors rather than knowing what they did. In the second part of the book, the author presents the essential Collection interfaces and classes of the Java Collection Framework – Sets, Queues, Lists, and Maps, as well as their implementations – and compares them regarding concurrent programming and performance. Any advanced Java programmer should be familiar with these topics.

Suitable as an audiobook? No, due to numerous code examples.

Books on personality and career development

by Scott Adams

Link to the book at Amazon

In this guide, Scott Adams recounts how he went from dissatisfied office worker, through many failures, to finally become the creator of Dilbert, one of the world's most famous comics. He attributes this success to his following attitude to life:

1. Proper nutrition and exercise come first; both lead to more energy, productivity, and creativity.

2. Success is, first and foremost, luck. You cannot directly influence luck; however, through your actions, you can actively improve the chances of luck finding you.

3. Goals are for losers, and systems make you a winner. Goals (e.g., "I want to lose 20 pounds") can be so far away that you give up before you reach them. Systems ("I eat healthy food and exercise regularly") have no deadlines, can be pursued regularly, and make you happy whenever you apply them.

The author does not leave it at these abstract paraphrases but explains how he develops his systems and how you, as a reader, can set up your own. His trick is to imagine himself as a biological robot that a) has to be filled with proper input (healthy food leads to energy, positive thinking to good mood), and b) can be reprogrammed (e.g., to prefer healthy food over unhealthy food).

I recommend this book to anyone who doesn't want to read the same self-help guides over and over again, but one that partly contradicts traditional knowledge and that "ordinary" people who work 40 hours a week, who have families, can apply.

Suitable as an audiobook? Yes, but I’ve read the printed version and therefore cannot judge the audiobook edition.

by Roger Fisher and William Ury

Link to the book at Amazon

This book is a well-structured, easy-to-understand guide to better success in negotiations. It does not teach how to get more out of a negotiation than the negotiating partner. Instead, it focusses on how to work together to achieve a result that satisfies all parties.

The method presented is “principled negotiation” or “negotiation on the merits.” Its core elements are: Treat people and interests separately, concentrate on interests and not on positions, find decision options, and insist on objective evaluation criteria.

After describing the negotiation method itself, the authors advise on how to deal with difficult negotiating partners who do not (or do not want to) behave according to this method. Since we programmers also end up at the negotiating table, again and again, I can recommend this book to everyone.

Suitable as an audiobook? Yes, but I’ve read the printed version and therefore cannot judge the audiobook edition.

by Chris Voss and Tahl Raz

Link to the book at Amazon

The methods presented in "Getting to Yes" work well as long as the negotiating partner eventually embraces them, and the goal is a satisfactory outcome for all parties. But how do you negotiate with tough opponents?

The author is the former FBI chief international hostage and kidnapping negotiator – a role in which he could hardly compromise. He uses real-life situations to explain the negotiation methods he developed during his time with the FBI – some of which have turned previous best practices upside down.

After his career at the FBI, the author has successfully transferred his concepts into everyday and business life. He presents effective principles with which we can better negotiate and resolve conflicts in everyday life – from buying a car and negotiating salaries to private and family life.

The book is entertaining, and I highly recommend it due to a wide range of practical and immediately practicable advice.

Suitable as an audiobook? Yes.

by Susan Cain

Link to the book at Amazon

A book that helps introverts (I count myself among them) to understand themselves and a world dominated by extroverts, to accept their qualities and to use them to their advantage. Also, a book that helps extroverts understand why introverts are the way they are, what positive and helpful qualities they have, and when to listen to them.

Suitable as an audiobook? Yes, but I’ve read the printed version and therefore cannot judge the audiobook edition.

To go with the book, I recommend Susan Cain’s TED Talk “The power of introverts.”

by Eric Ries

Link to the book at Amazon

"Lean Startup" describes a management approach to bring new products to market faster and more successfully. The term "startup" does not refer to the size or age of a business, but to an organization that creates something new under extremely uncertain conditions.

In traditional development, new products are designed and developed for months or sometimes years to eventually determine that potential customers have no interest in the product.

Lean Startup, on the other hand, is about bringing a rudimentary prototype, a so-called MVP ("Minimal Viable Product"), to market as early as possible. The goal is to receive customer feedback as quickly as possible and - based on this - to improve the product ("Build-Measure-Learn" product cycle).

The book is particularly worth reading because the author does not only explain the lean startup approach. Instead, he vividly reports how he developed it based on his own painful experience.

Suitable as an audiobook? Yes, absolutely, and the author reads it himself.

by Dale Carnegie

Link to the book at Amazon

Even though we software developers like to sit back at our desks, we have to get along with other people all our lives. This book shows you how this works best: how to make people like to be in your company and how to make friends; how to avoid arguments; how to make people see your view of things and do what you want without feeling pressured.

The book is 83 years old, believe it or not! Nevertheless, every single piece of advice is up to date. The fact that the examples given are almost a century old initially takes a little getting used to, but quickly makes the book very entertaining.

Suitable as an audiobook? Absolutely yes. I found it very pleasant to listen, almost as if it had been read out by the author himself.


by Simon Sinek

Link to the book at Amazon

“Why is Apple so successful when it’s just a computer company like many others? Why did Martin Luther King lead the civil rights movement when he wasn’t the only good speaker to suffer racial discrimination? And why did the Wright brothers manage to do controlled motorized flights when others were better qualified and better-financed?” In this insightful book, the author presents answers to these questions in a very inspiring way: All these personalities placed the question “Why” before their actions. Among other things, this book led me to search for my personal “Why” and finally to start this blog.

Suitable as an audiobook? Yes, but I’ve read the printed version and therefore cannot judge the audiobook edition.

I also highly recommend Simon Sinek’s TED Talk, “How great leaders inspire action,” which presents the contents of the book in a condensed form. This talk is so inspiring that I’ve probably watched it more than ten times.

by Simon Sinek

Link to the book at Amazon

A workbook that, based on “Start with Why,” takes you, step by step, to your personal (or your company’s) “Why.” This “Why” should lead you on your life and career path to long-term personal well-being and professional success. I came up with some of the techniques the book recommends by myself. For example, one should recall what one liked to do as a child and what one still likes to do today, even without being paid for it. Nevertheless, the book helped me to structure the search for my “Why” better and to bring it to a successful conclusion – even though I could not compress my “Why” into a single sentence. You can read the result under “What drives me” on my “about me” page.

Suitable as an audiobook? Although this book is available as an audiobook, it contains many practical tasks that you cannot do while driving, exercising, or wherever you listen to an audiobook. Therefore, I would recommend the printed version.

Bonus: Novels

by Gene Kim, Kevin Behr, George Spafford

Link to the book at Amazon

An entertaining and insightful story about the transformation of an old, traditional IT department into a modern agile DevOps team.

Bill is appointed head of the IT department and is to help the “Phoenix” IT project, which is under massive pressure from features and deadlines, to succeed. He is confronted with problems that many of us know only too well: Uncompleted features planned months in advance; manual deployments that go wrong and keep the operations department awake night after night; developers who blame operations and vice versa; employees who turn directly to developers – bypassing all processes. Bill has 90 days to fix the mess; otherwise, his department will be outsourced.

Suitable as an audiobook? Yes, absolutely.

by Orson Scott Card

Link to the book at Amazon

Ender’s Game is the first part of a science fiction epic and for me one of the best novels I’ve ever read. The story is about a young boy, Ender, being recruited for a training program to defend Earth against a threatening invasion by an alien species. I don’t want to tell you more about the plot. There are several follow-up novels – the first four parts are also available as a set: The Ender Quartet.

Suitable as an audiobook? Yes, including the sequels.

by Neal Stephenson

Link to the book at Amazon

An epic science fiction story that feels like a work comprising several novels and that captivated me from beginning to end. Something completely different than I’ve known before. I don’t want to tell anything about the story so as not to take the tension away. I also recommend not reading the description on Amazon, because, in my opinion, it reveals too much. Barack Obama and Bill Gates both recommended this book.

The book has “only” 4.0 stars at Amazon – a rating that I cannot comprehend. Most readers criticize that the author describes technical correlations in too much detail. I liked that, and therefore, it is a definite recommendation for every other programmer.

Suitable as an audiobook? Yes.

Did you like the article? Then I’d be happy if you shared it with one of the following share icons.