I think it will be the exact opposite. As computers take over more and more jobs from us, we will need less "office workers" who know how to shuffle documents around, and more workers with programming skills.
You want to be a mathematician? You need to know how to program. You want to be a "secretary", you need to be able to dig through your boss's e-mail using regexpes when he needs to find sth, you are a dentist - you will install your own scripts on the website because you know how to do it from high schools.
In 2016 (or 2012) it won't be "oh, we need more skilled programmers", it will be "sure, you know programming, everyone knows, but what really you know?". Programming will have the same place on CV like "MS Office", or "keyboard typing" has right now. No big deal if you know it, but much harder to find your job if you don't.
Of course there will still be place for real computer experts - algorithm designers et al, but the basics will be known to more and more people.
This isn't going to manifest itself as more people knowing how to program, though. Easier interfaces and smarter searching, but not programming as we know it.
In 1980 you'd say that in 20 years the average office worker would be performing calculations on thousands of rows of data, generating charts, typesetting documents, creating full color presentations, doing business with clients in multiple continents and they'd wonder how people would cope with the increase in cognition required to do all that. But it's just button-pressing for most people.
In 2016 they'll say "we have a database with 4 billion data points and we need to infer customer behavior patterns from it". You'll say "Sure.", sit at a desk, click "Segment", click "Demographic: 18-21", click "Intersect", click "Products", click "Make Recommendations", click "Apply" and a discount coupon for "Justin Beiber's Comeback Tour" will be beamed directly into the eye sockets of anyone who bought canned salmon last fall.
I don't see a society where 80% programs, I see a society where 10% builds things for the other 90% and a huge part of the middle class will be automated out of existence. This, to me, is the big issue that will shape this generation and the next.
Excellent thoughts. I think that more people need to know how to program their computers. But, as you have so elegantly pointed out, the inexorable march of progress will not bring this to pass. It hurts a little to think about, but in a large way you seem to be on the money.
These ideas are worthy of more than a two paragraph comment on HN. I third the notion that you should pen a full blog post.
Give this test to the next 5 random non-technical friends and family you talk to:
A = 1
B = 2
C = 3
A = B
What does A equal?
I'm not saying people can't be taught. But think about how big the workforce actually is, think about how widespread MS Office skills are. For every power-user analyst and project manager that's really taking Excel out for a workout, there are 10, 20, 50 people who use Office in every day non-challenging tasks.
I've given that little test to my MBA wife and a GP family member and several other people. Hardly anybody gets it right.
Edit:
The x-factor here, btw, that determines whether or not somebody understands it, is whether they see that assignment is happening, not some sort of "wha? 1 equals 2? what is that?" And those that didn't just get it, even after I explained assignment they were just as puzzled. Just the concept of variable symbols confused and (i presume) disinterested them.
What we do here everyday, this is difficult, challenging stuff, that I don't think most the workforce will ever understand. Instead, people like us will be busy for decades to come, building tools so they don't have to.
There was a time when machines were new concepts versus simple tools. You could say, in the early stages of the industrial revolution, that soon everybody would understand and be able to fix their machines. But machine complexity has out-paced the desire and ability to learn those skills.
I don't think it's unreasonable for people to assume that = means equality, not assignment.
Edit:
In particular, the link posted in the second edit has a rather poor test using a and b, because it uses = in two different ways with no indication that the meaning of the symbol has changed. Maybe the problem with the test isn't just the people, it's the sloppy notation that assumes people with no programming background are able to infer when we mean equality and when we mean assignment.
The population that took that test were self selected computer science undergrads!
And even after three weeks of instruction most of the people who didn't understand it immediately never understood it. I'll quote from the article:
"Either you had a consistent model in your mind immediately upon first exposure to assignment, the first hurdle in programming-- or else you never developed one!"
My wife is a brilliant woman, fantastic at what she does. The GP I mentioned in my post is a very good doctor who had no problems getting into a medical school, passing his boards, or running a successful practice. But that doesn't mean that everybody is meant to be able to understand the abstract concepts you have to master in our line of work.
I wonder how the experiment would change if you change it to "let A = 1, let B = 2, let C = 3, let A = B", or "make", or some other verb that seems more like assignment.
Or if this were explained to be a sequential process and not a just a descriptive list of unrelated declarations. It seems reasonable to think that that list contains a contradiction if you've never been exposed to these concepts before.
So education and the availability technology will eventually result in many people with basic programming skills will result in not only computer literacy in the "I can use MS Office" sense, but in the "sure, I can hammer out a Python script to get this task automated or sift through that data" sense.
Is there some sort of disruption of (basic) programming skills coming the way blogging has disrupted journalism?
You want to be a mathematician? You need to know how to program. You want to be a "secretary", you need to be able to dig through your boss's e-mail using regexpes when he needs to find sth, you are a dentist - you will install your own scripts on the website because you know how to do it from high schools.
In 2016 (or 2012) it won't be "oh, we need more skilled programmers", it will be "sure, you know programming, everyone knows, but what really you know?". Programming will have the same place on CV like "MS Office", or "keyboard typing" has right now. No big deal if you know it, but much harder to find your job if you don't.
Of course there will still be place for real computer experts - algorithm designers et al, but the basics will be known to more and more people.