So - I got even less far into “kill math” before my spine said “rubbish” and I moved on.
He seems to have a bias against symbol manipulation - and at the very bottom, symbol manipulation is all there is.
I think Andrew hit on a giant point - the computer is a tool, a means to achieve a goal, and programming is learning to use that tool. To use any tool, you need to understand both the tool itself, and the goal you’re using the tool to work toward.
There’s a balance there - but the original article seems to be saying “we need to teach people how to understand the goal you’re working toward”, without teaching about the tools - and that’s not going to work.
I took some art classes in college (I took lots of different stuff in college) - you do need to understand the tools, and how they work, before you can use them toward a goal. I got pretty good with charcoals, surprisingly enough - There are effects you can achieve them them very easily that are quite difficult in other mediums. Now - understanding light and shadow and making the drawing is the real goal, but doing it well requires you understand the tools - if only to know which ones are appropriate to do the job.
There are a lot of “programming” classes that focus on the tool - perhaps he’s right that the emphasis shouldn’t be on “Learning Java” but rather on “learning to program”. But I think he goes too far, in that you cannot “learn to program” without knowing at least some of the tools. Necessary Prerequisite.
Now - Math. math math math. You know - Pythagoras came up with his famous theorem (or rather, the proof for it) sometime around 500 BC - this significantly predates computers, and computer visualization. Mathematicians have been doing some pretty neat things for a long time without having something show it to them. They use their minds. We can too. Indeed - I think an important part of learning is actually using your mind, being forced to think a bit. You learn better by doing than by simply being shown.