Programmers Don't Read Books -- But You Should

Love the concet. And I truly can’t wait until stackoverflow.com gets going. I used to by books all the time. I have, and have read, most of your recommended list.

Now, for cost reasons, I use Safari Bookshelf unless I really want a copy to keep for reference.

I don’t like Safari’s model of forcing you to buy slots because you have a minimum amount of time a book must occupy a slot. But it is an effective way for them to make money. Until you roll your solution out anyway.

My own belief, based on my own experience, is that the ratio of good usable books vs manual reprints with simplistic examples is pretty bad. And most book stores are devoting decreasing amounts of shelf space to the whole genre. You can find more certification books than anything else. And the number of titles surrounding productivity apps like Office far exceed the number of actual programmig titles now in Borders and Barnes and Noble.

When I am being asked to pony up $60.00 + for a book I stop and think now, and really be very aware of my own perceived value. Am I really going to get my value?

Good luck, I think you are on the right track!

Cheers,

Robert Porter

Oops, meant concept above, not sure what concet is?

Great column, thanks.

I think most programmers have stopped reading books on the subject because the web has become the best source for the standard information as well as notes on the “Gotchas” of any facet of any language.

Unfortunately that leads to lazy (and rude?) newbie programmers and programming students who ask in forums “Will someone please tell me how to write my XXXX system?” As if 1) there are a dozen programmers who read that forum with a complete inventory control system sitting on their hard drive, and 2) that the newbie could actually understand and implement such a system if the competent programmer dropped a fully-documented system in their fat laps.

Personally, I’d rather have my books online than in hardcopy because they’re much more searchable that way for me. But I ain’t paying O’Reilly $25 per month for access to 10 books. That’s just stupid.

I wish each printed book would come with a pdf version you could download and lock to your machine. Heck I’ve had a pre-release book on order from Amazon since January and it’s now not due out until June! Let me pre-order it and send me the PDF now so I can start using the info! Please??? :-/

Worst computer book? The two books in Roddy’s link sound like they’re merely factually incorrect. Gollmann’s “Computer Security” (the old version, anyway) is my number one worst book. It’s just awful to read. Here’s the link:

http://www.amazon.com/Computer-Security-Dieter-Gollmann/dp/0470862939/ref=sr_1_1?ie=UTF8s=booksqid=1209471062sr=1-1

Just another tip-o-the-hat to “Don’t Make Me Think.” Excellente!

(I especially enjoy that not long after reading it and the praises Krug gives Amazon for their tab navigation…they change it.)

“They do not explain how, but why.”

Reading this made me remember something else I read today,
http://blog.jayfields.com/2008/04/understanding-why.html

Hope that stackoverflow will be more about the “why”, and less about the “how” like experts-exchange is.

The list of programming books that I actually re-read or have read all the way through is pretty short. I have perhaps 60% of your bookshelf there (including Basic Computer Games and the Tufte books).

Three more I’d add are Effective Perl, SQL for Smarties and Unix Power Tools. Every time I open one of those, I get a new insight or inspiration.

I think Code Complete and UPT are probably the only ‘fat computer books’ that are worth the bulk.

To me, the main thing about books is that you are exposed to things in a way that you aren’t with online articles. You get more structure.

If you get a good book on say, ASP.NET and read it cover to cover, you find out about its capabilities. If you don’t know the capability is there, are you going to google for something about the capability, or just build something in a hackneyed manner?

For the detailed stuff and for code snippets and the like, I prefer articles, though.

“On a related note, has anyone ever read a good book on microsoft programming techNologies (VB6, .NET, MFC, etc)?”

I really like Jesse Liberty’s Programming C#. His book on asp.net is not bad (and it very much deals with asp.net code, not using vs.net).

I’ve read several programming books this year and not one of them has bothered to include a chapter on security, including “The ASP.NET 2.0 Anthology”. I’ve also noticed that the programmer elite has nothing to say about security; no blog posts or mention of it when complaining about the shoddy work in the profession. Now there is news of a massive SQL Injection attack and nobody is trying to educate developers about how to deal with it. Unfortunately I have inherited a classic ASP web application that is probably extremely vulnerable so I’ll have to study stored procedures today.

VB.NET - that’s really timeless! No, I meant worthless…
It seems the last winter was not cold enough…

Programming books which teach you code are useless and often contain typos and other errors which make it more harmful than good. Books about programming which teach process, methodologies, strategies, pitfalls and what’s going on behind the scene are what we should be handing our kids.

