Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

There are a lot of questions about what programming books should be on the programmer's bookshelf. How about non-programming related books that can help you become a better programmer or developer? It would also be interesting to know why they would help.

My first choice would be Sun Tzu's "Art of War" (however cliché), because it made it obvious that the success of any project depends on the strength of its weakest link (and warfare is a big project).


locked by World Engineer Aug 11 '14 at 19:59

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as not constructive by Jeff Atwood Sep 26 '11 at 3:18

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Joel Spolsky recommends a creative writing and economics courses for students. The reasoning being that it helps you communicate better (expressing ideas, writing docs) and understand the business behind the software you write. Maybe a book on each of those topics would be a good idea if you haven't taken these courses at university. – Keyo Jan 6 '11 at 21:38
Does the [closed] mean that I have to save away this thread before it is removed, or will it stay here in a [closed] state? I really find this thread useful even if it does not meet all the quality standards of the (less formal than SO) programmers Q&A site. – FeatureCreep Oct 6 '11 at 12:56

34 Answers 34

up vote 43 down vote accepted

The Design of Everyday Things by Donald Norman

alt text

+1 for this. It changed the way I look at the world. – Paddyslacker Sep 5 '10 at 19:30
Added to my reading list. – FeatureCreep Sep 10 '10 at 16:47

Getting Things Done

David Allen


Sadly, I got this book 5-6 years ago and my bookmark is still somewhere in the middle of it. – blizpasta Sep 19 '10 at 13:31
It's funny. You need read the entire book to learn how to finish the book :-) – bigown Sep 19 '10 at 17:42
As for me, it could be much thiner. The same concepts are explained in this book over and over, which doesn't adds more value. But that's IMHO :) – Yan Sklyarenko Oct 26 '10 at 6:51
I agree with Yan here, I personally think a lot of the chapters can be skimmed over and some need to read in detail. – Amit Wadhwa Oct 30 '10 at 4:00
Here is a good complement to the book: – FeatureCreep Jul 1 '11 at 10:38

Gödel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter.

If you haven't read this, put it on your list. It's still breathtaking over 30 years later. While I am a Strange Loop contains a more complete and convincing argument about where consciousness comes from, GEB explores the realms of symmetry, intelligence and logic systems through the music of Bach, the mathematics of Gödel and the art of Escher. It's as infuriating and entertaining as it sounds.

Gödel, Escher, Bach: An Eternal Golden Braid

Hear, hear, fantastic book! – user1249 Oct 13 '10 at 22:37
I know a lot of people speak highly of this book - but I found it extremely difficult to follow. – talonx Dec 6 '10 at 14:22
I found this book to be one of the most challenging books to read, but nonetheless a fantastic one. – l46kok Nov 19 '12 at 4:17

How to win friends and influence people

As mentioned here: What non-programming books should programmers read? "How to win friends and influence people" is a VERY good book.

You don't acquire programming skills directly by this book, but indirectly I'll argue that you do. If you're not very good at dealing with people this will help you with socializing with people that may influence you and your programming skills.

The title of the book may sound a little superficial but it´s not. You learn what others do naturally, and Dale Carnegie encourage you not to be superficial.

Worth a read :-)

How to win friends and influence people

Although the example scenarios are a little old now, the practical aspects of this book still hold today. – JBRWilkinson Oct 10 '10 at 19:24
This is a book whose title gives entirely the wrong impression. It sounds like it's about how to manipulate people. In fact, it's about how to get along with people and inspire people by being a good, decent person. – Kyralessa Oct 14 '10 at 2:54

Don't Make Me Think! A Common Sense Approach to Web Usability

Relevant to all user interface design.

Also includes general common sense for design that every programmer should know.

Don't Make me think


The Art of War Sun Tzu

alt text

I wish I could vote more than once for this. – Walter Oct 30 '10 at 0:29
It's funny that this appears right after "How to Win Friends and Influence People"... "If plan A fails, there's always plan B..." :) – j_random_hacker Jan 7 '11 at 6:50
Same as Walter... – 6pack kid Jan 13 '11 at 7:57

Peopleware: Productive Projects and Teams Tom DeMarco and Timothy Lister

alt text


The 7 Habits of Highly Effective People Stephen Covey

alt text

