But there is a distinct hierarchy of developers who can, for example, instinctively comprehend pointer-to-pointer data structures, or have walked through and mostly understand AoCP, or heck, can (quickly) write concise elegant code like this: http://www.cs.princeton.edu/courses/archive/spr09/cos333/bea....
One key difference between programming and teaching/soldiering/policing, is leverage. A single 100x teacher/soldier/police officer is limited in the impact they can have on the world, whereas a single 100x developer can write a platform/system that is used by 100s of millions of people.