You want to know syntax? Google it. Want to know why your app is slow when all you are doing is combining strings, read a book.

Oh, and stop talking smack on PHP.

I tip the hat to “Don’t make me think” as I’ve probably read it several times since I got it earlier this year.

I’ve got stacks of books for programming, cleaned out a lot of it several months ago and now am replacing it with the why? books and not the expire-able books that document how to do something in a language/product/tool, etc. The web is a fine resource for finding relevant solutions to the books I no longer buy - although I do still enjoy reading a book as opposed to web pages, just not the same easy to use interface for reading (although much easier to use searching…)

I’ve got several of the books recommended off of your list and I do enjoy them all.

Many of the topics brought up in this discussion hit close to home for me. I recently graduated with a double major in comp sci and comp eng. The hardest part of my courses always fell into my teachers focusing on the how. Rarely did they get into why, that was usually something I had to stumble upon myself.

Most of my fellow students fell into the copy and paste programmer description. To be fair, I can’t blame them. You can only really apply as much thought as you have understanding.

To sum it all up, my college career would have been vastly easier and more enriching if my professors followed my philosophy:
“The why explains the how.”

An less obvious benefit of books:

A boring train journey went much quicker at the weekend after I got into an interesting conversation with a stranger who had noticed I was sat reading “Code Complete” and correctly assumed I was a fellow developer.

Incidentally, Code Complete is probably one of those larger books that Doug McCune would complain about having to lift - but fortunately the content is excellent, and a free arm workout is always good.

I think one of the reasons most programmers don’t read books is that the constant deadline pressure of our jobs discourages taking any time during the work day and many (most?) of us work much more than 40 hours a week, so we don’t have a lot of time outside of work. However, I have always found time, somehow, to keep reading software books. I no longer read technology specific books.

As other people have mentioned, I think it is generational as well. I started programming professionally in 1979. I don’t think I had access to the internet until 1987, so my habits were established well before the web. Also, I notice that the people I know in their 20s don’t read any books of any kind not just programming books.

I’ve found that it takes at least 5 years out of school before you have the desire to read a book.

This post has uncanny timing. Just last week I purchased, for the first time in a while, my first software engineering book whose purchase was not mandated by my university: Applying Domain-Driven Design Patterns by Jimmy Nilsson. Furthermore, I started my own blog, partly inspired by my hours of reading this one.

I tend not to have such a negative view on programming books. They can give a programmer a consistent style and technique for writing in the given language. Pouring over various internet articles for tips can lead to inconsistency, and I experienced this first-hand.

I had no formal training in VB.NET outside of following fragmented code snippets on the net. As a result, the first few months of code I cranked out at my job contained inconsistent styles…sometimes using MethodName = ReturnValue, sometimes using Return ReturnValue, etc.

Finally, I agree that while language-specific books are nice pragmatically, the books I enjoy the most are the “why”, not the “how”. I think the Nilsson book will be one of these. In addition, Eric Evans’ classic Domain-Driven Design book was a book I carried with me to and from work and used every day.

25 years ago I taught myself Turbo Pascal 3.0 (wow, am I getting old) thanks to a book by a fellow named Tom Swan. Great stuff.

Ten years later I found myself editing technology books, mostly consumer stuff (I edited David Pogue’s books for a couple years) but also the occasional programming book. I learned that the entry-level “Teach Yourself in 24 Hours” programming books are written by the publishers’ favorite authors – people whose entire programming knowledge is stretched to write the book, but can churn out piles of serviceable text on time. At the other end of the spectrum are the really deep and niche programming books. It’s incredibly difficult to find authors for those because it takes the rare combination of deep experience and the ability to write. My employers could find one or the other, but seldom both. They tended to favor experience, but they weren’t always good judges. So as the editor I spent ridiculous amounts of time fixing inaccuracies and making their writing make sense.

A serendipitous turn of events led me to the software (LabVIEW) that I have been making a living from for the last 9 years. And I learned it from a book first. Since then I have had formal training, a little bit of mentoring, but many more books. Code Complete is one of the best and my favorite. Although it teaches little about my actual software, what I have learned from it about software engineering principles and project management gives me a much deeper appreciation for the big picture and how to get a project done most efficiently.

What’s up with Code Complete being on the second shelf. That book should have it’s own book case…