I was in Borders the other day, looking for Schneier’s new book on Practical Cryptography. [I found it. Fifty bucks. No thanks, I don’t need it that badly]. Anyway, I found myself watching a Borders employee shuffling books from one shelf to another like a busy ant, and took a quick taxonomy of the tonnage that was being moved around.
It seems that chain bookstores group computer books by the following categories: Certification, books about Java, books about Visual Basic, books about Windows, books on Random Crap, and Advanced Crap. The Advanced Crap never changes — it’s usually Knuth and Rivest and maybe some stuff on graphics or C++. The Random Crap includes versions of Linux that are two releases out of date, books on CORBA, and pithy works on Enterprise Wireless Database Synergy.
You can tell which language is on the rise in the industry by dividing the number of linear feet of books like “Learn Java in 30 days” by the minimum time they claim you can learn it in. By the time a language is moribund, you have books like “Learn Visual Java Beans in 13 Seconds.” The asymptotic result is obvious — you can pick up a book and learn something in less time than it takes to go to the cash register, which means that the chains have to tread on something else to make money. I think this is the real reason why we have a five or six year cycle in the language-of-the-week. (I don’t know what’s going to follow C#, but there will be a bunch of badly written Sams books on it: 30 days, two weeks, 7 days, 24 hours, 13 seconds, BOOM, time for something else cool).
The Certification books are the scariest ones. For various reasons, I have a number of friends who decided to get into the certification treadmill a couple of years ago. With few exceptions, they are not now working in the field. It was particularly difficult to hold my tounge while I watched months of effort and probably thousands of dollars going into Novell Netware certification courses (“Look, it’s dead. Well, not quite dead, but darn near. Look how fast Sams claims you can learn that stuff.”) One evening I got a call from a friend who was standing outside his school; he was in tears, they had chained the doors that morning and cancelled classes forever.
You can sometimes make a quick buck in the software industry, but it’s much harder to make a long-lasting buck. I suggest to folks who are reading stuff from the Certification aisles that they also visit the shallow end of the Advanced Crap section, starting off with some Sedgewick or SICP (if they are bold). It’s the difference between knowing how to use a calculator and knowing how multiplication works. I’ve tried to explain (for instance) how the design of TCP/IP wasn’t handed down on a tablet, but that it was hard-won engineering, guided by experience and popularized by careful politicking and accident. But I have friends who probably think that class C addresses are somehow connected to the physics of the Big Bang. That, or a greybeard’s stone scribblings.
Wups, my build is done. I should have learned SQL by now, but I guess I’m just lame that way.