7/27/2008

07-27-08 - 5

I'm a much lazier programmer these days. When I was young, if I wanted to implement something and it seemed to require some really complex data structure, I would think "sweet, this is a chance for me to implement a self-balancing tree, it'll be fun" ; I was more inclined to take the more complex solution just for the fun of implementing it. Or maybe not just for the fun, but if some really complicated algorithm would perform better or be more elegant, I would go for it. Now, when I want to accomplish some goal, I think "how can I get the result I want with the minimum amount of complexity".

A lot of old people call this "wisdom". I think that's disingenuous. They pretend that through the benefits of experience they see the error of writing lots of complex code and can wisely choose to do less. I don't believe they're actually doing that. Neither the young over-eager coder, nor the old cautious coder are truly making a logical decision about how to solve the problem. Both of them are just following their illogical gut instinct and natural inclination. When the old coder chooses to get the job done with less work, it's really just fatigue and laziness.

Certainly, doing less is usually the right answer. Thus the old coder is more often right than the overeager young coder. But that does not mean he has actually made any progress toward true rational decision making.

You see the same thing with all sorts of decision making. eg poker. Young players tend to be too aggressive and too tricky. Old players often get very conservative and straightforward. They call this "wisdom", but true wisdom would be seeing that both ways have their benefits and you should be able to turn them on and off when appropriate.

No comments:

old rants