Java Glossary : programmer
Last updated 2004-06-28 by Roedy
Green ©1996-2004 Canadian Mind Products
Java definitions: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
You are here : home : Java
Glossary : P words : programmer.
- programmer
- One of the most frequent questions people ask me when I do public lectures
is, "Would I make a good programmer?" Here are the traits that will
stand you in good stead:
-
. Without this programmers would
quickly burn out with frustration. Your programs rarely work first time. You
must be curious why, not angry or frustrated. The kind of person who likes to
take things apart to figure out how they work has the right attitude. Rarely are
the instructions or documentation you are given completely correct. You have to
poke around under the hood to find out how things really work. Curiosity
is the great antidote for frustration when things inevitably don't work time
after time. Edison exemplied this aptitude when he said Failing
many times taught me many ways how not to do it.
-
. Murphy's law states, if anything can
go wrong it will. You have to keep worrying about seemingly improbable events
and pathological special cases to make sure they are all properly handled.
Because of the way computers compress time, something that only happens once in
a billion times, will happen every few seconds on average inside a computer.
-
. Even the most outrageous pessimists
still wildly underestimate the unknown troubles that will plague them on the way
to a solution.
-
. You can't wave your hands
and say "I'll deal with it manually later. I'll just give the broad brush
now." You have to handle every conceivable situation with just the same
care and attention as the ordinary case. Sometimes you may find, e.g. in a
banking application, the ordinary case might represent 99% of the actual load,
but only 1% of your coding and design.
-
. You like specifying precisely
what will happen under every possible circumstance, and thinking it out
carefully. Windows drives control freaks insane because it has so much seemingly
random behaviour that they cannot control or explain.
-
. The industry norm is to expect you
to work several days without sleep living on coffee and pizza in an "emergency".
Every deadline is an emergency.
-
. The laziest programmers are by far the
most productive. Instead of mindlessly cranking out bubblegum code, they figure
out how to get the computer to do it for them, or to find out how to get by
without doing it at all. The cookie-cutters created from this laziness usually
have the pleasant side effect of making the code much more maintainable.
-
. Programmers, being control freaks,
have a strong tendency to arrogance. They won't back down even when they know
they are in the wrong. The only way to keep peace on a programming team is to go
along with the leader, and let the natural inevitable failure of his approach
convince him to try a different approach, perhaps eventually yours. The more
you argue, the more ego he invests in continuing to do it his own way. The more
you minimise the error of his ways, the easier it will be for the leader to save
face and change direction. A gloater or a never-say-die arguer can totally
sabotage a programming team. A good leader is willing to accept ideas from
everyone. The ideas don't have to be his.
You can see from this list why computer programmers are not on the top ten list
of desirable spouses.