I disagree with the premise of this article. By trying to differentiate the different "programmers" by nothing other than their skill, he is ignoring the fact that you simply shouldn't group together low-level chipset programmers with PHP programmers with LABview drag-and-drop-individual-components programmers with computer scientists who also happen to be programmers. These people are fundamentally different, and trying to say that they are all the same and only differ in "programming experience" is fundamentally missing the boat on these distinctions.