>John McCarthy (AI, Lisp) once said something akin to: "I think everyone should learn programming. It's the language we'll use to talk to our servants."
I kind of see coding (or scripting) similar to how I see writing. Not all of us are good enough, motivated enough, or would even enjoy writing for a living. But because the written and spoken language drives much of the world today, it's important to have a strong grasp of language, be able see how it is being used for or against you and be able to use it to your advantage.
The ability to read and write code is similar. Being able to write even simple scripts or simple data filters can multiply your productivity or give you new perspective on how to frame problems and approaches to solutions.
Without a strong grip on the written and spoken language, we are at mercy of others who wield it better than us. Code is in many ways similar to this. I may never be a a master writer or a master programmer (or even a 'good' one for either), but knowing the basics can't hurt.
Of course, we should note that writing and coding will have "diminishing returns" for most everyone. We should exercise discretion in how far we should take our pursuit and have good judgment on what we expect to get from either discipline.
Hell, even the ability to bodge together a damned Excel worksheet with some magic formulas can be very powerful in the right hands.
I, for one, think that everyone should learn practical basic statistical analysis skills.
I also disagree with the "learn math!" crys of developers; I rarely find myself using more than basic algebra (variable substitution) in most tasks, and you don't get into the abstract calculus stuff until you're working on solving graph problems, /which is usually a bad idea/ because some researcher already has a better algorithm than you're thinking of using for the given problem. I would also assume that "learn to code!" doesn't mean "learn pointer math and understand how to balance a b-tree!", so let's not pretend that those kinds of things will matter to beginners.
TL;DR learn a /scripting/ language relevant to your interests (because you're more likely to stick with it if it interests you), and don't sweat the math until you absolutely have to. I would argue that /grammar/ is much more important in programming and understanding verbs vs. nouns is of great importance.
If we could get every sports fan to learn how to work a spreadsheet to track their favourite teams and be able to calculate the odds of X team beating Y team, I feel like the world might be just a tiny bit better.
If we could get single parents to learn how to project grocery costs and compounded interest on not paying that credit card bill this month in favor of buying ______ (ignoring how awful that situation is), I feel like the world might be just a tiny bit better.
If teachers had systems to conveniently track student homework completion / success rates, they may be able to more efficiently target their lessons to focus on those topics where students did the worse, and I feel like the world might be just a tiny bit better.
I'd also argue that "Personal Finance" and "Common Legal Matters" would be incredibly useful classes as /required/ for highschool graduation.
>TL;DR learn a /scripting/ language relevant to your interests (because you're more likely to stick with it if it interests you), and don't sweat the math until you absolutely have to
Yeah, it's pretty amazing what you can do with a little Ruby, Python, or Javascript, with maybe a year or two of casual study and practice. That's about the level of programming ability that most people should have.
Ideally, some HTML/CSS and SQL on top of that so you can build a basic "full-stack" CRUD app, or customize a basic framework (Rails or similar) app.
That level of knowledge would make millions of non-programmer workers vastly more efficient at their jobs, but there isn't really any need for most people to go any deeper than that.
I think the difference is we all come in contact with writing every day. So literacy is required if you want to get around in the world and if you want to communicate with others. Almost no non-programmers encounter code in their day to day lives. To me it doesn't make since for the majority of people to learn to code, because without practice their skills are just going to atrophy. Why add a ton of new people who can only write shitty code? We already have enough of those, I don't see the reason to add more. Programming well is hard and if you don't spend a lot of time with it you'll never get good.
> I kind of see coding (or scripting) similar to how I see writing. Not all of us are good enough, motivated enough, or would even enjoy writing for a living.
And this is why it stroke me as odd when one of my younger (and intelligent) non-IT colleagues told me a couple of months ago "I cannot compose this fancy school essay, why cannot they ask us straight what they need written down?".
That's when I realized that even plain writing (as in composing) is not for everyone, there are people who back off when they hear that they need to "invent" stuff to be put on paper/screen/word editor.
I kind of see coding (or scripting) similar to how I see writing. Not all of us are good enough, motivated enough, or would even enjoy writing for a living. But because the written and spoken language drives much of the world today, it's important to have a strong grasp of language, be able see how it is being used for or against you and be able to use it to your advantage.
The ability to read and write code is similar. Being able to write even simple scripts or simple data filters can multiply your productivity or give you new perspective on how to frame problems and approaches to solutions.
Without a strong grip on the written and spoken language, we are at mercy of others who wield it better than us. Code is in many ways similar to this. I may never be a a master writer or a master programmer (or even a 'good' one for either), but knowing the basics can't hurt.
Of course, we should note that writing and coding will have "diminishing returns" for most everyone. We should exercise discretion in how far we should take our pursuit and have good judgment on what we expect to get from either discipline.