|
Humour
The perfect programmer
T A Balasubramanian analyzes if the traits that make
a cool programmer also contribute in making him an awkward, indecisive human
Not
having a delete option in real life is just one part of the story. The life
of a programmer gets messed up further because if you are one of these miserable
creatures, you would become obsessed with perfection. You will find that you
are constantly talking about rewriting code, says Brooke Bond, your Project
Team Leader at Baffle Corporation.
You, Papyrus Bytewala, CIO of Baffle, are caught in the company of your famously
cynical staffer as he takes on the challenge of updating DeVito, your biped
humanoid CTO at Baffle. DeVito is expected to learn by immersion in the rough-and-tumble
world of corporate IT management, and perhaps occasionally by listening to your
sagacious remarks.
The subject under the lens is the inner life of computer programmers or
coders, as they are sometimes called.
When you are bitten by the programming bug, you cannot resist optimum
solutions, lectures Bond, with a tone of great solemnity. You will
sneeringly toss aside mediocre ideas in search of great ones. You are like a
finicky child that will refuse to eat unless fed with a particular spoon and
amused by a specific sound. You would rather leave a nasty problem temporarily
unsolved rather than solve it shoddily.
Hey, Brooke, you make it sound like an incurable disease, says DeVito.
If I understand you correctly, programmers have a seemingly relentless
capacity for improving upon anything that takes their interest. Now that kind
of focus is something we humanoids find irresistible. Thats what makes
us so endearingly humanoid.
Endearingly humanoid? Good for you, no doubt. But it would turn a healthy
human into a walking droid like C3P0 in Star Wars, bent on doing things to perfection,
says Bond, walking stiffly around like a cartoon robot. You would scare
away real people. The human variety, I mean.
Hmm, I think not, Brooke. Being a humanoid is not half as bad as you make
it out to be with all those caricatures. If my work is to feed exotic and somewhat
stiff phrases of a programming language into some device and then predict the
results, as well as to manage the unpredictable outcomes, I will tend to become
as much like that device as possibleby osmosisor transference, perhaps.
Now getting to know your inner machine is what makes life interesting. Isnt
this what you humans call the mammalian trait of mimicry?
Yes. It is familiarly used to describe the way monkeys behave. They copy
what they see, says Bond, with a sniff. Hardly a superior human
trait. Even a programming genius would dislike being called a computer primate.
Well, Brooke, if you were to copy what you observe more exactly each time,
would that not be a good way to learn? After all, you became different from
the apes this waymimicry is what makes you good at language, eh? And for
us humanoids, that is a great kick start, toowith language, I can talk
to humans and blend in easilyI started off by aping your essence, and
look at me now. What do you think?
Impressive, Danny, says Bond, wryly. I grant that you can
perfectly grasp information from language, and pass off as a human by aping
me and Papyrus and anyone else at Baffle. You already have the pathology to
interact socially and slip into your human skin without anyone being the wiser.
Maybe you should take over my job, too. That will give me a much-needed break,
and I can
All right, Brooke, we can do without the wisecracks and the soap opera,
you say, hastily, as the air becomes frosty.
Hey, he started it, says Bond, unwilling to bend.
Oh, we are in a sulk, are we? says DeVito, chuckling.
Cut it out, you two, you say, standing in between the two contenders
to prevent a full-blown fight. Lets get back to programming and the bane
of perfectionism, shall we?
As I was saying before Mr Droid here interrupted, says Bond, glaring.
If you are a programmer, you hate half-baked solutions. You would not
ever be caught writing code with limited utility and life span. Now, while this
is a wonderful trait to have when programming, the twin devils of efficiency
and scope will start to pop up in your regular life. You will avoid doing simple
things because the solution is inelegant or just feels dirty. If you had more
time to think, there will be a better solution, you will say, again and again.
You can never make up your mind, eh? smirks DeVito.
You will be forever in a dream future, says Bond. You anticipate
results well aheadsince you would not want to waste your time making something
that flops due to short-sightedness or lack of imagination. You will be mapping
out plans and running the permutations through your head. Now back in the real
world, you will do the same dreaming. You will draw perfect plans of breath-taking
intricacy and beauty that resolve multiple problems and meet many fantasies.
You will try to wrap a forest in one sheet. The impossibility of getting these
plans into the air will be maddening, but even so, you will continue to tinker
over every detail, making heroic efforts to fashion the perfect solution. The
transfer of programming habits to your everyday life is where the twist in the
road lies. The same traits that make you a cool programmer can make you an awkward,
indecisive human.
Ha, but a humanoid would simply go ahead and grind out the program any
which way, right? smirks DeVito.
Well, let me put in a rider here, you say quickly, While Brooke
is right about the obsessive trait, he tells but half the story. You should
remember that there are two sides to a programmer. There is the sheet-in-the-sky
dreamer and the feet-on-the-ground finisher. What prevents a sky-wrapping programmer
from becoming chronically bogged down in this pursuit of perfection is the earthly
pragmatism that comes with the package.
What earthy pragmatism? What package? says Bond, folding his hand
across his chest. I do not compromise.
Ah, so there is a spoiler in the plot, eh? grins DeVito.
You could say that, Danny, you continue. Writing code habitually
does change the way you think. You become dreamy and analytical, easily frustrated
by inelegance and inefficiencyboth being situations you will encounter
often, and must deal with appropriately, if you want to live a happy life, that
is. It is up to you to choose when you want to loosen up the feet-on-the-ground
side. As a pragmatic programmerwhich somebody as uncompromising as Mr.
Bond can beyou will soon be obsessed with making things that work in real
life. You will applyoften ruthlesslythe finishers hammer of
workability to everything from your own big dream project to a formula for the
prevailing price of onions. Now all this dreaming and finishing in turn gives
you an unusual independence of mind, freeing you from the constraints of authority,
convention, or melodrama for its own sake.
Not to mention making less of a mess of your life, eh? winks DeVito.
Ah, that is just a matter of each individual finding their own niche in
the scheme of things, you say. Being a programmer is just as likely
as any profession to mess up your lifeif you take it too seriously.
I do not compromise, says Bond.
|