There’s been debate for several years now about whether and to what extent programming courses should be required in school. Most of the arguments I’ve read against (like this one by Greg Keene of Access) argue that programming is a specialized vocation requiring considerably more training and a specialized temperament. What these arguments miss is the difference between programming and software development.
If you need more programmers, adding programming to core is not going to help much. Not even three years of programming classes in a vocational program is sufficient (but it would certainly be a welcome leg up).
Here’s the thing, though: coding is not just for software developers. It is a thing many people with many different jobs are already using in their daily work. Business people and accountants, of course, have been programming spreadsheets for nearly four decades now; in fact, it’s practically an office skill, like typing. Scientists and engineers also do some programming on the side. But even the humanities have use for people who can sling a little code: pop musicians, journalists, and artists all do things that involve writing a bit of code.
Those who grasp the fundamentals have significantly more control and capability than those who don’t. It is a powerful tool even at the basic level, even for learning other subjects. So need to teach programming in core for the same reason we teach basic writing — because you are so much less effective without it.
We need to stop looking at programming as things programmers do. It’s not a specialized vocation. It’s a skill. A modern skill that depends on a digital world, but a skill nonetheless. We will always need software developers and computer scientists, and they will always need specialized, focused training. But they are not the only ones who benefit from knowing programming.