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.
Its fantastic that the best main programming book among many other now is free. Thank you!
Thanks, sergey! I’m happy to be able to help people in this way. 🙂
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.
Hey Steven. I think perhaps you’ve misunderstood the intent of the book or the contents of it around testing. There’s a lot to say about this subject, but the best summary that I’ve written is here: https://www.codesimplicity.com/post/the-philosophy-of-testing/.
I guess you have not worked in the codebase when tests hunt you down and lock in bad interfaces and weird contracts
The fundamental laws of software design in Code Simplicity is awesome. Thank you Max.
Thank you!