Why Good Programmers Are Lazy and Dumb
blogoscoped.com
blogoscoped.com
I don't see why we need to redefine the words lazy and dumb. Truly lazy and dumb programmers don't really accomplish much.
In the case of this article, though, I have to say that Larry Wall has already done it better with the "three virtues of a programmer":
Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer.
Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least that pretend to. Hence, the second great virtue of a programmer.
Hubris: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.
Good classical composers are tone-deaf and forgetful, because they use dissonance and repeat things with variation.
Good marathon runners are slow.
Good comic artists draw poorly.
Etc etc.
Still, "dumb" sounds less chest-beating than "humble" (ironically enough) so if you think you're not humble enough about being humble, by all means start calling yourself dumb instead. :-)
I work for one of the top 25 sites on the tubes, and our homepage is also fairly busy looking. But it also has been relentlessly verified via both user testing and aggregate data analysis. UI guys hate when these numbers come out - but clean and elegant is not always the most efficient UI (for various definitions of efficient).
I don't think I've yet to sit down at a user's computer and find their homepage set to Google's search page.
Unless, of course, they installed Firefox and then forgot it was there.
Obviously I can't share any proprietary data here with you - but I work for a company that runs one of the largest sites anywhere - and our UI is kind of ugly, and definitely very busy. It is also the optimal UI - and we have teams of people relentlessly testing alternatives day in and day out. There's designing to your own aesthetic, then there's designing by user input, then there's designing by real live data from tens of millions of people.
True. I tend to get things done with less effort than my peers and I don't think it has to do with being smart. I just have an all round better understanding of the surrounding tools/ideas of a problem.
When a lot of people have a project in front of them, I see them jumping in with both feet with a very narrow focus. Afraid of going off in tangents.
Me? I spend most of my time sitting around drinking coffee. Walking. Reading useful stuff on the internet.
I've seen it written before: learn to procrastinate well. I think that's a better way of putting it, no real need to be too derogatory.
What OP calls "lazy", I call "efficient".
What OP calls "dumb", I call "open-minded".
I sure hope he doesn't name his variables as poorly as he names his adjectives. Now that would be lazy and dumb.
"In the beginner's mind there are many possibilities, in the expert's there are few" (Suzuki-roshi)