You want to become a better developer without more coding? You should read some books! Like forever ago I gave a talk about 15 books in 15 minutes. These books will help you (and helped me) to become better at what you love most: Developing software.

They are must read books for developers. Yes, you will become a better developer by reading them. I even dare to say that at some point you will not become better by only practicing or learning new programming languages. But by reading books about our profession or even about the business and psychology.

#1 The Pragmatic Programmer

the_pragmatic_programmer

This one is a classic. It’s actually a tie with number two! There are always 10 kinds of people: The Clean Code fans and the Pragmatic Programmers. At my first job we had both and we always discussed these two books. They both adress the basic problem every new developer has: What makes good code? But they have a different approach of teaching you.

“The Pragmatic Programmer” is the one book you should read as a new member of our profession. It tells you anything you need to know about what makes code good. Or what makes bad code. It even gives you a set of rules to follow! It’s quite direct with instructions on what to do and what not to do.

My friend Torsten Ehrhorn even wrote a Jenkins Plugin which gives you quotes and tipps directly out of the book.

#2 Clean Code

clean_code

The competitor of the number one spot. Everything I said above is also true for “Clean Code”. I dare to say that the cult about this book is even bigger.

What’s the difference to The Pragmatic Programmer? It’s the style of teaching: More like anecdotes and little bit more Zen. It tries to give you an understanding why something is good and why something is bad.

#3 Effective Java

effective_java

It’s written by one of the core developers of the Java library, Joshua Bloch. You don’t like Java? You still need to read this book! It tells you a lot about the design of software. And the JDK is not any software, it’s huge! Reading this book also teaches you about good code, about design decisions and about the thoughts which flow into the Java core API.

#4 Java Puzzlers

Bloch_032133678X_mech.qxd

OK, you can skip this book if you are not a Java developer. It’s also from Joshua Bloch. At my first company someone got his hand on this book. And then we good a daily challenge out of it by mail. We loved it! It teaches you so much about Java and some quirky parts of it. Here is an example:

java_puzzlers2

#5 Head First Design Patterns

head-first-design-patterns-400x400-imaeffnvjhphuguk

The legendary “Gang of Four” book (GoF) about Design Patterns. A must read everybody recommends! Don’t read it. It’s boring as hell. Read this one instead.

The examples are in C#, but it has a great layout and explains the different patterns way better.

#6 Coders At Work

coders_at_work

This book opened my eyes. Before reading this book I thought I knew what makes a great developer. What’s right and what is wrong. But after “Coders At Work” I realised how wrong I was. How single minded. These people are the most renowned ones of our profession. They have an enormous track record.

And they say totally different things. Like opposite approaches to solving the same problem. You can read one chapter and let the wise words think in. And then the next one with another developer interviewed who says the opposite and it’s also wise and true!

Here is the list of the interviews:

  1. Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow
  2. Joe Armstrong: Inventor of Erlang
  3. Joshua Bloch: Author of the Java collections framework, now at Google
  4. Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger
  5. Douglas Crockford: JSON founder, JavaScript architect at Yahoo!
  6. L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1
  7. Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation
  8. Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal
  9. Dan Ingalls: Smalltalk implementor and designer
  10. Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler
  11. Donald Knuth: Author of The Art of Computer Programming and creator of TeX
  12. Peter Norvig: Director of Research at Google and author of the standard text on AI
  13. Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress
  14. Ken Thompson: Inventor of UNIX
  15. Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker

#7 Seven Languages in Seven Weeks

seven_languages_in_seven_weeks

OK, you will need to do some coding for this book. At some point to become better you will need to widen your horizon as a developer. Up until this book I had only written code in C/C++, Assembler, Matlab, C# and Java. But this book opened my eyes. I learned a lot from knowing more concepts from other languages. I even got a kind of feeling for when something feels strange or odd. Oh boy, what a ride it was with these 7 languages.

  1. Ruby
  2. Io
  3. Prolog
  4. Scala
  5. Erlang
  6. Clojure
  7. Haskell

#8 Effective JavaScript

effective_javascript

You don’t like JavaScript? Well, try to get used to it. The web runs on JavaScript. This book is a nice example of a good book about JS. There are a lot of other books to recommend, like “JavaScript: The Good Parts”. But you need to start with one, and this one is a great balance with being a good introduction, while not being shallow and bringing a lot of content into a short form without feeling like a typical school text book.

#9 The Phoenix Project

phoenix-project

Another book about DevOps: “The Phoenix Project”. But totally different than any other book on this list. This is a novel! This book made so much fun and I had a rollercoaster of emotions while reading it. It’s quite short and an easy read. For some people this book may change their view on a lot of things. For example on how to work.

It’s about an ops team lead, who becomes VP of Operations in the beginning and how he and his organisation are struggling. An awesome novel for the holidays!

#10 The Art of Readable Code

the_art_of_readable_code

“There are only two hard things in Computer Science: cache invalidation and naming things.” (Phil Karlton)

And this book is, as the title tells you, mostly about naming things and how to structure your code to make it readable. The topic is touched in “Clean Code and The Pragmatic Programmer”, but here is another whole book about it.

#11 The Mythical Man-Month (1975)

the_mystical_man_month

“The Bible of Software Engineering”

To make it short: This book is older than most of the people reading this sentence. And everything in this book is still true today. This book is like a treasure of advice. Every person who manager or who is involved in IT projects must read this book.

the_mystical_man_month_2

“Everybody quotes it, some people read it, and a few people go by it”

There is a tendency in the field of IT to just repeat the management errors of the past. This book is the cure.

“He also made the mistake of asserting that one project — writing an ALGOL compiler — would require six months, regardless of the number of workers involved (it required longer).”

There is a huge list of topics or ideas in this book, just look at the table of contents. Here are some of the chapters: No silver bullet, The second-system effect, Project estimation, Communication, Lowering software development costs

#12 Drive: The Surprising Truth About What Motivates Us

book1

The first book in this list, which is not directly about software development. It still helped me in huge ways in understanding why people act the way they act and what we can do about it. It was my first step in the direction of not only trying to be better at building the solution, but understanding problems.

The three central pieces for intrinsic motivation are: Autonomy, Mastery and Purpose.

#13: Building Microservices

building_microservices

All people talk about microservices, few people understand it, less people get it right. I could write a whole article only about this topic. But maybe you need to read this book first, before we can talk.

#14 Release It!

release_it

This book is from 2007, but it got new hype with the DevOps movement. When you read it, you won’t believe it’s that old. And you will be more paranoid after reading the book, in a positive way. It’s full of war stories and things that can (and will) go wrong.

#15 The Five Dysfunctions of a team

book2

The second book more about psychology. It’s quite a ride and also more of a novel. You can read it quite easily, it is short and well written.

book2_1

Bonus: Extraleben Trilogie (only in german)

extraleben

A bonus included to give you some slack after that many (more or less) intense books. And I count this one as one book, even if it is a trilogy. It’s a pity that it was only published in German. A novel about two guys working in IT who love old video games and find a conspiracy hidden in a retro game.

You won’t become a better developer by reading it, but if you love IT and old video games, those books are brilliant.

Last but not least

I now have a new list #2 with books, so I needed to write down this old list. This was number one of a two part post. Because at some point you won’t become better by Katas , Code Retreats and training . You will need to broaden your horizon and develop a better understanding of the problem, not of the solution. These books from list #1 only helps you at understanding the solution.