This is a great post, and makes a great point. But I think it also misses the point of the “everyone should learn to code” meme, which would more appropriately be named “everyone should learn computational thinking”, as my friend Roger Magoulas notes.
I don’t think that the comparison to plumbing is apt. The comparison to literacy or numeracy or perhaps even public speaking is closer. Not everyone is a professional writer, but being a good written communicator has great impact on everything else you can do.
I’m thinking right now of two people I know in a small company, one in marketing and one in administration. Neither of them is a professional coder, but one of them knows enough to do tasks that are completely beyond the comprehension of the other. And that literally makes the first person 10x more capable.
And I remember early days in my publishing company, wishing that my production editors would learn more coding skills because it would have allowed them to recognize which problems were amenable to algorithmic solutions that they were currently solving by brute force.
And as to plumbing, I have to say that there’s something to that too. Enough experience with any hands-on skill to know how to solve common problems is essential. You say that you know enough plumbing to recognize a problem. Well, a lot of people don’t.
E.M. Forster wrote about the endgame of this kind of ignorance in “The Machine Stops.” It isn’t pretty.