Programmers don’t own books, part II

(I begin this post as a reply to a comment from and then decided it merited a full post.)

Here are some possible interpretations of “The statistics about reading are particularly discouraging: The average software developer, for example, doesn’t even own a single book on the subject of his or her work, and hasn’t ever read one.” (From Peopleware, by Tom DeMarco and Timothy Lister.)

Divide the number of copies of programming books ever sold by the number of people writing code today and you will get a number less than 1.

Or:

Fewer than 50% of programmers own one or more programming books.

Or:

One of the above in combination with the stipulation that the book is directly related to what the programmer is working on right now.

Mary Gardiner points out that any programmer who took a course probably had to buy a programming-related textbook. It’s not unthinkable that the student (a) didn’t read anything like the whole book, (b) sold or threw away the book immediately after the course. In fact, I will guarantee (a). Also, plenty of working programmers never took a programming or computer-related course.

Note also that this statement was made in 1999. Perhaps things have changed.

I still want a source for this statement and have been googling around a bit to find my own statistics. Joel on Software says that the market for programming books is miniscule compared to the number of programmers in the world but doesn’t give any numbers to back it up, so strike out again.

O’Reilly says that English language computer book sales were around 7,000,000 copies in 2006 and appear to be declining. I’ll wildly estimate that computer book sales prior to 1995 were negligible, that 1995 – 2000 was 2 million books, 2000 – 2005 was 20 million books, and that 2005 – 2008 was 18 million books. So 40 million computer books total sold. I’ll estimate that 30 million of them went into the trash shortly thereafter, for 10 million computer books in the possession of a human today. I’ll say that 80% of those books are in the possession of programmers, for 8 million computer books in the possession of a working programmer. (Right now I would be passing the how-many-piano-tuners-in-Chicago question at a programming interview – if I hadn’t already stopped the interview and left.)

The U.S. Department of Labor says there were about 850,000 software engineers in the U.S. in 2006. However, I am certain this is a major underestimate; for example, this week I attended a meeting with a bunch of Wall Street IT people. One of them said, “We’re fooling ourselves, we’re all in the business of writing software.” Their business advantage at this point is based entirely on the in-house software they write, and it’s written only occasionally by people with the title of software engineer. Intel was like that too – all those “hardware engineers” are writing VHDL all day, not to mention simulators and optimizers and BIOSes, etc. The sciences are filled with non-software engineer programmers – so much work is done as simulation or processing of huge volumes of data. I’m going to grab a number out of the air and say there are 2 million programmers in the U.S., and that that represents, oh, 2/3 of the total world population of programmers. So around 3 million programmers.

So, call it 3 million programmers and 8 million programming books owned by said programmers. However you slice it, interpretation number 1 of the statement (books/programmers < 1.0) doesn't work out. So it would have to be based on the median rather than the mean.

It comes down to how Zipfian the distribution of programming book ownership is. I recently went through a major purge and kept the 20 computer books that I have ever read or referenced out of something like 40 – 50 total. (Bye-bye, Java in a Nutshell!) Let’s say that 90% of computer books are owned by 10% of programmers – totally reasonable – and you end up with about 1 million books to distribute amongst the bottom 2 million programmers. If they were completely evenly distributed (and they aren’t) you’d have 45% of the programmers without a single book. So 50+% of programmers not owning a single programming book kinda works given my wild estimates.

I am never writing a computer book.

P.S. Refinements on these numbers are welcome!

P.P.S My previous post on Peopleware is currently the 14th result on Google for “peopleware”. That’s disturbing.

