Start reading Code Simplicity: The Fundamentals of Software on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here.
Programming Books C Java PHP Python Learn more Browse Programming Books

Deliver to your Kindle or other device

Enter a promotion code
or gift card

Try it free

Sample the beginning of this book for free

Deliver to your Kindle or other device

Anybody can read Kindle books—even without a Kindle device—with the FREE Kindle app for smartphones, tablets and computers.
Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Code Simplicity: The Fundamentals of Software [Kindle Edition]

Max Kanat-Alexander
3.9 out of 5 stars  See all reviews (23 customer reviews)

Digital List Price: $12.99 What's this?
Print List Price: $24.99
Kindle Price: $9.39
You Save: $15.60 (62%)


Amazon Price New from Used from
Kindle Edition $9.39  
Paperback $20.21  
Books for Pragmatic Programmers
Find resources for various programming needs, including agile teams, programming languages, and the life of a programmer, in the Pragmatic Bookshelf.

Book Description

Often when we discuss a programming decision, we talk about our feelings or opinions. Wouldn't it be better if instead we had a series of rules and laws for software design, and we could base our discussions and decisions on those?

Well, there are laws of software design, they can be known, and you can know them. Based on extensive research and broad experience, this concise guide boils down software to its true fundamentals--simple principles that any programmer or technical manager can apply to guide the way towards sustainable, well-designed systems.

This isn't a book that will tell you what to do with your software. Rather, it's a guide that will help you understand how to think about design choices and make the right decision for your situation.
  • Learn what differentiates great programmers from poor programmers
  • Understand the ultimate purpose of software and the goals of good software design
  • Determine the value of your decisions now and in the future
  • Examine real-world examples that demonstrate how a system changes over time
  • Learn how to write software that stands up to unpredictable future requirements
  • Make easier changes in the future by keeping your code simpler now
  • Understand principles behind test writing and how to choose what to test

Editorial Reviews

Book Description

The Science of Software Design

About the Author

Max Kanat-Alexander, Chief Architect of the open-source Bugzilla Project, Google Software Engineer, and writer, has been fixing computers since he was eight years old and writing software since he was fourteen. He is the author of and, and is currently living in Northern California.

Product Details

  • File Size: 255 KB
  • Print Length: 84 pages
  • Page Numbers Source ISBN: 1449313892
  • Simultaneous Device Usage: Unlimited
  • Publisher: O'Reilly Media; 1 edition (March 23, 2012)
  • Sold by: Amazon Digital Services, Inc.
  • Language: English
  • ASIN: B007NZU848
  • Text-to-Speech: Enabled
  • X-Ray:
  • Lending: Not Enabled
  • Amazon Best Sellers Rank: #29,920 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?

Customer Reviews

Most Helpful Customer Reviews
35 of 36 people found the following review helpful
5.0 out of 5 stars Made me want to code. October 29, 2012
Format:Kindle Edition
This review is part of the O'Reilly Blogger Review Program. I got the book for free, but I didn't have to write a positive review about it. Fortunately, it's a great book.

I've been scripting, hacking, and patching things together for years now. I first started with VBA, then AutoHotkey, then Ruby, with a bit of PHP and JavaScript here and there. But I've never really considered myself a proper coder -- I just hack things together until I get something works. I knew "proper coding" can be beautiful, but I didn't really understand it until I finished reading Code Simplicity.

It's a short read, but it sometimes feels like it was written in blood. The author isn't afraid of making bold assertions, and calling his findings "laws." You don't have to know how to code to read this book: There are no code samples. It's all high-level concepts, from the Equation of Software Design helping you figure out whether or not to implement a change, to The Three Flaws that coders make when they're trying to change their software (mistakes that I have, of course, done in the past), to a fascinating chapter about simplicity, including how simple you really have to be (stupid, dumb simple), and, why that's important, and what _is_ simplicity, anyway.

If you have any interest in programming, are thinking of getting into it, or if you already code and feel like you're missing some of the philosopical underpinnings of the subject, this is really a must-read. Highly recommended.
Comment | 
Was this review helpful to you?
27 of 28 people found the following review helpful
5.0 out of 5 stars Read it for the Shared Vocabulary May 12, 2012
Format:Kindle Edition
Code Simplicity by Kanat-Alexander from Google really surprised me. This is a short book, even an airplane ride length book, yet it's dense enough and informative enough for me to feel that re-reading it several more times would be awesome.

Let me get this out of the way first: this is not a how-to book for making software. There is no code in this book. This is a book on the philosophy of making software. If you are looking for concrete examples of how to re-factor your code, you will not find it here, but don't let that discourage you.

Kanat-Alexander does spend a fair amount of talking about how this book turns the making of software into a science. I don't really completely buy into the notion that this small book can actually do that, as I find his mathematics to be insufficient for such a claim. And in most cases, I feel like his categorizations of items into "Facts, Laws, and Definitions" to be, well, not rigorous enough from a scientific perspective. But in reading through this book, I wouldn't bother to get hung up on whether a particular statement is really a universal law or not.

