Good article but I don't think it's the whole story. Works well for maths, probably, where in my experience everything is obfuscated by a) lack of any practical real-life application for most people and b) non-verbal symbolic representations of concepts.
With programming you very likely do want to apply the stuff you're learning to 'real life' problems, and you're going to be expressing all your efforts in a programming language with familiar keywords (and just a few symbols/operators). Here the problem is not intuiting what the purpose is - it's easy to explain what Ajax calls are supposed to do, for instance, but actually implementing them is quite bitty. You need to set up a sort of chain of connections between multiple points, and not until you've learnt all the details of this process, can you tuck it all away neatly under one abstraction and free up brain cycles to deal with higher problems. I find more and more that when I learn a new corner of programming, there's just inevitably going to be a certain number of hours of faffing about learning the details before it 'clicks.' You feel stupid for a week or so, the boom You Know Kung-Fu, like it was easy all along.
Having said that some students just really struggle with basic concepts like 'variables' and need to make sure they intuitively grasp them. But that's about passing, not getting straight As.
With programming you very likely do want to apply the stuff you're learning to 'real life' problems, and you're going to be expressing all your efforts in a programming language with familiar keywords (and just a few symbols/operators). Here the problem is not intuiting what the purpose is - it's easy to explain what Ajax calls are supposed to do, for instance, but actually implementing them is quite bitty. You need to set up a sort of chain of connections between multiple points, and not until you've learnt all the details of this process, can you tuck it all away neatly under one abstraction and free up brain cycles to deal with higher problems. I find more and more that when I learn a new corner of programming, there's just inevitably going to be a certain number of hours of faffing about learning the details before it 'clicks.' You feel stupid for a week or so, the boom You Know Kung-Fu, like it was easy all along.
Having said that some students just really struggle with basic concepts like 'variables' and need to make sure they intuitively grasp them. But that's about passing, not getting straight As.