(as posted on Joel Spolsky's Joel on Software Discussion Group)
I believe the difference comes down to the same argument that takes place on countless "high IQ" forums everyday: how does one measure (true) Genius against IQ?
There are a large number of individuals with an IQ score labeled as "Genius", yet many of them work in everyday jobs and never make an important discovery in their lives. Meanwhile, there are a couple of hundred Geniuses per generation that make amazing discoveries or significantly affect their knowledge domain.
Consider some recent programming luminaries:
- Joel Spolsky: Yeah, easy reference, but pretty much invented VBScript, the language employed for automation of virtually every Microsoft application.
- Brendan Eich: Invented JavaScript single-handedly.
- Larry Wall: Father of Perl (and Heidi).
- Linus Torvalds: Linux. One guy.
- Rasmus Lerdorf: Created PHP (in Perl, then C), the first web-specific script parser.
- JJ Allaire: ColdFusion creator. First database-presenting language for the web.
.. and, of course, the list goes on.
Unlike GroupThink-type projects, these people championed small revolutions. I'm sure they are all smart people, but they also displayed Genius through their creations while still maintaining a Real Job. Granted, Linus was a student, but I'm sure he applied himself. :)
Great programmers, to me, are at least mini-geniuses. They tremendously influence every project they touch, through vast knowledge and, most importantly, original thought, while still performing well as day-to-day team members.