Think of all the best teachers you've had in life. Did they teach by throwing you head first into the water to see if you could swim, or did they start by telling a story and then slowly peeling back the layers to reveal more complexity? Start with simple applications and concepts and then expand on them.
From personal experience, I wilt under this approach
This article also ignores the fact that Computer Science is essentially an esoteric branch of applied mathematics with a little bit of philosophy thrown in for good measure, and any attempt to teach younger kids these concepts will mostly fall flat on its face before we radically improve the quality of our STEM education, particularly mathematics. Until we do so, Computer Science will remain the domain of those with a natural affinity for it.
We had to send in our code on paper to be run on a time sharing system at a local college - BTW this was the CSE middle stream.
If instead you teach basic skills in the best way, through fairly rote learning combined with application, then later abstract concepts are possible and can be discussed. The idea that you have to do one (abstract concepts) without the other (basic skills) is simply an attempt to limit the types of people who can succeed at an activity to only those people exactly like the teacher.
In other words, attempts to teach abstract concepts first as if basic skills are pointless are simply attempts to weed out undesirable people, which is what this article's proposal would do.