This is utter nonsense. Either you can program or you can't.
Now THAT is utter nonsense.
What is your metric for determining whether someone can program or not? There are tons of people who are basically code monkeys. They can program, but the code they produce is absolute crap. They just vomit out code without having the slightest understanding as to what that code is doing underneath.
A great example is, once I saw code from a supposedly 'senior' developer that iterated through a hashmap to find the value he needed.
No language reduces code from, say, 40 lines to 4 lines, just like that. What it's actually doing is abstracting the hard work away from you in the form of a library or whatever. And that's well and good when you understand what is going on. But when a language has all this stuff build into the core of the language, it gives the impression that this knowledge is not important, so when all hell breaks loose, the inexperienced developer is stuck.
It all boils down to structural vs functional knowledge about what you're doing. Someone with functional knowledge could write a routine that writes data to disk, one byte at a time, and not understand why their code runs so slowly. They will likely complain that "the computer is too slow." Meanwhile, a programmer with structural knowledge of how a computer functions, will understand the limits of what an HDD can do, and cache up their writes so that they write an entire block at once.