Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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).

share

locked by World Engineer Aug 11 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.

34 Answers 34

up vote 43 down vote accepted

The Design of Everyday Things by Donald Norman

alt text

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

alt text

Conceptual Blockbusting by James L. Adams

A good book concerning problem solving.

share

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.

share

Dan Millman's "Everyday Enlightenment". A self-help book, whose title is far more esoteric than the advice it actually gives. It is clearly written and structured, encouraging, and actually helpful.

share

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

share

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!

share

Cryptonomicon:

Cryptonomicon Cover Art

Recommended for the morale boost. :)

share

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.

share

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

share

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.

share

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

share
8  
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

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.

share

Getting Things Done

David Allen

Cover

share
9  
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
2  
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
1  
Here is a good complement to the book: youtube.com/watch?v=Qo7vUdKTlhk –  FeatureCreep Jul 1 '11 at 10:38

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

share

Zen and the Art of Motorcycle Maintenance

Robert Pirsig

It teach us how to do right maintenance on software.

alt text

share
2  
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

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.

share
1  
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
1  
Lots of jokes in ICT refer to this book, especially jokes found in old source code. –  Sjoerd Jan 10 '11 at 23:08
  • Code complete

  • The Pragmatic Programmer

share
13  
This are both programming books. –  HerbN Sep 26 '10 at 5:55

Math Refresher for Scientists and Engineers

John R. Fanchi

alt text

share

Peopleware: Productive Projects and Teams Tom DeMarco and Timothy Lister

alt text

share

The 7 Habits of Highly Effective People Stephen Covey

alt text

share

The Art of War Sun Tzu

alt text

share
10  
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

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.

share

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

share

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):

share
4  
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

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

share

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

share

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