56

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

FeatureCreep
  • 1,334
  • 1
  • 12
  • 14
  • 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 06 '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 06 '11 at 12:56

34 Answers34

43

The Design of Everyday Things by Donald Norman

alt text

Pete
  • 161
  • 5
Walter
  • 16,158
  • 8
  • 58
  • 95
37

Getting Things Done

David Allen

Cover

Maniero
  • 10,826
  • 14
  • 80
  • 133
31

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

Paddyslacker
  • 11,070
  • 5
  • 55
  • 65
27

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

Lasse Espeholt
  • 647
  • 5
  • 12
  • 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
  • 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 02:54
25

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

Gordon
  • 4,124
  • 26
  • 45
21

The Art of War Sun Tzu

alt text

Maniero
  • 10,826
  • 14
  • 80
  • 133
19

Peopleware: Productive Projects and Teams Tom DeMarco and Timothy Lister

alt text

Maniero
  • 10,826
  • 14
  • 80
  • 133
16

The 7 Habits of Highly Effective People Stephen Covey

alt text

Maniero
  • 10,826
  • 14
  • 80
  • 133
  • 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 06 '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 – Homde Jan 06 '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 00:46
13

Zen and the Art of Motorcycle Maintenance

Robert Pirsig

It teach us how to do right maintenance on software.

alt text

Maniero
  • 10,826
  • 14
  • 80
  • 133
  • *"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... – Maniero Oct 10 '10 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. – Scott Whitlock Oct 30 '10 at 00:20
  • Yep. I have a quote from this book posted right above my monitor. – TMN Dec 06 '10 at 14:52
8

Predictably Irrational

Predictably Irrational

Evan Plaice
  • 5,725
  • 2
  • 24
  • 34
7

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

Richard
  • 841
  • 1
  • 9
  • 14
  • 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
  • @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 06 '11 at 21:20
6

The Soul of a New Machine

alt text

Fishtoaster
  • 25,909
  • 15
  • 111
  • 154
6

Cryptonomicon:

Cryptonomicon Cover Art

Recommended for the morale boost. :)

Scott Whitlock
  • 21,874
  • 5
  • 60
  • 88
6

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.

Kate Gregory
  • 17,465
  • 2
  • 50
  • 84
  • 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 06 '11 at 22:06
6

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

Brian R. Bondy
  • 7,067
  • 32
  • 53
5

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.

George Marian
  • 4,360
  • 26
  • 31
  • 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 03:43
5

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.

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

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

GrandmasterB
  • 37,990
  • 7
  • 78
  • 131
4

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.

Pete
  • 8,916
  • 3
  • 41
  • 53
3

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

helgeg
  • 676
  • 3
  • 9
3

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

Nilloc
  • 111
  • 2
2

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

Huperniketes
  • 2,205
  • 14
  • 17
2

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.

Macneil
  • 8,223
  • 4
  • 34
  • 68
2

Math Refresher for Scientists and Engineers

John R. Fanchi

alt text

Maniero
  • 10,826
  • 14
  • 80
  • 133
2

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

Homde
  • 11,104
  • 3
  • 40
  • 68
1

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.

Huperniketes
  • 2,205
  • 14
  • 17
  • 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 06 '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 06 '11 at 17:40
1

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!

TMN
  • 11,313
  • 1
  • 21
  • 31
1

Six thinking hats

alt text

LennyProgrammers
  • 5,649
  • 24
  • 37
1

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.

talonx
  • 2,762
  • 2
  • 23
  • 32
0

The art of problem solving

duros
  • 2,464
  • 1
  • 21
  • 25
0

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.

0

Mind performance hacks

alt text

LennyProgrammers
  • 5,649
  • 24
  • 37
0

alt text

Conceptual Blockbusting by James L. Adams

A good book concerning problem solving.

gablin
  • 17,377
  • 22
  • 89
  • 138
-3
  • Code complete

  • The Pragmatic Programmer

Chankey Pathak
  • 3,249
  • 28
  • 32