Code Simplicity: The Fundamentals of Software is Now Free

About a year ago, a Twitter user tagged me and some other programming authors in a thread where they described the barriers to accessing computer programming books in their country. I’ve been made distantly aware of these problems before—there are many countries in the world where the cost of a book in USD could be a person’s entire weekly salary.

I didn’t write any of my books to make money—I wrote them to get a message out and to help people. I usually think that people are more likely to actually read a book if they pay for it, and the point was to get people to read the book, because that was the only way I was going to change the software industry for the better. The book does still sell copies (which is unusual for a computing book, since it’s been ten years since its release) but the money it makes is not important to me—it’s getting people to read the book that’s important to me.

Once I realized that there was a huge population of the planet that was entirely barred from reading the book legally if they had to pay for it at all, I worked with my editors at O’Reilly to see if we could make the book completely free.

It turns out that for complex reasons beyond their control, they can’t make the book free on Amazon or in the O’Reilly store. But they can give me the distribution rights to the book, take the cover off, and let me distribute it for free!

So here you go, you can now download Code Simplicity: The Fundamentals of Software for free! I hope that this gets more people to read and understand the fundamental laws of software design, and that it helps make the world of software development a better place.


  1. The fact that testing is literally an afterthought in your book tells me the hole in your understanding of software development. Automated testing needs to come first, not last. It is the key to expressing and verifying the intent of the code (instead of delusional comments that become less and less true over time), being able to increase simplicity via safe refactoring, and maintaining the code over its entire lifetime.

Leave a Reply