Tell me more ×
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.

Note. Although there are many book related questions. I hope (and I think) that this is different from others

I have just finished reading superfreakonomics and while it might be not be a part of any serious curricula for economics, as a layperson (about economics that is) I found it (and its predecessor) very enlightening. What I like about the books is that they manage to stay true to its central theme and the same time engaging the readers. Are there any similar books about programming which while may not as technical as a typical textbook are engaging and at the same time able to impart a central message or theme (such as best programming practices)

One book per answer so that they can be upvoted.

share|improve this question
I was with you until "best programming practices," which would get rather technical. Discards classics like Mythical-Man Month or biographies like Out of Their Minds (by Shasha). – Macneil Dec 19 '10 at 16:36
1  
@Macneil I think it is possible to discuss programming practices without getting too technical. If you have read freakonomics than you would understand what I am trying to say. – Gaurav Dec 19 '10 at 16:43
1  
I have read Freakonomics, but I don't know what you mean. Do you mean no formulas? Do you mean no code/pseduo-code? Or do you just mean it doesn't read like a textbook or a reference? ... And, do you want a lay person to be able to read it, as the case with Freakonomics? Your two goals are in conflict and it's hard to see what you want. – Macneil Dec 19 '10 at 16:45
@MacNell I meant the discussion can focus on the experience or statistics or some illustrative example like they do on freakonmics. – Gaurav Dec 19 '10 at 16:47
8  
The authors of Freakonomics, Superfreakonomics, and SuperCrunchers do not have THAT MUCH to say really. These folks are much better at self-marketing than economics itself. So ... just look for decent books, and then form your own opinion. – Job Dec 19 '10 at 17:51
show 5 more comments

closed as not constructive by Anna Lear Dec 16 '11 at 15:08

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 specific 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, see the FAQ for guidance.

8 Answers

up vote 7 down vote accepted

Hate to plug the man on his site, but Joel on Software is the most Freakonomicy book about computer programming that I have yet to read. It's pretty cohesive for being a collection of essays, a lot of it has more to do with managing programmers than programming, but it is still helpful for getting inside the programming from a different perspective like Freakonomics gets inside economics from a different perspective.

In fact, the first thing I ever read by Mr. Spolsky was him saying that a programmer should take macro and micro economics. (unfortunately I didn't read this until I was 2 months away from my Bachelors)

You can pretty much get the whole thing from reading his website's archives, but then again you can pretty much make out parts of superfreakonomics by reading the their blog on the N.Y. Times.

share|improve this answer
+1 In one possible interpretation of Gaurav's Q, this answer hits the nail right on the head. Note that Joel said that micro had the interesting and useful stuff, while macro had the strange things that didn't seem true. [A friend studying graduate-level econ at the UofC said his professor told him "all that we know about macro is that what we're teaching the undergraduates is wrong."] – Macneil Dec 21 '10 at 4:05
I have taken both Micro and Macro econ as well as game theory at my college. Unfortunately econ dept is so weak at my school, that I hated micro and macro - next to useless, and even game theory sucked to an extent. Beginning econ is all common sense anyway. I have learned so much more about econ through life experience, as well as reading Milton Friedman's Capitalism & Freedom, as well as various other decent books on the subject of econ/finance. In my opinion college tuition would be better spent on a compilers or a statistics class (if one is not required), but $ can be self-learned cheaply – Job Dec 21 '10 at 4:22
1  
Frankly, on of the best ways to learn about econ/finance is to work for a start-up. – Job Dec 21 '10 at 4:23

Have a look at the "Head-First" series of programmer books.

alt text

share|improve this answer
+1 for trippyness – Matthew Read Dec 19 '10 at 16:54
+1, I love this series of books because the active stance on learnability – Spoike Dec 19 '10 at 17:00
3  
+1 As the girl on the cover is hot, which is completely out of reality for the subject matter, unless the design patterns include something like they have in Weird Science. – Orbling Dec 19 '10 at 18:14
2  
Be careful about the girl on the cover... fishbowl.pastiche.org/2005/08/12/… – Note to self - think of a name Dec 19 '10 at 18:35

This one is really good.

http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758 alt text

share|improve this answer
2  
+1 And the sequel Rocket Surgery Made Easy is just as great! – Macneil Dec 19 '10 at 17:57

"Pragmatic Thinking and Learning: Refactor Your Wetware" is probably one of the most unconventional books about the nature of software development and the process of gaining software development expertise I've read (more comments here).

alt text

share|improve this answer
1  
This is a very good, thought provoking book. – Eric King Dec 19 '10 at 22:42

I'm in the middle of reading "Making Software: What Really Works, and Why We Believe It"

alt text

I'm finding it very interesting so far... O'Reilly's description of it is:

Many claims are made about how certain tools, technologies, and practices improve software development. But which claims are verifiable, and which are merely wishful thinking? In this book, leading thinkers such as Steve McConnell, Barry Boehm, and Barbara Kitchenham offer essays that uncover the truth and unmask myths commonly held among the software development community. Their insights may surprise you.

share|improve this answer

I think The Mythical Man Month is the original of all such books in programming. After all, it is where Brooks's Law was first proposed.

share|improve this answer
1  
And is both readable and entirely understandable by a lay audience, including even the slackest manager without IT or software development background. I've never given it to my parents to read, but I'm sure they could. – mctylr Dec 23 '10 at 20:39
Update: I actually let my father (my test subject as a lay audience) read MMM, and he read it over the holidays. He found it easy to understand, and enjoyed reading it. – mctylr Dec 29 '10 at 20:09

"Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold is a great book about computers in general.

share|improve this answer

My vote would be for far too uncommon early work by Robert L. Glass's Universal Elixir and Other Computing Projects Which Failed, Glass has written several books and tons of articles on the subject, but that book (and a few similar booklet sized collections of stories) is entertaining, while still being educational and short enough to provoke interest and hopefully understanding for a member of the general public, or perhaps the curious student who doesn't know what software development experience looks like (it's messy, does involves people if you hope to make it a career or livelihood, but at least your clothes don't smell funny from working with bad code).

I first read it as a kid in the 1980s, but the lessons are about mistakes we still make today as an industry and as a profession.

I'd also suggest the Mythical Man-Month by Fred Brooks as a classic book that more people should read, and required reading for any new programmers or anyone working with programmers.

share|improve this answer

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