21
votes

Both in Code Complete by Steve McConnell and The Pragmatic Programmer by Andrew Hunt & David Thomas, they allege that most programmers don't read programming-related books as a habit, or at least not often enough. Does this still hold? Are programmers who do read such books still rare?

I must admit that only quite recently did I start reading (and now I can't stop; it's burning a whole in my wallet!). Before I was actually against it and argued that it's better to write programs than to waste time reading about it. Now I realize that the best outcome, for me at least, is to do both.

EDIT: I actually meant any kind of books that on way or another was related to programming; be it either on a particular language, technology, pattern, paradigm - anything as long as it may benefit you as a programmer. I was just referring to Code Complete and The Pragmatic Programmer because that's where I read that programmers don't usually read such books. It would have looked stranged if the title just read "Are programmers who read books still rare?"

0

16 Answers 16

19
votes

Everyone seems to be answering this question personally, as in "I do read such-and-such." However, as a person hanging out at this site, you are already a cut above your "average" programmer IMO. So this skews the numbers dramatically. To answer the question directly: yes, programmers that read books are a rare breed. I've worked with dozens of programmers, and only know two or three that would pick up a book to solve a problem. Most of them would search Google for a particular program, or just stare blankly at the screen hoping for divine inspiration. :-)

And the "theory" books such as Pragmatic Programmer and Code Complete are even more rarely read by average programmers. If a programmer is going to read a book, it is more likely to be a technical book on the specific language, framework, or technology they are working on. The "soft" books are not even on most programmers radar.

0
6
votes

I can't stop growing my Amazon wishlist. The most recent book I've been working through is Clean Code by Robert C. Martin (Uncle Bob). Recently a bunch of programmers in my area even formed a book club, so that we can learn best practices together and exchange our experiences. I don't think I'd be the same programmer if I did not read books on the programming craft. There's a great wealth of material out there and it is nice when somebody condenses it for you and gives you a starting point before you go experimenting on your own.

1
  • 3
    A book club sounds like a great idea! Sep 24, 2010 at 9:21
5
votes

I read them, so add 1 to the your sightings list. (How many before we are off the endangered species list?)

Seriously, I'm surprised that the top vote-getters at the moment are the people saying they see little value in programming books. There are certainly some I wish I hadn't spent the money on, but there are several which have totally opened my eyes to new concepts & techniques and which made me a better programmer. For instance:

  • The Zen of Code Optimization by Abrash - I think this one is the main reason I am a real-time programmer today.
  • Ruminations on C++ by Koening & Moo - The real value of iterators and the STL did not click until I read this one.
  • Refactoring by Fowler - Taught me how to structure and restructure code.
  • Extreme Programming Explained by Beck - Even though I never completely drank the agile kool-aid, this book changed the way I think about requirements, testing, and managing the development process.

I learned how to code in school, but I didn't learn how to code well until I read some great books.

5
votes

Whilst interviewing developers I've noticed that the ones who perform better at the technical tasks (both verbal and practical) and (far more importantly) understand the reasons why they're doing what they're doing are all developers who read at least the occasional book. I don't think that that's entirely a coincidence.

Although you can certainly use Google for quick answers and blogs can be excellent for indepth coverage of specific things, books I think give you a more co-ordinated view of the topics they cover. Also, by providing the information in a different context they help knowledge stick in people's heads better. Even if it's something you already know I think it's valuable to have something which validates that knowledge.

Finally, if someone is reading books about the subject they're working in then it almost certainly means that they're genuinely interested in what they're doing and not just plodding through things - for knowledge based or creative jobs this is very important if you're after the best staff.

4
votes

I assume you're talking about books on the practice of programming and software development rather than on specific technologies...

Personally, I tend to avoid these books because so few of them have anything useful to say. For every pair of pragmatic programmers, there's a hoard of authors pushing their personal methodologies / prejudices / grand unified theories... and while it can be great fun to listen to them argue in a podcast, reading their books is only somewhat more entertaining than reading their shopping lists... and probably less useful. You'll get a lot of the same advice on forums and... whatever this place is... with the added advantage that disagreements get argued out between people who actually believe them rather than between the author and his strawmen.

The meat in Code Complete, Mythical Man-Month, etc. are observations that most experienced readers are at least subconsciously familiar with already. This makes them most useful for reinforcing assertions, and teaching intermediate programmers.

2
  • I agree, most things I can read from a book, I can find much more efficiently on the web. The only reason that I just ordered my first software related book is because the company where I just started offers a 150 euro (field related) book budget per year. Sep 24, 2010 at 9:02
  • I disagree. I've been learning agile practices lately and didn't have a clue about how to use those practices until I read books about Test Driven Development and Continuous Integration from some of the "Kent Beck Signature Books".
    – Brian D.
    Dec 16, 2010 at 17:12
4
votes

I really love programming books. I have 150+ of them. And still room for more.

0
3
votes

Well, I can't speak to other programmers really.

I try to read high-quality computer books. Currently I'm working on a read-through of Mythical Man-Month.

My next book is probably either Russell/Norvig AI book or McConnell's Software Estimation. In the not-to-distant future, Seibel's Practical Common Lisp looms.

2
  • Out of interest, how do you gauge 'high-quality'? Amazon reviews/rankings? Personal recommendations? Sep 24, 2010 at 9:19
  • @JBRW: books which seem to be generally agreed upon as very good. e.g., Code Complete. Also, seminal books tend to have a good quality as well. Sep 24, 2010 at 15:46
3
votes

Read, read, read, read... From books, from blogs, whatever... Better from good books, but even reading critically bad books will help. But keep learning. Keep learning everyday.

