qwghlm is right when he refers to David Brin's article saying that though there are many more computers out there than 'back in the day', you really have to go out of your way to find a programming language. Granted, most people don't want a programming language, but there should be something for the idly curious.
From a young age (early 1980s) I had a home computer, my first computer was a Commodore Vic 20, it plugged into the TV, had 3.5k of ram (this is about two floppies worth, or 0.5% of a CD-Rom), and loaded programs from a cassette player... but it taught me how to program. I then skipped the Commodore 64 and went straight to the Amiga 500, which had 4096 colours (using a clever dodge to boost the number of colours from 256). I wrote a few programs on the Amiga which I released to the public domain (before the internet, there were public domain libraries where you could order floppies). I wrote a painting program which I called 'Ampp', and a fractal library which could draw trees, coastlines, mandlebrot sets, koch curves and so forth, all based on mathematical algorithms.
I've an A level in computer science (admittedly, I'm very outdated now, it's the equivalent of passing English A level when Chaucer was all the rage - but I have the principles, and though I don't know the nitty gritty of C, Perl, php and so on, I could get up to speed reasonably quickly given a block of time, the will to do so, and a good resource to help me along).
Back in 'the day', I well remember that the school network had a shared hard drive that sat in the corner and was the size of a washing machine. My A level, taken in the late 80s and early 90s, involved learning things like the basics of an algorithm, pseudocode, and so forth. I programmed in assembler, and pascal (my A level project was a spell checker). At university I programmed the mainframe to analyse data from CERN, I had to use Fortran-77 and the mainframe ran batch jobs, so I submitted the program to the mainframe and a few minutes later it emailed to say the results were ready. I had to go to the next room for a printout.
I really must see what a CompSci A level involves these days, but I wouldn't be surprised if it was more 'IT' (i.e. use of computers) than programming. To me this is like gaining a qualification as a mechanic without going under the bonnet of a car.
David Brin is right to point out that the lack of an easy to access programming language is the root of this, however, I don't lament that it's no longer essential to get into programming in order to get something out of a computer. Most people don't want, or need, to get involved with programming, but for the curious, it's paradoxically difficult to make a start.
I'm quite familiar with microcontrollers (using the PICAXE environment, I'm not familiar with programming blank PICs at the moment, hopefully that will change) - and these provide a good learning environment for programming skills. I'm convinced that elegant programming comes from programming within limits (the modern PC encourages spaghetti code rather than 'tight' code as there's so much space) - the PICAXE chips are good for encouraging 'tight' code as there are only 256 bytes to play with, 5 input lines and 8 output lines!