A Philosophy of Software Design
A Philosophy of Software Design by John Ousterhoutby John Ousterhout
Hacker ApprovedRanked 3 of 21 software engineering books by recommenders
Short, practical book on software design that people say improves code and team habits. One critic says it reads more as a set of heuristics than a rulebook.
Short, practical book on software design that people say improves code and team habits. One critic says it reads more as a set of heuristics than a rulebook.
29 people gave an opinion
- recommend it
- 28
- criticize it
- 1
- approval share
- 97%
Recommended in 11 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: not recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 28 people recommend itNeeds 10 or more, met.
- 28 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 11 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Short, readable book
“tiny little book that uses simple example (class that makes a text editor) to talk about complexity”
Comment from 21 Apr 2026 in “Laws of Software Engineering” “there is plenty of stuff in this short little book that was very satisfying to me”
Comment from 7 Aug 2026 in “Taste Is All That's Left” “The Ousterhout book is very good and rather small”
Comment from 8 Jan 2026 in “Ask HN: Reading list for being a better engineer?” - Comment from 17 Nov 2025 in “The Pragmatic Programmer: 20th Anniversary Edition (2023)”
Improved code and team practice
“This is an excellent book! We give a copy to everyone that joins our team.”
Comment from 29 Sep 2026 in “Ask HN: What are you reading?” “my own programming took a quantum leap forward when I purchased and read”
Comment from 10 Jul 2026 in “Write code like a human will maintain it” “one which I highly recommend and which markedly improved my code”
Comment from 4 Jan 2026 in “Maybe Comments _Should_ Explain 'What'” - Comment from 28 Nov 2025 in “Tiger Style: Coding philosophy (2024)”
Top recommendation for engineers
“If you can only read one book about how to program in your life, I would say that it is this book”
Comment from 17 Nov 2025 in “The Pragmatic Programmer: 20th Anniversary Edition (2023)” “A philosophy of software design by John Ousterhout is the best software book I have read.”
Comment from 4 Jan 2026 in “Ask HN: Reading list for being a better engineer?” “Ousterhout's A Philosophy of Software Design if you're going engineering.”
Comment from 14 Mar 2026 in “Ask HN: Looking for a job after layoff and burnout. What should I focus on” - Comment from 28 Nov 2025 in “Tiger Style: Coding philosophy (2024)”
Practical guidance on managing complexity
“tiny little book that uses simple example (class that makes a text editor) to talk about complexity”
Comment from 21 Apr 2026 in “Laws of Software Engineering” “one of its key points is to keep interfaces simple and push complexity downwards”
Comment from 15 Jul 2026 in “How I use HTMX with Go” “This model of complexity from the book is very useful:”
Comment from 17 Nov 2025 in “The Pragmatic Programmer: 20th Anniversary Edition (2023)”
Other software engineering books people recommend
The four most recommended other software engineering books, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| The Mythical Man-Monthby Fred Brooks | 56 | 3 | 95% | 12 | — | Approved |
| Designing Data-Intensive Applicationsby Martin Kleppmann | 37 | 1 | 97% | 12 | — | Approved |
| A Philosophy of Software Designby John OusterhoutThis page | 28 | 1 | 97% | 11 | — | Approved |
| Code Completeby Steve McConnell | 14 | 0 | 100% | 7 | — | Approved |
| The Architecture of Open Source Applicationsby Amy Brown and Greg Wilson | 13 | 0 | 100% | 8 | — | Approved |
What people said
32 of the 37 comments that mention it, newest first. Each links to the original comment.
“One of my favorites is "A Philosophy of Software Design" by John Ousterhout. Good general design practices.”
“just yesterday started reading "A Philosophy of Software Design" - enjoying it so far.”
“glad I finally cracked it open”
“This is an excellent book! We give a copy to everyone that joins our team.”
“there is plenty of stuff in this short little book that was very satisfying to me”
“Books that come into my mind that might be useful to you”
“one of its key points is to keep interfaces simple and push complexity downwards”
“my own programming took a quantum leap forward when I purchased and read”
“Much faster and more efficient and better to just buy a copy”
“The recommendations are often very good, for example Ousterhouts A Philosophy of Software Design”
“which should really be called A Set of Heuristics for Software Design”
“tiny little book that uses simple example (class that makes a text editor) to talk about complexity”
“instead of cleaning your code, design it”
“Ousterhout's A Philosophy of Software Design if you're going engineering.”
“I highly recommend reading it if you haven't, it's very good.”
“captured the hard-won lessons in the book”
“The Ousterhout book is very good and rather small”
“That purpose is raising the monitor 0.1mm.”
“one which I highly recommend and which markedly improved my code”
“A philosophy of software design by John Ousterhout is the best software book I have read.”
“John Ousterhout has been addressing this one class at a time at Stanford for a while now, and has scaled up to a book”
“I haven't even read your recommendation and know you are right.”
“The world would be a better place if Philosophy of Software Design would replace all mentions of the second book.”
“because it's more fundamental”
“gave him every opportunity to think critically about his own suggestions”
“this text was transformative in my current project”
“is often recommended, and is very good”
“I've also read and love this book”
“This model of complexity from the book is very useful:”
“It's very good. And quite short!”
“If you can only read one book about how to program in your life, I would say that it is this book”
“which is about the wonderful book”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.