1
  • 3
    "Leaders are Readers" - Tony Robbins, "Awaken the Giant Within" Sep 24, 2010 at 9:20
2
votes

I read them back when I was just starting out, but now most of the books that I have around tend to be focused on the non-coding part of software development (e.g. The Practical Guide to Defect Prevention, Software Estimation: Demystifying the Black Art), reference books, or books focused on a narrow computer science concepts.

The biggest problem I have is that the technology specific books tend to be obsolete in a couple of years (e.g. not many people writing Visual Basic 6 these days) so I've found that investing on those books that can become obsolete tend to be a bad investment, even more so when with how much information is available online these days. Likewise, some of the books on such things as design principles tend to be ignored in favor of some of the really good sites out there such as A List Apart.

2
votes

The reason to read books is to improve your own knowledge and skills. That implies two things: (1) you have to recognize you have room to improve, and (2) you have to want to improve. Many of the programmers I've met had ego's the size of planets. A large chunk of the rest were happy to coast along.

1
vote

I got a new Kindle (Wifi+3G) last week and I love it, I can't stop reading. I've bought several technical ebooks from both Amazon and other publishers, and am plowing through them at a heck of a rate.

Physical books now seem terribly old-fashioned to me now. I didn't quite expect that so soon.

2
  • I've read that for actual studying paperbooks are better. Navigation and notes.
    – user1249
    Oct 10, 2010 at 18:33
  • I've been spending a lot of time using the mobile version of O'Reilly Safari on my kindle. I can definitely recommend it. The books are reformatted for optimal rendering, and you can zoom into images if necessary. Oct 10, 2010 at 19:43
1
vote

I haven't read a technical book in years...literally years.

Partly its about availability of information elsewhere. Blogs, articles, white papers, reference sites, peer support sites like SO...

Partly it's to do with the expense and impracticality of paper books. Think of the numbers you used to read something as gospel only to find it was subjective, or perhaps out of date. Even reference manuals date quickly, given the ever-changing nature of our world.

I'm not knocking technical books per se, but gone are the days where they were your only source of information on a technical subject. We get our information from a variety of sources now.

I'll confess to missing them somewhat, but for me at least, times have moved on.

1
vote

A personal story:

I once gave a presentation to a room full of 50 or 60 developers about some .NET related stuff (they all worked for the same company).

Microsoft was sponsoring the talk and gave me a couple of copies of David West's "Object Thinking" book (by Microsoft Press).

Coincidentally, I had just read that book and found it a very nice read. I even recommended it to the audience explaining that I had some copies to give away and that if someone was interested all they had to do was to ask for one.

Several people came over to browse the book, but none of them, I repeat, no one, not a single person decided to keep it.

1
  • Don't blame them for not picking the book up. Object Thinking is the least practical book on OO I've ever read.
    – Ed James
    Jul 22, 2011 at 15:04
0
votes

I would still like to pick up a book to learn the basics of a language. This way I can look at it and get an idea of what I'm doing any time of the day/week and not have to worry about a laptop. Once I've read the book, then I'll start learning with code.

Theory, then practice.

0
votes

I don't buy as many programming books in paper format as I used to. I have a subscription to Safari Books Online, where for the price of one book a month, I get unlimited access to the full text of thousands of programming (and other) books from publishers like O'Reilly, John Wiley & Sons, Addison-Wesley, and others.

I also have a first generation Kindle and sometimes buy programming books for it; however I think the large Kindle DX (which came out after I got mine) would be a better platform for technical material.

0
votes

(Wow, 5 upvotes and 5 downvotes — this opinion seems to be more controversial than I imagined!)

I don’t read books such as Code Complete or similar, nor do I feel that I “should”. What does that mean, anyway? What happens if I don’t?

First of all, I don’t think such books make me a better programmer. They might work for other people, but not for me. The factual information they contain is not very detailed or technical, so I already know the vast majority of it. The rest is opinions that I may or may not agree with, but which I certainly won’t slavishly adopt.

The only programming-related literature I’ve actually found interesting to read are purely technical documents with an absolute minimum of subjectivity. My favourites so far are the C# language specification 4.0 and the Unicode standard 5.0. Other people find this a very dry and boring read, but I find that it engages my mind, and it potentially provides information that I didn’t already know.

Update 2010-Oct-07: I just had The Pragmatic Programmer pointed out to me, so I looked at the first few pages on Amazon. In the section “Who should read this book?” it says: “Perhaps you feel frustrated that you don’t seem to be achieving your potential. Perhaps you look at colleagues who seem to be using tools to make themselves more productive than you.” Uhm, no. None of that applies to me. I am frustrated because my colleagues are much less productive than me (and they don’t care). I feel that I’m achieving my potential (what little of it I have, anyway). So yeah. No point in reading this book. Just a case in point.

5
  • 1
    The Unicode standard? Really? I can see a mountain of great information that can be mined from the C# standard, but Unicode? Sep 24, 2010 at 1:35
  • 1
    @Robert: I’m surprised you say that. The C# spec is only about programming. The Unicode standard provides a wealth of real-life information about the world’s writing systems, their history, their relation to languages, their geography and their cultural baggage, in addition to all the programming/technical stuff.
    – Timwi
    Sep 24, 2010 at 7:41
  • 2
    -1 If you think that Code Complete or similar kind of books doesn't teach you anything... :-/
    – Khelben
    Sep 24, 2010 at 7:51
  • @Timwi: it's very easy to argue that book X won't teach you anything if you haven't read it... but how could you possibly know? Sep 24, 2010 at 9:18
  • @JBRWilkinson: I don’t claim to know that for a book I haven’t read. It’s just my experience with the books that I have read.
    – Timwi
    Sep 24, 2010 at 13:53

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