56
votes

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

2
  • 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.
    – Benbob
    Jan 6, 2011 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. Oct 6, 2011 at 12:56

34 Answers 34

43
votes

The Design of Everyday Things by Donald Norman

alt text

1
  • 2
    Added to my reading list. Sep 10, 2010 at 16:47
37
votes

Getting Things Done

David Allen

Cover

5
  • 9
    Sadly, I got this book 5-6 years ago and my bookmark is still somewhere in the middle of it.
    – blizpasta
    Sep 19, 2010 at 13:31
  • It's funny. You need read the entire book to learn how to finish the book :-)
    – Maniero
    Sep 19, 2010 at 17:42
  • 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 :) Oct 26, 2010 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. Oct 30, 2010 at 4:00
  • 1
    Here is a good complement to the book: youtube.com/watch?v=Qo7vUdKTlhk Jul 1, 2011 at 10:38
31
votes

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

3
  • 1
    Hear, hear, fantastic book!
    – user1249
    Oct 13, 2010 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, 2010 at 14:22
  • I found this book to be one of the most challenging books to read, but nonetheless a fantastic one.
    – TtT23
    Nov 19, 2012 at 4:17
27
votes

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

2
  • Although the example scenarios are a little old now, the practical aspects of this book still hold today. Oct 10, 2010 at 19:24
  • 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, 2010 at 2:54
25
votes

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

21
votes

The Art of War Sun Tzu

alt text

3
  • I wish I could vote more than once for this.
    – Walter
    Oct 30, 2010 at 0:29
  • 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..." :) Jan 7, 2011 at 6:50
  • Same as Walter...
    – Aaron S
    Jan 13, 2011 at 7:57
19
votes

Peopleware: Productive Projects and Teams Tom DeMarco and Timothy Lister

alt text

16
votes

The 7 Habits of Highly Effective People Stephen Covey

alt text

5
  • I'm reading this book and find it helpful in determining my priority in life.
    – logoin
    Sep 14, 2010 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. Nov 19, 2010 at 11:56
  • -1 these kind of books put more pressure on us. Dec 6, 2010 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
    – Homde
    Jan 6, 2011 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, 2011 at 0:46
13
votes

Zen and the Art of Motorcycle Maintenance

Robert Pirsig

It teach us how to do right maintenance on software.

alt text

4
  • "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, 2010 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...
    – Maniero
    Oct 10, 2010 at 20:12
  • 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. Oct 30, 2010 at 0:20
  • Yep. I have a quote from this book posted right above my monitor.
    – TMN
    Dec 6, 2010 at 14:52
7
votes

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

2
  • 4
    They are still all programming books. A programming book is not necessarily always about a specific language/technology.
    – MAK
    Sep 19, 2010 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, 2011 at 21:20
6
votes

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

1
  • 10
    Heh, I wouldn't be too keen on reading a book on design that had a cover with that colourscheme ;) Sep 5, 2010 at 12:51
6
votes

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.

1
  • 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. Jan 6, 2011 at 22:06
6
votes

Cryptonomicon:

Cryptonomicon Cover Art

Recommended for the morale boost. :)

5
votes

The Back of the Napkin, by Dan Roam.

The Back of the Napkin http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg

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.

1
  • 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. Oct 14, 2010 at 3:43
5
votes

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.

3
  • 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. Oct 10, 2010 at 19:23
  • But quite silly :) I love it though..
    – user1249
    Oct 13, 2010 at 22:42
  • 1
    Lots of jokes in ICT refer to this book, especially jokes found in old source code.
    – Sjoerd
    Jan 10, 2011 at 23:08
5
votes

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

4
votes

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.

3
votes

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

3
votes

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

2
votes

Math Refresher for Scientists and Engineers

John R. Fanchi

alt text

2
votes

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

2
votes

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.

2
votes

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

1
vote

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.

1
vote

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.

2
  • 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
    – Homde
    Jan 6, 2011 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. Jan 6, 2011 at 17:40
1
vote

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.