I found this excerpt from an October, 1999 interview of John Carmack. The original location of the article is: http://slashdot.org/interviews/99/10/15/1012230.shtml


4. justin_saunders asks:
Many people consider you to be one of the best programmers in the game/graphics scene, based on your ability to keep pushing the limits of current PC hardware.

I was wondering what measures you use to gauge the skill of a programmer, and who, if anyone, you look up to and consider to be a "great" programmer.

John Carmack Answers:
Like most things, it is difficult to come up with a single weighted sum of the value of a programmer. I prefer to evaluate multiple axis independently.

Programming is really just the mundane aspect of expressing a solution to a problem. There are talents that are specifically related to actually coding, but the real issue is being able to grasp problems and devise solutions that are detailed enough to actually be coded.

Being able to clearly keep a lot of aspects of a complex system visualized is valuable.

Having a good feel for time and storage that is flexible enough to work over a range of ten orders of magnitude is valuable.

Experience is valuable.

Knowing the literature is valuable.

Being able to integrate methods and knowledge from different fields is valuable.

Being consistent is valuable.

Being creative is valuable.

Focus is extremely important. Being able to maintain focus for the length of a project gets harder and harder as schedules grow longer, but it is critical to doing great work. (Side note - every time "focus" is mentioned now, I think of Vernor Vinge's "A Deepness in the Sky", currently my favorite SF novel)

I certainly respect the abilities of my primary competitors. Back in the DOOM days, Ken Silverman was extremely impressive, and today Tim Sweeney is producing much of value.