
Why Good Programmers Are Lazy and Dumb - nreece
http://blogoscoped.com/archive/2005-08-24-n14.html
======
cglee
This is a really convoluted way of conveying a few simple concepts: 1)
automate what you can and 2) keep your mind and perspective fresh by
continuous learning.

I don't see why we need to redefine the words lazy and dumb. Truly lazy and
dumb programmers don't really accomplish much.

~~~
camccann
It's a hook to get attention, that's all. Have a title that sounds surprising
and counterintuitive, then explain how you _really_ meant something related
but different. Would this have been submitted to HN if it argued "Programmers
should automate tasks and learn new things" without the pretense? Probably
not. It's one of the oldest tricks in the book. See also "worse is better",
among others.

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._

~~~
dgreensp
The author seems to be trying to pass off "programmers are lazy" as his own,
unless he's really unaware of that meme. But I could write these "insightful"
little counterfactuals all day:

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.

------
jmostert2
"Lazy" I get, but when he says "dumb" I think "humble" conveys the idea
better. You shouldn't be "too smart", but that's not the same thing as being
dumb. Letting go of preconceived notions to get to the root of a problem may
involve "playing dumb", but that's still not the same thing.

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. :-)

~~~
aerique
I would have preferred "experienced" instead of "dumb". His examples still
apply if you replace the latter with the former.

~~~
jmostert2
But "experienced" is another one of those glowing words (like "smart") that
emphasizes you knew your way around in the past. This is an external marker,
something other people judge you by and you can advertise with. When you have
to solve actual problems, it's no good to think of yourself as smart and
experienced, because that will only frustrate you if your amazing talents
don't immediately suggest a solution. Taking yourself out of the equation and
treating each problem by its own merits rather than your own merits is what's
required, and that's the point of the "lazy" and "dumb" epithets: they're a
deliberate kick to your ego, something programmers can usually use less of.
Your talents can take care of themselves.

------
potatolicious
The Google/Yahoo comparison is somewhat invalid - Yahoo is a portal, Google is
strictly a search engine. Look at the "portalized" version of Google (i.e.,
iGoogle) and the similarities start surfacing.

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).

~~~
thaumaturgy
They also have completely different markets, and I'm annoyed by the number of
times I see the Google search page trotted out as an example of what people
want. Most of the users I deal with on a daily basis have their homepage set
to either their Yahoo page, or their msn page, or something similar.

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.

~~~
JoeAltmaier
Well, there's me. I don't want to wait for junk to load - I'm not a stim-
junkie. Also, consumer computers ship with Yahoo or MSN set as default, most
defaults never get changed. So no actual info about user preferences there.

~~~
potatolicious
Then understand that you're not the average surfer. The problem with web geeks
(especially UI web geeks) is that they presume their love for cleanness and
elegance is a universal desire for all web users - this is simply not true.

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_.

~~~
JoeAltmaier
What about all the people that aren't coming there? Perhaps your technique is
an adaptive algorithm that learns to keep people who are already there, or
something like that.

------
RevRal
_lazy_

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.

------
swolchok
Larry Wall, is that you?

------
RyanMcGreal
Then I must be a _great_ programmer!

------
godDLL
Not being a native speaker this confused me for a moment there. I'd like to
add to that that most of the world's programmers (and this article's potential
audience) are not native to the English language. Don't make the additional
effort to confuse us mate.

------
gb
Regarding the dumb thing, I think this quote says the same thing a bit more
succinctly:

"In the beginner's mind there are many possibilities, in the expert's there
are few" (Suzuki-roshi)

------
scotty79
Lazy and dumb programmers are ok until they discover copy-paste which
unfortunately happens very early.

------
the_real_r2d2
I agree with lazy but dumb I do not think so. In fact I think that good
programmers are lazy and smart.

------
known
I wouldn't say Lazy. They are Rational.

------
edw519
Linkbait title (and I fell for it).

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.

