Wasn't there an article on motor skill recently, how practising variations of a motion (or two different motions) can be wildly more effective than simply focusing on one single movement? I can't seem to find a hn posting, but this one is along the lines of what I'm thinking of:
"The Fastest Way To Learn"
http://www.jonahlehrer.com/blog/2016/2/15/the-fastest-way-to...
While looking, I also came across:
"Why Slow Movement Builds Coordination":
http://www.bettermovement.org/blog/2010/why-practice-slow-mo...
"There are several excellent reasons to use slow and gentle movement as a means to develop coordination. Probably the most interesting reason (I'll start with that one) is based on an obscure principle called the Weber Fechner rule. The Weber Fechner rule describes the relationship between the magnitude of a particular stimulus and the brain's ability to sense differences in the amount of the stimulus. The basic rule is that as you increase the stimulus, the ability to tell a difference in the amount of the stimulus decreases. This is a very common sense idea. Imagine you are in a dark room with only one candle lit. It will be very easy to sense the difference when one additional candle is lit. But if you are in a room with two hundred candles, you will have no idea when an extra candle comes on.
This rule works for all varieties of sensory perception, including sensations of muscular effort. So, imagine you are holding a one pound potato in your hand while blindfolded. If a fly landed on the weight you would not know the difference, but if a little bird landed you would know. Now imagine holding a fifty pound potato. You wouldn't be able to feel the little bird landing. It would have to be an eagle. The point is that when you increase the weight from one pound to fifty pounds, you become about fifty times less sensitive to changes in the amount of muscular force you are using to lift the weight."
I'm not sure how much it is possible to generalize from pure mental practice like memorizing numbers to physical practice like playing the piano (like this article does, without much substance beyond hand-waving about "brains will be brains", so to speak).
But as mentioned in the comments here, and touched on in the article, it is probably true that it is important to be able to understand your own ability and progress (what you do right, what you get wrong), to continue to challenge one selves (making no mistakes makes for bad practice, but making the same mistakes over and over also makes for bad practice).
I think that for complex skills, one of the easiest ways to get direct feedback, is to work with someone who is a master already: spar one-on-one with a world champion, or play with a maestro, pair-program with an experienced veteran of several successful projects -- and you'll get much more from your sessions than if you practice alone, or with others that don't know what they're doing.
We often don't have the luxury of practising one-on-one with a master, and then the challenge becomes to a) still get correct feedback on what we're doing, and b) find out what we should be trying to achieve. The latter can sometimes be helped by looking at videos of people that preform at an excellent level, reading great code etc.