This article by Marc Scott on the state of computer knowledge among young people got me angry. All the more angry because, among all the bits I disagree with, I think he has a point.
In summary, he is arguing that the widespread belief that the young people of today are knowledgeable about computers is wrong. In Scott’s view, which I largely share, there’s a mistaken conflation of being able to operate a computer with having an understanding of computers. Although the next generation of people are comfortable using computers in their daily lives, they are helpless when it comes to performing non-routine tasks or anything technical. Any abilities they do have are spoon-fed to them and they have no ability to self-teach.
The first thing that bothered me about the article was the arrogant tone. There’s nothing wrong with a good blog rant, especially on a site you own. I know I’ve done a few myself. But the article seems to aim to right some of these misunderstandings, and if so the tone is working against this by being dismissive.
Combined with the arrogance there was a vein of mind-reading being applied to the author’s opponents. It makes for good writing to tell a story involving emotional colour, but the inferred (or rather guessed-at) thoughts of one’s antagonists can’t be used as a part of your argument without further proof. In the anecdote that leads the article, Scott eviscerates the character of a young woman who asked for help with her computer, just because he didn’t like the look on her face. His characterisation may be true, but it would be a stronger argument without this.
Putting aside these reservations, I find myself agreeing with the content but somewhat disagreeing with the prescriptions. I certainly agree that there’s a lot of ignorance out there, but I don’t think there’s ever been a golden age where understanding of computers was any better than it is today.
I think things look worse than they used to for two reasons. Firstly, there’s more broad exposure to computers as thus more opportunities for people to reveal ignorance. When I was growing up, people who had no affinity for computers simply didn’t use them. Nowadays, school and jobs and so on force people constantly into situations where they have to fix WiFi problems or display a PowerPoint with the wrong version of the software.
The other problem is something that I think Scott pretty much nailed: there’s a complacency in the way older people judge the skills of younger people. If you’ve never deeply understood computers yourself, then someone who can change the WiFi password probably looks pretty similar to someone who can program a WiFi driver—hence the tedious requests to fix printers that all software developers receive. Again, while this is a problem (and a particular problem when the complacency lies in the teachers who should be educating our children), I don’t see a reason to suppose there’s a decline here.
As to the proposed solutions: clearly anything that spreads knowledge is a good thing. Parents should encourage their children to investigate the world around them and teach themselves, in computing as in anything. But I’d prefer to emphasise teaching everyone the basics rather than trying to produce a few more people with advanced skills while demotivating the rest.
A future where everyone can program is a theoretical possibility, but not with the current state of technology. If it can work at all, I think we’re missing some advance that will make it possible for people to build customised solutions with far lower cognitive load than it currently involves. And while we’re speculating about such future advances, we can probably equally well imagine that the whole concept of programming as an activity will become as outdated as scribes copying books by hand.
In lots of fields of human endeavour there are purists with deep expertise who decry the lack of knowledge among the amateurs. The same thing is true of cooking, tailoring, home repair and car maintenance. Realistically, we won’t all become experts in these things, and I don’t see why programming should be any different.