Coding as the New Literacy

Super article by Tasneem Raja for Mother Jones. The first section in particular - about computational thinking - gives a really interesting counter-point to the "everyone must learn to code" theory:

What if learning to code weren’t actually the most important thing? It turns out that rather than increasing the number of kids who can crank out thousands of lines of JavaScript, we first need to boost the number who understand what code can do. As the cities that have hosted Code for America teams will tell you, the greatest contribution the young programmers bring isn’t the software they write. It’s the way they think. It’s a principle called “computational thinking,” and knowing all of the Java syntax in the world won’t help if you can’t think of good ways to apply it.
So what is computational thinking? If you’ve ever improvised dinner, pat yourself on the back: You’ve engaged in some light CT.

There are those who open the pantry to find a dusty bag of legumes and some sad-looking onions and think, “Lentil soup!” and those who think, “Chinese takeout.” A practiced home cook can mentally sketch the path from raw ingredients to a hot meal, imagining how to substitute, divide, merge, apply external processes (heat, stirring), and so on until she achieves her end. Where the rest of us see a dead end, she sees the potential for something new.

I'd love to be able to code, and taking a Code Academy course seriously is on my perpetual to-do list. I want to be able to code mainly so that I can have a better understanding of what the software engineers I work with are explaining. What I'd never thought about before was why I do understand their explanations at all, and why they understand mine better than they do most others. I think the answer is that I have a natural proficiency for 'computational thinking'.

For a software engineer, the hardest part of their job is know what to build, not how to build it. This is because of misunderstandings and mis-communication between the 'client' and the engineer. Having everyone at least understand how computers work - even if they don't know the first thing about coding - would go a long way to solving this problem.

Unless you can think about the ways computers can solve problems, you can’t even know how to ask the questions that need to be answered

That's exactly it.