Amm... anyway, most of the programmers I've known over my career have been average. They don't seem to particularly enjoy programming but they can generally make the computer do what they want it to do. Then they're quite happy to go home to their families and do other things. I've run across (and had to clean up for) five or six truly inept ones. And I mean people with no ability with computers whatsoever, who were essentially defrauding the company they were working for. Usually those people had left the company by the time I'd gotten there.
I've never met a true rockstar programmer at any company, although I have met a couple in Linux channels on IRC. I got to audit the source of the AT&T C standard library on a contract in the '90's and a lot of that stuff was brilliant. I wish I could have worked with the programmers who wrote it.
Me? I'm not going to try to appraise my own skill at it. I enjoy programming and do it at home. I've retrofitted several projects with data structures and will fix crashes that other programmers tend to ignore. I've also been told code I've worked on is easy to understand and maintain (By people in other countries who it was outsourced to.) I prefer not to subscribe to institutionalized learned helplessness that dictates that the software works that way because the software works that way and nothing can be done to fix it. I have several github repos where I work on things that interest me at the moment, mostly licensed under the Apache license. That may make me different from a lot of programmers, but I won't argue that it makes me any better or worse.
Real doctors take an oath to do no harm with the knowledge they've been granted. I guess that's why the CIA went with psychologists.