kode vicious
DON’T BE TYPECAST AS A
SOFTWARE DEVELOPER
A koder with attitude, KV answers your questions. Miss Manners he ain’t.
Dear KV,
I would like to think that learning more will help me
in my everyday job of writing glue and customization
code at a systems integrator. But the obvious applicable
knowledge is specific to tools and packages that may
become obsolete or discontinued even within the lifetime
of the project, and in some cases have already reached
this destination.
Kode Vicious’s temper obviously suffers from having
to clean up after the mistakes of his peers. What would
he have them learn now so that he can look forward to a
graceful and mellow old age?
Looking to Learn
Dear Looking,
While your concern for my old age is touching, I have to
say that the only way I can see being mellow in my old
age is with prescription help. I keep thinking that age will
actually mellow me, but, alas, as longtime readers of KV
can tell you, that does not seem to be happening.
Let’s turn now to your question, which I would sum
up as, “How do I avoid being typecast as a software developer?” Most people understand typecasting in terms of
television or movies, where an actor plays the same role
so often that that’s the only role the actor is ever offered.
Christopher Lee, who until he was cast in the Lord of the
Rings trilogy was always the creepy and scary character
in what we now think of as campy horror films, comes
almost immediately to mind. I’m sure you can think of
similar actors and actresses.
Being typecast as a developer is what happens when
you keep taking the same jobs and doing the same things
HAVE A QUESTION FOR KODE VICIOUS?
E-mail him at
kv@queue.acm.org. If your question appears
in his column, we’ll send you a rare piece of authentic Queue
memorabilia. We edit e-mails for style, length, and clarity.
that you have always done. Now, of course, it’s difficult
to get a job doing something that you have no experience with, since most employers ask that you be fluent
in whatever particular niche they are working in. I am
certainly not encouraging you to lie or pad your resume.
All that being said, there are a few things you could do,
some of which I’ve mentioned before, but never in a
single reply.
The biggest thing that I encourage all engineers to
do is to keep learning about their craft, which does not
mean running out to ask your boss to send you to a
bunch of conferences or classes. Not that conferences
and classes aren’t useful, but I’ve seen far too many
people waste time and money going on junkets that have
very little to offer.
The easiest thing you can do is to join a professional
society—say, ACM. No, I was not required to say that.
Happily my editors can rarely find me in person when
I’m writing these pieces. They just don’t like the kind of
places I hide out in. KV’s alter ego has been a member of
ACM, as well as Usenix and IEEE, since his college days.
Student memberships are cheap because all three of these
groups have learned the pusher’s creed, “First hit is free.”
Once you’re hooked, well, let’s just say it’s hard to quit.
I always encourage people to subscribe to a journal or
two and to read the abstracts of papers in areas they’re
interested in. Not full papers, because who has the time?!
If you read the majority of most abstracts, you’ll have an
idea of what’s going on in your area and you’ll also find
things that are only tangentially related, which are new
avenues to study.
What I think you’re most curious about, and it’s an
important thing to be curious about, is the mix of tools
vs. techniques. A tool is something like a specific language or computer program. A technique is more general,
and can be applied across any of a set of languages. For
example, Python is an OO (object-oriented) language—
one that I happen to enjoy—but I am more interested
in how to apply OO techniques in any language than in
focusing only on Python. I often find that many people