There's a similar push for basic financial literacy in schools - most people are not going to grow up to manage a hedge fund, but that doesn't mean that they shouldn't learn about compound interest, debt, inflation, supply & demand, budgeting, equities, and business fundamentals. Managing your personal finances is a basic skill, and people who don't have it are severely hobbled today.
Many lawyers and civil rights organizations create "Here's the basics of the law" pamphlets, websites, and HN comments. Things ranging from who owns your IP when you moonlight, to what are your rights when the police pull you over, to what your responsibilities as a homeowner are, to what you should consider before getting married. These are not a substitute for trained legal advice, but they are hopefully enough to keep you from doing things that will cause legal problems later. And of course, 7th grade social studies in most American public schools teaches the foundations of the legal system and how laws are made and ratified.
Basic mental health is increasingly taught in public schools, along with what a healthy relationship looks like. A 16-year-old kid is obviously not going to be as good at regulating their emotions and perceiving those of others as a trained therapist, but particularly given the epidemic of domestic violence, it's been deemed important enough that we train our kids in basic psychology.
Everyone is expected to be able to write and communicate well, whether they're a journalist or not. We get decades of schooling on this, many colleges make "You will be able to write when you come out of here" a key selling point, and illiterate people tend not to do so well in modern developed nations. Journalists get more practice with this, but it's still considered to be a basic skill.
The progression for all of these is that the skill is initially associated with only a small number of practitioners, but eventually touches enough of people's day-to-day actions that the population requires a common base of knowledge to function. There was a time, a couple hundred years ago, when knowing how to read & write was not common knowledge, and largely restricted to lawyers and clergy. There was a time, barely 50 years ago, where common financial skills were pretty much restricted to business owners (you could argue that among people below about the 80th percentile in education, financial literacy is still uncommon). Emotional intelligence is currently a very scarce commodity. But the pattern is that as a skill becomes more fundamental to daily lives, the basics of that skill start getting taught to a broad base of people.
I'm in my 30s and relatively new to choosing programming as a career. I didn't learn it because someone told me I needed to. I saw (and see) real social and business problems that I wanted (and want) to work on.
The problem I see with the push for everyone to learn code is that it doesn't just expect people to have basic literacy with computers, but wants large numbers of them to choose programming as careers, if only they could be convinced how rewarding it is (financially or otherwise).
To use your examples, everyone should have basic literacy in finance, the law, mental health, and writing. But not everyone should become a lawyer, a finance professional, a psychiatrist, or a novelist. In fact, for many of the aforementioned professions, you could argue we have too many people practicing them already.
Similarly, you could argue we don't need more coders who only want to do it because someone told them it's financially rewarding or is the right thing to do.
The point is that software literacy is becoming more relevant to everyday life. The point of a mathematics class is not to create professional mathematicians, it's to provide the concepts of mathematics to students. I'm not a mathematician, but I use at least trigonometry(mostly through polar coordinates) every couple days to solve something a lot of other people would just let get out of hand.
I see software literacy as a tool which will become increasingly relevant as the world starts wanting more diverse software. You will start seeing florists, dentists, architects, and foremen writing programs to solve issues which are not complex enough to warrant a professional software engineer, or which require so much domain knowledge that they couldn't be written by most software engineers.
That's really what this is about, in my opinion; at least personally I wouldn't be so misguided to think that the point of software literacy is to churn out a country full of specialist software professionals.
The point is that basic understanding of programming is basic computer literacy. The gist is that if you can't automate with a computer, you aren't really able to use the computer as a tool.
One could argue that if you're able to use the computer to catalogue and enhance data, turn data into information (like visualizations) -- then you're able to use a computer. A lot of this can be done in Excel (or another powerful spreadsheet program). But then most will also tell you that spreadsheets are visual programming tools. And that you might need to do (and automate) transforms on data that still need some form of "actual" programming -- be that VisualBasic, PowerShell, Awk/Sh -- or "proper" programming in a "proper" language.
Another side to "everyone should know how to program" (a side I find less interesting) is the growing need for software engineers, as we move to computerize more and more both public and private sector "systems". I think the lack of engineering talent is real, but that's not my main motivation for showing kids how to code -- just as I don't teach kids how to do math because I hope they'll work as mathematicians.
Math helps you think, helps you invent, and so can computers. If we want the next generation to be impatient for the kind of programs that we had, like Sketchpad. Or even an environment like Smalltalk -- I think teaching them to program is a good start. It's also a great way to educate them how crappy (and simplistic as opposed to simple) many of the "apps" and games are.
For more, see eg: "Doing with Images Makes Symbols" by Alan Kay
I take it more like an update of the educational system. I recall a lot of stuff I learned back in high that was plain obsolete in our postindustrial society. It made perfect sense for my dad to learn basic metalworking since a lot of people used to work at factories back then, but now it does not.
You see it even more with the sciences. Anyone else find it interesting that the classes taught in a traditional U.S. high-school curriculum - algebra, trig, calculus, mechanics, combustion, fundamentals of life support - are precisely those needed to send rockets into space? And the curriculum itself dates from the 50s and early 60s, when our primary national priority was beating the Soviets and putting a man on the moon?
Meanwhile, the STEM skills that are utterly necessary in today's world - statistics, linear algebra, logic, computer programming, electrical engineering, chaos theory, ecology, molecular biology - are largely absent from the traditional curriculum.
But then, that's the problem with top-down planning. You end up with systems adapted to the prevailing conditions at their birth, and nobody willing to stick their neck out to change them.
I think with programs that are trying to encourage kids to get into any profession you're going to highlight the benefits. There can be some good perks to being a developer, whether its good salaries or flexible work environments. I don't think there is anything wrong with stating that, and I don't think the ultimate message is suppose to be "hey, you guys have to become software engineers now because it's so great". At least that is definitely not the message I try to give to kids and I don't know anyone who does. In the end its about empowering kids to make their own informed decisions.
Obama told people they shouldn't just use an app, they should build one. I've taken plenty of web dev and programming courses (including a couple of university courses), but still have doubts about my ability to build something production-ready on my own.
Encouraging people to play with code and telling them they're going to help fulfill a shortage of software developers are two different things.
If people were held back by not being able to build production ready web apps, we'd have much fewer apps. We'd probably had much fewer SQL-injection and other silly vulnerabilities as well -- but on average broken tools are better than no tools. Broken tools can be improved.
For what it's worth, I still think BrandonM's comments are spot on. But I think it was also obvious that easily "dropping" files "in the cloud" was a great service to those that weren't inclined/could set it up for themselves.
You don't have to build something production ready. Part of learning about programming is learning how it helps you with smaller things.
You don't have to write a web server in Perl, you can write a script that saves people from editing some horrible text file in Word to remove extra lines.
Similarly, some apps are complex 3D games, and others are timers that let you know when your egg is cooked, or your break is over.
There's a similar push for basic financial literacy in schools - most people are not going to grow up to manage a hedge fund, but that doesn't mean that they shouldn't learn about compound interest, debt, inflation, supply & demand, budgeting, equities, and business fundamentals. Managing your personal finances is a basic skill, and people who don't have it are severely hobbled today.
Many lawyers and civil rights organizations create "Here's the basics of the law" pamphlets, websites, and HN comments. Things ranging from who owns your IP when you moonlight, to what are your rights when the police pull you over, to what your responsibilities as a homeowner are, to what you should consider before getting married. These are not a substitute for trained legal advice, but they are hopefully enough to keep you from doing things that will cause legal problems later. And of course, 7th grade social studies in most American public schools teaches the foundations of the legal system and how laws are made and ratified.
Basic mental health is increasingly taught in public schools, along with what a healthy relationship looks like. A 16-year-old kid is obviously not going to be as good at regulating their emotions and perceiving those of others as a trained therapist, but particularly given the epidemic of domestic violence, it's been deemed important enough that we train our kids in basic psychology.
Everyone is expected to be able to write and communicate well, whether they're a journalist or not. We get decades of schooling on this, many colleges make "You will be able to write when you come out of here" a key selling point, and illiterate people tend not to do so well in modern developed nations. Journalists get more practice with this, but it's still considered to be a basic skill.
The progression for all of these is that the skill is initially associated with only a small number of practitioners, but eventually touches enough of people's day-to-day actions that the population requires a common base of knowledge to function. There was a time, a couple hundred years ago, when knowing how to read & write was not common knowledge, and largely restricted to lawyers and clergy. There was a time, barely 50 years ago, where common financial skills were pretty much restricted to business owners (you could argue that among people below about the 80th percentile in education, financial literacy is still uncommon). Emotional intelligence is currently a very scarce commodity. But the pattern is that as a skill becomes more fundamental to daily lives, the basics of that skill start getting taught to a broad base of people.