I'm reading this book and find it helpful in determining my priority in life. – logoin Sep 14 '10 at 20:36
I detested the 7HoHEP. A friend once commented that the first habit of highly effective people was not wasting time reading books like this. I get that others disagree but I found this about 50 pages of interesting (though sometimes obvious) material bulked up to justify a book. – Jon Hopkins Nov 19 '10 at 11:56
-1 these kind of books put more pressure on us. – Srinivas Reddy Thatiparthy Dec 6 '10 at 13:20
Although being a bit to "self-improvish", The "Sharpening the saw" principle is about the most important things you can learn as a programmer – konrad Jan 6 '11 at 15:47
Don't waste time reading this book. Skim it or find a summary it's horribly bloated & repeats the same (self evident) point several times in slightly different ways. Probably ideal for teaching time management to the hard-of-thinking – mcottle Jul 18 '11 at 0:46

Zen and the Art of Motorcycle Maintenance

Robert Pirsig

It teach us how to do right maintenance on software.

alt text

"It teach us how to do right maintenance on software." -- It's an interesting book, but it certainly didn't teach me anything about software. It's more like an introduction to philosophy. – stakx Oct 10 '10 at 12:59
@stakx: Exactly. Did you read the question? None books here is about software. It's good reading to help us to write better software. If a reader can't understand how it applies to software development... – bigown Oct 10 '10 at 20:12
This is a great book, and the follow up, "Lila" is just as good. He sets out to create a new "metaphysics", and I think he failed to do that, but by the end of the book he succeeds at specifying an algorithm that codifies western values: given any two things, you can use his "metaphysics of quality" to figure out which one western society values more. I think that's quite the accomplishment, though I'm not sure that's how he sees it. – Scott Whitlock Oct 30 '10 at 0:20
Yep. I have a quote from this book posted right above my monitor. – TMN Dec 6 '10 at 14:52

I'm going to recommend a triplet of books that are about being a programmer (rather than programming), or a leader of programmers. While all are over 30 years since their original publication all are (especially with updates, commentary in their anniversary editions):

They are still all programming books. A programming book is not necessarily always about a specific language/technology. – MAK Sep 19 '10 at 17:18
@MAK, they are actually more about software management than about actual programming directly. They are classics that I strongly recommend to any if not every professional developer for becoming a more well rounded developer. I admit they are at the fuzzy border of whether they are programming or non-programming books about development/software management. – mctylr Jan 6 '11 at 21:20

I would say any introductory book on graphic design would be useful for a programmer and help them while programming for some aspects of their work.

For example:

The Non-Designer's Design Book: Design and Typographic Principles for the Visual Novice

alt text

Heh, I wouldn't be too keen on reading a book on design that had a cover with that colourscheme ;) – Chinmay Kanchi Sep 5 '10 at 12:51

alt text

A Pattern Language: Towns, Buildings, Construction

It will teach you how to see that wildly disparate things can have underlying patterns in common that can be applied in an entirely different context. The aspect of a CEO's office that makes it a great office can be present in an undergrad's residence room, or missing from your million dollar mansion. Once you get this concept, you can apply it to software, as the Gang of Four did, and you will understand Design Patterns so much more completely. You will also have nicer living and working spaces for the rest of your life.

I've been very impressed by Alexander and Gabriel's writings on patterns and software, and, dually, disappointed by the "Object Oriented Design Patterns" movement. – Paul Nathan Jan 6 '11 at 22:06


Cryptonomicon Cover Art

Recommended for the morale boost. :)


The Back of the Napkin, by Dan Roam.

The Back of the Napkin

A great book about visual thinking techniques. There is also an expanded edition now. I can't speak to that version, as I do not own it; yet.

The expanded edition is the "director's cut" printed in 2-colors black + red) and with an added appendix (10 1/2 Commandments of Visual Thinking, which is a nice recap of things to keep in mind). There might be additional content, but I don't have the first edition so I can't contrast them. – Huperniketes Oct 14 '10 at 3:43

I'm surprised nobody has suggested any fiction. I would have though reading some fiction every now and then would improve your thinking skills. Anyway, here's my 2c.

