In the interview with Charles Petzold I mentioned in my previous post, Petzold talks about the sharp decline in programming book sales. At one time, nearly every Windows programmer owned a copy of Petzold’s first book, especially in its earlier editions. But he said that now only 4,000 people have purchased his recent 3D programming book.
Programming book sales have plummeted, not because there is any less to learn, but because there is too much to learn. Developers don’t want to take the time to thoroughly learn any technology they suspect will become obsolete in a couple years, especially if its only one of many technologies they have to use. So they plunge ahead using tools they have never systematically studied. And when they get stuck, they Google for help and hope someone else has blogged about their specific problem.
Companies have cut back on training at the same time that they’re expecting more from software. So programmers do the best they can. They jump in and write code without really understanding what they’re doing. They guess and see what works. And when things don’t work, they Google for help. It’s the most effective thing to do in the short term. In the longer term it piles up technical debt that leads to a quality disaster or a maintenance quagmire.
I have to disagree with your diagnosis: I don’t think developers are any less interested in learning technologies well than they were 10 or 20 years ago. What’s changed is the amount and quality of online material. I’ve been reviewing books for “Doctor Dobb’s Journal” for over a decade, and the majority are no better written, and no more likely to be correct, than what’s freely available on the web. In practice, the web-based material is more likely to be up-to-date, and frequently has fewer typos (easier to push electrons around than to reprint a single page).
Interesting note, John. Almost a rant! I wonder if something more specific is bugging you?
Part of me wants to say that experimentation (“they guess and see what works”) is no bad trait in a programmer; part of me wants to say that online references beat printed books in many ways, not least because you can google them; and part of me agrees with you, that training is vital, and that programmers will google a quick fix rather than make the effort to read a proper reference.
I know my own blog gets plenty of hits from people searching how to do something (e.g.) using Subversion, which has a fine online manual, and I sometimes worry if the information I provide is up to date and accurate.
I wonder if there aren’t a lot of developers signing up for services like Safari? My company has access to several on-line libraries and I find I rarely need to purchase books anymore. The books I purchase are aimed at concepts, architecture and algorithmic concepts. I Google for recipes.