Rather, I would read Code Simplicity with the idea that this is a philosophy you can use to understand how to make and maintain great software. If you are an experienced dev, there's a lot of very succinct principles that you can use to explain to novices or management about why you need to build software a certain way. If you are the novice, this will give you significant advantage because someone with years of experience has laid out some excellent starter principles for you. If you are a Product Manager, you can use this book to understand the software life cycle, and to help you plan in time for all the care and feeding that need to go into your software.
Read more ›
Was this review helpful to you?
25 of 26 people found the following review helpful
5.0 out of 5 stars Philosophical, insightful. April 27, 2012
Format:Kindle Edition
Great read. I would recommend this book for a few reasons.

1. For me (I am a beginning / intermediate programmer), my programming education came down to mainly syntax, how to make stuff work with some "tricks" for organization and maintainability along the way. But what was left out was the philosophy of how to approach a software problem and what your goal is beyond getting it to "just work". This book filled that gap for me, providing the most fundamental laws of the subject that I have found yet. For this reason, this book reads more "philosophically" than "technically" - which I liked.

2. As a manager of programmers, I have struggled with other's kludgy code, and from the complaints of others who had to inherit it. The principles in this book are well suited for a programming team to adopt as a point of their culture. The very experienced programmers may have already learned some of these lessons, or intuitively apply them. But for the whole team to be on the same page, it is necessary to have these points clearly stated in a short way that anyone can understand. I think this short (~90 page) book does that job very well.
Was this review helpful to you?
29 of 31 people found the following review helpful
3.0 out of 5 stars a decent weekend read for the journeyman programmer April 26, 2012
"Code Simplicity" by Max Kanat-Alexander (published by O'Reilly, 2012) is the kind of book you might give to a junior or journeyman programmer and say: "Read this over the weekend, and then on Monday we'll talk about your design." There are many quotable passages, pithy aphorisms, and axioms that take the form of definitions, facts, rules, and laws. Kanat-Alexander uses a conversational tone that takes this already common-sense study on the subject and makes it even more approachable and straightforward. And just what is the subject here? As the title dictates, the subject of the book is code simplicity: dealing with complexity, identifying areas where complexity is likely to creep in, and strategies for eliminating or reducing that complexity.

At a high level, Kanat-Alexander's discussions of the component parts of this subject are deft and lucid. He is able to evoke familiar situations and scenarios (e.g., coding under a deadline; e.g., dealing with large legacy code bases) and uses those to frame and present his recommended methodologies for keeping code "simple". A lot of the techniques and suggestions will all seem like common sense to anyone who has been programming for a non-trivial interval: reduce maintenance effort before trying to reduce implementation effort; the larger your change, the more likely you are to break something; don't "fix" things unless you know that you have (and have evidence of) a problem -- and so on. Again, to experienced programmers (and, arguably, also to someone who has just sat in on 4+ years worth of computer science lectures?) these suggestions will all seem like conventional wisdom, like the elements of craftsmanship that they perform and preach every day.
Read more ›
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars the shortest but most inofrmative book ever!!!
I was nearly to stop reading the book as first 50% of the book is very boring. I would recommend to read it from the middle and then move to the beginning. Read more
Published 2 months ago by David S. James
3.0 out of 5 stars "Code Simplicity: The Fundamentals of Software" by Max...
The idea of simplicity is fantastic. Numerous books are coming out under that banner. In fact, a wonderful book on Steve Jobs and Apple had a similar theme, "Insanely Simple. Read more
Published 3 months ago by Marc Zucker
4.0 out of 5 stars Excellent single afternoon read
The author manages to drive home some of the most painful issues around coding. It 's a thoroughly enjoyable read, if perhaps a little generic. Read more
Published 10 months ago by Yiannis Karadimas
5.0 out of 5 stars Real Nice, I Enjoyed it.
this book gives you the foundation of coding, I learned interesting ideas about coding, I highly recommend this book , read it if you like this stuff.
Published 13 months ago by Mr. V
5.0 out of 5 stars Full of good advice
This book is full of lots of pithy, simple, true advice. This is the kind of stuff that after you read it, you feel that you should have known it already, but you just haven't had... Read more
Published 14 months ago by Amazon Customer
3.0 out of 5 stars Great for beginners to intermediates. Lacks code samples though.
Writing code seems like an easy task, and perhaps it is. However, it can be difficult to write simple, clean code. Read more
Published 18 months ago by Kenrick Chien
4.0 out of 5 stars Good Quick Informative Read
It's a fast read and quickly gets down to the root of good programming. As a senior developer I've witnessed complex system grow exponentially more complex for no other reason than... Read more
Published 20 months ago by Chris Piekarski
2.0 out of 5 stars Missing code...
Code Simplicity is a very thin (less than 80 pages) book about software development. The author, an architect on the Bugzilla project, tries to describe fundamental laws of... Read more
Published 20 months ago by Bas Vodde
5.0 out of 5 stars Read this book!
If you think you know best practices, you had better make sure! Reading this book will allow you to know if you are utilizing good development and design decisions. Read more
Published 21 months ago by Justin Miller
5.0 out of 5 stars Great concise read
This book is a great bus read. Short, full of good advice and does not need your full undivided attention to profit. Read more
Published 22 months ago by coffee_fan
Search Customer Reviews
Only search this product's reviews

More About the Author

Max Kanat-Alexander, Chief Architect of the open-source Bugzilla Project, Google Software Engineer, and writer, has been fixing computers since he was eight years old and writing software since he was fourteen. He is the author of and, and is currently living in Northern California.

What Other Items Do Customers Buy After Viewing This Item?


There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category