11 thoughts on “Programmers don’t own books, part II”

  1. For the most part they are useless

    1) there is far more info on the web than you could ever possibly read
    2) you can’t use Ggoogle on books, or your text editor, etc…
    3) by the time they come out, they are outdated
    4) 90% of them are: “introduction to….”
    5) books don’t answer when asked questions, email lists do

    I’ve probably bought about hundred or so in my life. I have given almost all of them away.

    Google’s page rank is getting bad. Search for a kernel identifier. You’ll get thousands of old patches and nothing on what the function is used for.

  2. I cannot vouch for others, but I was raised on books. Before I ever saw a computer (at the age of thirteen) I spent two or three years reading books about OS/360, Fortran, JCL, PL/1 and other wonderful things. I managed to write a number of non-trivial programs and debug them dry (i.e. without actual computer, just going step-by-step) and even was given an opportunity to get them punched on cards and executed as a batch job. What a wonderful prize the final printout was! Oh, sweet 80-s… Then the books were mandatory. They were also extremely valuable and hard to get. Yet one could not even dream of dealing with computers without a pile of books – manuals, references and texts. I still remember a shock when I learned about man command on UNIX – this was nothing less than epiphany. Mind you, by then the “Mythical Man-Month” became my favorite bed-time story, so in theory I knew that documentation can be stored and managed by computers. Yet, who would be allowed to waste valuable storage for this!
    Yet, as I mentioned already, these are all things of the past. These days kids see computer well before they even know anything about programming. Not that they really care either. My 8 y.o. daughter routinely describes it in a very unorthodox way. My job in her description is more or less the one of an animal trainer working with extremely smart monkeys that live inside the computers. And who needs books to talk to monkeys!
    On a slightly less funny note, I myself find it more convenient these days to go to Google and/or Wikipedia for an answer, rather than going through pages and pages of a textbook. That is, I’d probably prefer a good book on a slightly more abstract or advanced subject to a bunch of web page links. But as an everyday tool Google and Wikipedia are probably by far superior.

    Having all this said, I have to note that you absolutely must write a book or two – just pick a right topic. That is, a comprehensive analysis of modern concepts and hottest issues in file systems and data storage would probably be a good one. I, for one, would be glad to own such a book and I am sure I am not alone here.

  3. I suspect you’re overestimating the US proportion of developer numbers. Europe collectively has at least as great a population, and probably a comparable proportion involved in coding of some form. And then there’s China and India – maybe not quite such a high proportion of their populations, but still large numbers. Wouldn’t be surprised if the US was more like 1/3 of the total..

  4. numbers shnumbers

    regardless of these numbers, are we just assuming that “programmers don’t own books” means “programmers don’t care about acquiring new knowledge”? I own 0 books, but I spend a lot of time reading stuff (manuals, papers, other people’s code, etc). We’ve had this thing called “the internets” for a while now..

    I realize that old people have a kind of “book fetish”, where they attach some sort of romantic notion to books. “Oh, I just love to grab my book and cuddle up next to the fireplace with my bottle of whiskey”. But the idea of chopping down a tree, slicing it into thin layers, printing information on those layers, and then hand-delivering them to 1 person across the planet (if someone else wants the information, you need to chop down a second tree and start over) sounds a bit archaic to me.. I wouldn’t mind if the practice stopped completely in fact, I’d love to leave some trees for my grandchildren.

  5. Re: numbers shnumbers

    Reading chopped trees in front of the fireplace is nice, and I’m in the mid-twenties ;-)

    But yes, I don’t think I’d read computer programming books in front of the fireplace anymore. The mythical man month or the ghost of the machine are nice reading material, but actual dull programming or project management books? I’d rather take a novel. I haven’t bougth any computer programming book for years, and when I think about it it has also been a few years since I last reached for any item in my large bookshelf full of computer programming books. Once in a while I look up algorithms in more theoretical computer science books, but even that information is my electronic library.

  6. Re: numbers shnumbers

    For reference-type material (things that explain how), I’d almost never buy a physical book – they’re expensive, can’t be searched, and are out of date by the time they reach the shelf. I’m never going to sit down and read such a thing cover to cover, which is the main value of a physical book. No, online sources are much better for things like language or library documentation.

    But more more theoretical or conceptual works, I’d much rather have a real book. Such things tend to stay relevant longer, and the lack of search is much less important than the ability to take it offline and read it on the bus. And in this category, I’m thinking of books like Knuth’s “Art of Computer Programming”, GoF’s “Design Patterns”, or my elderly copy of Tanenbaum’s “Computer Networks”. And in fact, I’m currently reading through Nielsen’s “Usability Engineering”, borrowed from a co-worker. Books not to help with an immediate problem, but to make me think.

  7. Domain knowledge

    I would say that the “subject of his or her work” could be interpreted as subject knowledge unrelated to programming. Most programmers in my experience are hired for their technical skills rather than domain knowledge. I would bet that programmers for human resources software are more likely to own (or have in their offices) books on the programming languages/technologies they work with than on HR. Or accounting. Or fundraising. Or supply chain management. Or systems and network administration. In some cases, I think even applies to debuggers and programming tools.

    I have worked at companies w/ hundreds of programmers working on commercial products where only a few of the programmers knew the domain — and in those cases, their perspectives were so narrowly focused (such as on optimal algorithms) that they are often surprised when talking to end users and hearing what they care about.

  8. Can’t grep dead trees

    That’s the answer I hear most often. It’s much more convenient to have the PDF versions of a bunch of O’Reilly books than to actually buy the books. Or to have an ACM membership with access to the digital library. Plus, most of the books function better as references than cover-to-cover reading.

  9. i’m not a programmer (i’m a distro maintainer), and i own… 14 programming books. two are on shell scripting so i’ll count those as directly related to what i do (ebuilds are bash scripts).

    i also have around 150 ebooks i’ve never read, but also never paid for.

    just thought i’d skew the numbers a bit.

  10. Re: numbers shnumbers

    The chopping down of trees is mostly done to make newsprint for newspapers. Next in line, there is quite a bit of chopping down of trees to make paper for inkjet and laser printers. Finally, way down the list of things we chop down trees for, is books.

    About 40% of the chopping down of trees used to make the newspapers, computer paper, and books today is from trees we chopped down a long time ago and used on some other newspaper or computer paper or book.

    In the USA, people and companies are so good at not throwing away the old newspapers, computer paper and books, instead putting them in bins especially made for previously chopped down trees, that the USA exports the previously chopped down trees as they simply cannot use any more previously chopped down trees to make new newspapers, computer paper and books than we already are.

    So, America’s chopped down trees of today and yesteryear are going into the newspapers, computer paper and books of other countries who can then avoid chopping down that many more trees themselves.

    Another wonderful thing, is we know how to avoid slicing the chopped down trees into layers and can therefore avoid printing our newspapers, computer paper and books on shingles, which are so inconvenient. Instead we mash up the chopped down trees and make many hundreds of newspapers, reams of computer paper, and boxes of books out of each tree. So, we no longer need to chop down a second tree for more shingles in order to make the second newspaper, second ream of computer paper, or second book.

    Just thought you would like to know. Isn’t it romantic?

  11. Not sure about the numbers …

    You are right, it’s not easy to find the data. But, I’m getting clues that maybe there are more than 3 million programmers on Earth.

    A BBC article, ironically lamenting that in the last two years or so fewer students are taking comp sci, has a chart that if you squint properly, you can glean that around 500,000 comp sci students were enrolled in UK degree-granting colleges from school year 98/99 to 04/05. They don’t give any hard numbers in the article, but it looks (again from the chart) like around 75,000 a year are graduating, with a peak of 85,000 in 02/03.

    However, what was striking was how those numbers compared to data for North America. Using the same values (undergrads enrolled in Comp Sci bachelor programs) the figure for 98/99 to 04/05 is around 330,000. Again I’m staring at charts here. Note that these figures include Canadian students.
    See:http://www.cra.org/CRN/articles/march07/vegso.html

    That same data set shows some other interesting numbers, though. CS bachelor degrees granted show that the correlation from enrolled to graduation is roughly 4:1; about 86,000 degrees granted. So, we could simply assume that the UK numbers fall in the same ratio, giving us 125,000 UK BAs over the same period. Using the exact US data ratio of 3.83/1 gives us 130,548.

    The study notes that enrollment has fallen before, notably in the late 80’s and 90’s. I think it was fairly common for anyone who could actually code back then, with high demand from the industry, to quit school or not even start, and get a job programming instead.

    I really don’t know what those numbers translate to “in real life”. Certainly a lot of UK programmers end up in the US. There are roughly 65,000 H-1B visas issued in the US each year (each visa is good for 6 years). Apparently there are additional visas available, usually added in specific legislation. From 2001 to 2004, for example, there were almost 200,000 visas issued per year. In 2004, it was reported that 100,000 US programmers were out of work (USA Today).

    Apparently, there are “more than 450,000” H-1B Visa holders working in the US right now.
    Above from: http://www.numbersusa.com/interests/hightech.html

    Information Week says (2006) that there are 3.5 million IT jobs and 565,000 employed programmers in the US, figures that have remained consistent year-to-year from about 2003, since the dot com peak of 747K employed in 2000.
    From: http://www.informationweek.com/news/management/outsourcing/showArticle.jhtml?articleID=193302725

    If Information Week is correct, then, what we can say is that it shows that chasing numbers of college grads and visa holders isn’t going to lead us to any meaningful numbers regarding how many programmers there actually are.

Comments are closed.