The best books for programmers

The following is a list of the most important books for programmers. These books are on the topics programming in general, Java programming, personality development and career development. I have read all 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 “Amazon Affiliate Program” section of the Privacy Policy.

Books about programming in general – Hard Skills

Agile Software Development: Principles, Patterns, and Practices

Agile Software Development – Principles, Patterns, and Practices

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. He demonstrates these principles and the application of well-known design patterns using three case studies developed in C++ and Java. I recommend 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 audiobook? Absolutely not! The book is full of source code and UML diagrams that are essential for understanding this book.

Growing Object-Oriented Software, Guided by Tests

Growing Object-Oriented Software, Guided by Tests

by Steve Freeman und 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 audiobook? No, due to numerous code examples.

Design Patterns: Elements of Reusable Object-Oriented Software

Design Patterns: Elements of Reusable Object-Oriented Software

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 important design patterns (if not the most important ones of all) and their relationships to 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 modern aspects like concurrency are completely ignored. Nevertheless, every programmer should have this work on his bookshelf and know, recognize and apply the classic 23 design patterns.

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

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

Pattern Hatching: Design Patterns Applied

Pattern Hatching: Design Patterns Applied

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 audiobook? No, due to numerous code examples and diagrams.

Books about programming in general – Soft Skills

Soft Skills: The software developer’s life manual

Soft Skills – The software developer's life manual

by John Sonmez

Link to the book at Amazon

In this book, developer and life coach John Sonmez gives helpful advice on building the soft skills a developer should have and which will 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 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.

The Complete Software Developer’s Career Guide

The Complete Software Developer's Career Guide

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 way, enriched with personal anecdotes and is very pleasant to read.

Suitable as 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.

The Passionate Programmer: Creating a Remarkable Career in Software Development

The Passionate Programmer: Creating a Remarkable Career in Software Development

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 audiobook? Yes, but the book is currently not available as an audiobook.

Books about Java programming

Mastering Lambdas: Java Programming in a Multicore World

Mastering Lambdas: Java Programming in a Multicore World

by Maurice Naftalin

Link to the book at Amazon

This is a great book about Lambdas and Streams introduced in Java 8. Despite the presence in the title, Lambdas occupy only about the first quarter of the book. The largest 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 are introduced step by step to the functionality of Lambda and Streams. Advanced readers will learn how to develop Spliterators to generate streams as well as custom Collectors and Reducers.

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

Java Generics and Collections

Java Generics and Collections

by Maurice Naftalin and Philip Wadler

Link to the book at Amazon

While these days, the introduction to generics can be skipped by most Java developers, the book quickly addresses advanced topics such as Subtyping, Wildcards, Wildcard captures and Bounds – topics that every Java programmer has certainly had to deal with before, but has usually walked through compiler errors instead of knowing exactly what they did. In the second part of the book, the most important Collection interfaces and classes of the Java Collection Framework – Sets, Queues, Lists and Maps, as well as their implementations – are presented and compared with regard to concurrent programming and performance. Any advanced Java programmer should be familiar with these topics.

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

Books on personality and career development

Getting to Yes: Negotiating Agreement Without Giving In

Getting to Yes: Negotiating an agreement without giving in

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 is not about how to get more out of a negotiation than the negotiating partner, but about 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.

In addition to the negotiation method itself, the authors also describe how to deal with 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 audiobook? Yes, but I’ve read the printed version and therefore cannot judge the audiobook edition.

How to Win Friends And Influence People

How to Win Friends And Influence People

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 audio book? Absolutely yes. I found it very pleasant to listen, almost as if it had been read out by the author himself.

Quiet: The Power of Introverts in a World That Can’t Stop Talking

Quiet: The Power of Introverts in a World That Can't Stop Talking

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. And 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 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”.

Start with Why: How Great Leaders Inspire Everyone to Take Action

Start with Why: How Great Leaders Inspire Everyone to Take Action

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 book, the author presents his answer to these questions in a very inspiring way: that with all these personalities, the question of “why” always stood at the beginning. Among other things, this book led me to search for my personal “Why” and finally to start this blog.

Suitable as 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.

Find Your Why: A Practical Guide for Discovering Purpose for You and Your Team

Find Your Why: A Practical Guide for Discovering Purpose for You and Your Team

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 “Why” (or the “Why” of your company). 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 recommended in the book myself, e.g. 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 audiobook? Although this book is available as an audiobook, it contains many practical tasks that cannot be completed while driving, exercising or wherever you listen to an audiobook. Therefore, I would recommend the printed version.

Bonus: Novels

Mostly I read technical books. But every now and then, when I get a good recommendation, I also read a novel. I would like to recommend two books that fascinated me in particular:

Ender’s Game

Ender's Game

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 Ender being recruited as a child 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 audiobook? Yes, including the sequels.

Seveneves

Seveneves

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. The book was recommended by Barack Obama and Bill Gates.

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

Suitable as audiobook? Yes.

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