in reply to What if you are not a genius?

This might sound a bit strange, but sometimes I think that it's possible to be TOO smart to be a coder.

Some of the brightest people I've worked with write hideous code. They have five thousand variables going in the same scope. It's completely uncommented. It's all a single huge file. It uses completely incomprehensible constructs. The reason? They can remember all of these variables. The code is clear to them. They know where everything is in the file and don't need it broken down into easy mnemnonic chunks.

It's a strange sensation to think "This person is fifteen times as smart as I am" and "this person is being an idiot" at the same time. :) Because, of course, geniuses lose brain cells too. If you rely on using your mind to store everything and expect to be able to perform insanely-fast analyses of your existing code, sometime you'll reach for that ability or piece of information and it won't be there. And no one else will understand it.

Also, remember Kent Beck's comment: "I'm not a great programmer. I'm just a good programmer with great habits." Which I prefer, personally. Some genius code can set projects back months as the rest of the team tries desperately to figure out what's going on in the genius' mind.

Finally, observe the entry for the term "larval stage" from the Jargon File:

Larval Stage

Describes a period of monomaniacal concentration on coding apparently passed through by all fledgling hackers. Common symptoms include the perpetration of more than one 36-hour hacking run in a given week; neglect of all other activities including usual basics like food, sleep, and personal hygiene; and a chronic case of advanced bleary-eye. Can last from 6 months to 2 years, the apparent median being around 18 months. A few so afflicted never resume a more `normal' life, but the ordeal seems to be necessary to produce really wizardly (as opposed to merely competent) programmers. See also wannabee. A less protracted and intense version of larval stage (typically lasting about a month) may recur when one is learning a new OS or programming language.

Not that it's bad to be a genius. It's just that, well, there are compensations to being merely good. (Although it's a bit of a cliche, of the geniuses you've met, how many were really happy?) If you're a genius, enjoy yourself.

stephen