There's been a bit of a debate in tech circles about the idea that everyone should learn to program.
It's of particular interest to me, because I have two home-schooled children, and while my wife does the rest of the teaching, it's up to me to teach them computer stuff.
I want them to understand computers and what they do. I won't be teaching them to write software beyond one or two sessions to get an idea of how it all works. I started a few months ago, working up from transistors to logic gates to microprocessors, and I have a syllabus sketched out that goes on to networks and the web and so on. Currently we're on compilers and interpreters and virtual machines.
One thing that became very obvious is that those of us who were really into computers as children in the 1980s spent enormous amounts of time learning about them -- probably more than I spent on the whole of my formal education, in my case. There's no possibility of teaching what I learned in a scheduled classroom setting, unless the children were to show the same fanaticism.