Books for Programming Entrepreneurs

Reading list for all hackers!

This page contains a reading list with some of the books I’ve read and highly recommend to anyone serious about programming and entrepreneurship. All the books in this list have helped me, in one way or another, evolve into a better entrepreneur and programmer.

You will notice that I am using my affiliate link on Amazon. I promise you I will not polute this list with books I haven’t read just for the sake of making a few dollars. I will be putting here only books I’ve read and I think are a valuable source of knowledge. For anyone who decides to buy through here, I want to thank you for the support. If you get in touch by email or twitter I will make sure to personally thank you!

Design Patterns: Elements of Reusable Object-Oriented Software

This is a classic book written by the infamous Gang of Four (GoF). The book expands on the concepts illustrated in Christopher Alexander’s book A Pattern Language and offers solutions to common problems in software design. The 23 patterns described in this book are an essential tool in any software engineers tool belt. The book is an extremely valuable reference guide too, wondering how to tackle a problem? Pick it up and skim through the patterns. Be careful though, the book makes you want to tackle all your challenges with patterns and that can lead to some very complex code very quickly. The important take away is that the patterns should be used when necessary, don’t over complicate logic which can be written with simple code by slapping a pattern on it!

Refactoring: Improving the Design of Existing Code

This is a great book by Martin Fowler. The book gives a great introduction to refactoring which leads to simpler code and easier maintenance. The fact that it is broken down into refactoring tips (70+), each with a name, a motivation (i.e. why and when to use) and examples in Java and UML, make this book an excellent reference book. In fact, I have Refactoring and Refactoring to Patterns always on my table. The book begins explaining the importance of testing in refactoring (this is the only way to scalably ensure that your refactored code stills works as intended) and how to identify, what Martin Fowler refers to as, the “smell” of bad code (i.e. how can I detect when something isn’t right?)

Refactoring to Patterns

I really like this one, it combines all the power of the GoF Design Patterns with Martin Fowler’s Refactoring. In fact, the book references multiple times the tips and smells introduced in Refactoring. The book contains 25+ refactorings with detailed code explaining step by step how to go from the current state to the pattern state. When I say step by step, I literally mean step by step. Each line of the initial code is deconstructed and rebuilt into a pattern with accompanying unit tests at each step. The book also introduces new “smells” to help detect problems which can be addressed with the refactorings in the book. Like Design Patterns and Refactoring, the book is laid out in such a way that makes it an excellent reference. Another one which is permanently on my desk.

Domain-Driven Design: Tackling Complexity in the Heart of Software

If you consider yourself an Object Oriented Programmer and are not in possession of a copy of this book, then don’t bother reading what I’m writing here, just go and get a copy, now… and read that instead. All jokes aside, this is an excellent book. It encapsulates the essence of domain modelling. The book doesn’t just give you an incredible amount of insight on how to improve your domain modelling skills, it also provides tangible examples based on real life applications and experiences. A Cargo Routing system for is used throughout the book to show how the design principles are applied to code. I’ve read this book twice already and reference it regularly. I must admit it’s changed my programming considerably and I use the concepts I learnt from it on an almost daily basis (when it makes sense I also like mixing in CQRS principles).

Patterns of Enterprise Application Architecture

Another good book by Martin Fowler. This book is similar in style to the refactoring books and serves as an excellent reference when it comes to patterns which can be used in large enterprise applications. The book begins with a short introduction about developing enterprise applications and then dives into the patterns you can use to tackle problems you are likely to face. The patterns range all the way from database mapping to business logic organization and the web presentation layer. As you can tell I am a fan of Patterns when it comes to programming. I don’t believe everything should be solved with patterns as this will lead to overly complicated code. However, I do believe that when used correctly, patterns play an important role: they can help us solve difficult problems in elegant and maintainable ways.

Third-Party JavaScript

The focus of this book is very specific: developing JavaScript libraries that are going to be used on third-party websites. The book was written by two core developers of the Disqus JavaScript library (which is one of the most popular commenting solutions on the web). The book is very well structured and covers all the topics you need to think of in order to embed your JavaScript in a third-party site. Topics covered in the book include: loading you library on a third-party site, rendering conflict free HTML and CSS, server-side communication, authentication and sessions, security as well as how to build an SDK and optimizing the performance of your library. I found this book half way through writing my first third-party JavaScript library, I immediately stopped what I was doing and ended up re-architected 70% of the library!

The Four Steps to the Epiphany

The first entrepreneurship related book in the list and it’s the first for a very good reason. This book should be to a technology Entrepreneur what the Bible is to a Christian, what the Quran is to a Muslim, what the… and so on. I found this book about 1 year into my first startup and it was enlightening. The book will help you transform an idea, into a product and a product into a business using a four step Customer Development process. It’s like one of those get rich quick schemes, except that the scheme isn’t quick and only gets you rich if you work really hard. Oh, and unlike get rich quick schemes, it actually works. I’ve read the Lean Startup too, but I think this book is superior and actually takes you through the journey of building a business with rapid iterations, customer feedback and validating assumptions. If you are embarking on a startup journey and you could take just one book, take this one. I promise you will not regret it.

Recently I discovered that Steve Blank wrote a new book called The Startup Owner’s Manual: The Step-By-Step Guide for Building a Great Company. I heard it’s supposed to be just as good, if not better than, the Four Steps. I haven’t read this one yet, but I’m looking forward to it.

The New Solution Selling

The majority of the startups I have been involved with are B2B companies. On top of being B2B companies, the products warranted price points which were high enough to involve a good deal of direct sales and dealing with customer buying processes. The New Solution Selling provides salespeople with an end-to-end process which is incredibly effective at closing deals. The book covers topics such as: understanding your buyers needs, supplying relevant solution defined with your customer, identifying the decision makers and controlling the buying process. The first startup I founded didn’t close a single deal, until we came across this book, then we closed 3 deals in 2 months. For a beginner salesperson or an experienced one this book provides a lot of value.

Predictable Revenue

Predictable Revenue fills some of the gaps in, and overlaps with some of the topics in, The New Solution Selling. The New Solution Selling explains the actual process of a sale extremely well, however, the focus of the book isn’t on scaling that process and increasing revenue. This is where Predictable Revenue steps in. Predictable Revenue will teach you how to create an efficient sales machine that can generate, funnily enough, predictable revenue and growth. The book covers topics such as: lead generation, cold calling (which they call “Cold Calling 2.0”) without spending hours calling strangers or needing hefty marketing budgets, how to structure your sales team, cultivating your talent, leadership and management. Personally, the lead generation and the cold calling portions of the book were enough to make me buy the book. I like hands on books from which you walk away having learnt something and this one, like the ones above, does just that.