The Hitchhiker's Guide to the Galaxy is a wholly remarkable book. Perhaps the most remarkable, certainly the most successful book ever to come out of the great publishing corporations of Ursa Minor - of which no Earthman had ever heard of. More popular than the Celestial Home Care Omnibus, better selling than Fifty-Three More Things to do in Zero Gravity, and more controversial than Oolon Colluphid's trilogy of philosophical blockbusters Where God Went Wrong, Some More of God's Greatest Mistakes and Who is this God Person Anyway? It's already supplanted the Encyclopedia Galactica as the standard repository of all knowledge and wisdom, for two important reasons. First, it's slightly cheaper; and secondly it has the words DON'T PANIC printed in large friendly letters on its cover.

I have to say that the BBC Radiophonic Workshop version of Hitchhikers is absolutely awesome - lots of amazing sound effects, so you are completely engrossed and feel like you are there with Ford, Zaphod, Arthur and Trillian, et al. – JBRWilkinson Oct 10 '10 at 19:23
But quite silly :) I love it though.. – user1249 Oct 13 '10 at 22:42
Lots of jokes in ICT refer to this book, especially jokes found in old source code. – Sjoerd Jan 10 '11 at 23:08

This is a very inspirational book on creativity. Something sorely needed in this 'new' tech world full of 'best practices' and 'accepted methodologies'.

Ignore Everybody


Pragmatic Thinking And Learning by Andrew Hunt.

alt text

Though the targeted audience is programmers, non-programmers can read it as well. It just uses some programming metaphors. But the book is really about how the brain functions, and how we can optimize how we use it.


"How to solve it" by George Pólya. While targeted for mathematics, the problem solving strategies can readily be applied to programming.


The Inmates are Running the Asylum has been helpful to me during the planning stage of any software, or interaction project.


Math Refresher for Scientists and Engineers

John R. Fanchi

alt text


While Strategy of the Dolphin is geared more towards adjusting one's mindset to solving problems arising from dealing with others, applying the adaptive skills in dealing with the absolute world of developer tools will help intuit new ways of addressing problems.

Strategy of the Dolphin


The single best book on writing I've ever read is The Sense of Structure: Writing from the Reader's Perspective.

The Sense of Structure

It can help you think logically about your writing. It gives concrete advise about the structure of what you say. It's not a book about grammar mistakes or rules, nor a bunch of platitudes-- which distinguishes itself from most other writing books. [At least that I've seen, and I've read "the classics" too.]

Better writing can help you compose better emails, write write clearer comments, and help you realize what you think it important or not.


Stephen Kings - On Writing, No I'm serious so stick with me! :) I realized that the coding process actually have a lot in coming with the authoring process. First you need to get things down on paper/code, then you need to edit/refactor it. You need to let the book/code "rest" a little sometimes before coming back to it with new realizations etc etc

Read the book and think about how it applies to coding


Made to Stick - Absolutely essential for building skills on getting your ideas across to others (especially non-programmers) and looking at things from others' (read customers') perspectives.


Patterns of Home

Patterns of Home front cover

An excellent reference on 10 patterns for the process of designing homes. Instead of being a catalog of patterns for elements of a home (such as living room, alcove, patio, etc.), it's a catalog of principles that should shape the design of homes; a guide to the factors that are critical to making a home livable for its habitants.

I've translated the 10 design process patterns they catalog to the design of software and it's remarkable how effective they are in helping you focus on the details relevant to big-picture thinking before you get bogged down on the specifics of designing and coding classes.

Maybe it's not surprising, the book is probably inspired by the seminal work of Christopher Alexander "A Pattern language", the guy who invented design patterns for use in architecture, the concept was later adopted by computerscience and the gang of four – konrad Jan 6 '11 at 15:44
Actually, two of the book's authors, Max Jacobson and Murray Silverstein, worked with Christopher Alexander (and others) to assemble those patterns. But again, while APL focused on the patterns to be implemented in a residential structure, this book focuses on patterns for designing/judging a well-designed home. It gives remarkable insight into determining how to design a software system well, or if it was designed so. – Huperniketes Jan 6 '11 at 17:40
Thanks for the tip, sounds like an interesting book – konrad Jan 6 '11 at 21:50

Alice In Wonderland and Through The Looking-Glass. Read Alice's conversation with the White Knight and see if you don't come away with a deeper appreciation for indirection and reference variables!


Not the answer you're looking for? Browse other questions tagged or ask your own question.