Ask anyone who has stayed awake for
thirty-seven hours consuming nothing but Coke and Snickers bars and staring into a
green CRT screen, if there is anything glamorous about the world of computer programming.
Look deep into his bloodshot eyes, and try to detect any signs of joy among the red
streaks. Then, just for kicks, ask him why he does what he does, despite all the pain
it's causing. The most positive answer you'll get is, "it feels so good when it stops."
Although computer sciences majors come in all sizes and shapes, each possesses that
essential "nerd" quality which led us to declare the major in the first place. Some
of us, the stragglers, are only part time nerds. Unfortunately, over the past three
years, an alarming number of lifers, full-time nerds, have appeared. These are the
really scary people who hang around the terminal room regularly, with absolutely no
purpose for being there. People who'd rather sit around hacking on a Saturday evening
than lying stuporously drunk in one of the Dellys, or sleeping. This specialized breed
of computer nerds, affectionately known as the Computer Nazis, becomes an increasingly
large organization every semester. No one knows exactly where they come from, since no
one has ever seen a Nazi outside of the computer center. Similarly, no one has ever
tried to find one, either.
The leader of the Williamsburg Nazis, it seems, is a large Arabic slob we shall call Abdul.
Abdul typifies the model Nazi. Granted, he's not quite as dweebish looking as you'd expect,
yet somehow you know that he's not the kind of guy you'd invite to dinner. He's loud, he's
self-righteous, and he can tell you anything about the computer system you'd never want to
know. Below Abdul are his Seargeants at Arms, Jeff and Andy. Though not quite as loud as
their leader, both possess voices which will rise above all others at large gatherings.
Jeff has a lisp and Andy is annoyingly nasal; everyone in the department can imitate his
favorite Nazi. Somehow, they're always in your class. And today is no exception.
Larry, the instructor wanders in, dumps several folders on his podium, and smiles at the
class. Attendance is good today, for the first time since the beginning of the semester.
Ah yes. Today he is to hand out the specs for the final program, an event not to be
missed. Floating among the seemingly carefree students is a definite air of uneasiness;
a combination of hope, anticipation, and dread. He passes out the assignment, announcing
that he will take questions regarding the program during the next class meeting.
Simultaneously, two hands shoot up in the front row. Apparently, Abdul and Andy,
the "Sunshine Boys", have questions which can't wait two days. You've got to hand it
to these guys. They're fast readers, and seem to zero in on ambiguous phrases and
logical errors in the description even before the entire class has received the document.
This time they've even caught the instructor off guard with their rapid fire analysis of
his instructions. You can tell that Larry really wants to tell them off, but remembers
his own Nazi days.
Two days go by. It's Question Day. Again, Abdul and Andy have the floor. Seems that the
instructor's skeleton for the program didn't work for some obscure test case, and caused
their respective programs to bomb. Larry apologizes to Abdul, and makes a few witty
comments to Andy. Most of the class stares in amazement with the patented Computer Science
"Holy Shit" expression hanging off of their faces. Have these two guys actually finished
the assignment already? We haven't had the thing for forty-eight hours yet. Hell, I don't
even remember where I put my specs sheet.
Two weeks have passed. Monday morning. The project is due on Wednesday. Questions are
finally rolling in from people other than the Sunshine Boys. A certain anxiety begins to
well up in the stomach as the deadline approaches. Serious doubts about finishing the
program in time arise. Larry, ever the entertainer, mentions that "If you haven't started
the project yet, you'll never get it done." He means it, too. That night, the stragglers
tackle the machine for the first time in weeks, trying to make some sort of headway, or at
least translate the problem at hand.
There are two mutually exclusive techniques that are used in the early stages of
programming: The Software Engineering method, and the ever-popular Brute Force strategy.
Right from the start of our computer careers, we are told that any problem can be broken
down into manageable pieces, and that these pieces can be linked together to form a
logically constructed program; the method used by Software Engineers. This process is
time consuming, yet incredibly simple. Keep the pieces as small as possible, construct
each one separately, get it to working, and plug it in. "This method can be applied to
any problem you'll ever have to solve, in the field of computer science, or in real life
situations," says the textbook. Sure. If you've got the time.
Brute Force can similarly be applied to any real life situation, and in the early stages
it's quicker than the Software Engineering method. It's instinctive, spontaneous, and
produces concrete results almost immediately. Read the problem, get a general idea of
where you're headed, and head there. Start simply, and then build the sucker. If you
don't understand something, ignore it. If it doesn't work, throw it out. Assume you
know more about what you're doing than you actually do. It's kind of like picking a
nice living room set, and building a house around it.
Apparently, Brute Force is the way to go this time around. The first few pot shots at
the problem miss their target completley, but finally pieces begin to fit together.
Granted, there's no central structure here yet, but we've definitely bought the living
room set. And, with a little bit of pushing and bending of good programming rules, we
seem to have built the fireplace and part of the upstairs bedroom. So far so good.
Who says we can't finish this in two days? Get a printout, go home, have a beer and
watch David Letterman.
The Letterman show appears to have been a tactical error. Brute Force has come to its
inevitable halt, and the deadline is tomorrow. Bits and pieces of the program are working
just fine, but the major chunks are still in shambles. The program has to be finished
within the next eighteen hours. We have not choice but to begin the Caffeine Airlift.
If it weren't for caffeine, many of us computer science majors would have died back in
sophomore year. Sometimes, there just aren't enough waking hours in the day to accomplish
everything that has to be done. The logical solution is to eliminate some of the sleeping
hours, through carefully measured doses of coffee and Coke. Time release caffeine pills
were in fashion two years ago, but turned out to be entirely too efficient. It's difficult
to concentrate on programming when your body wants to tap dance. In any shape or form,
the Caffeine Airlift has saved us all.
Once the body is properly primed, the work begins. The computer lab overflows with other
desperate individuals, all heavily caffeinated, and all decked out for the long night
ahead. Grab a terminal, and start hacking. It's comforting to know that everyone else
will fail this project with you. The mood is surprisingly relaxed, and jokes about
impending doom begin to fly.
Ten o'clock. Eleven hours and counting. Condition: guarded but stable. The three Cokes
in your system are making your legs bounce, but you ignore it. Concentration is the key.
The room fills to capacity, and the jokes continue. Of course no one will finish, but who
cares anymore? This is no longer a project, but a mission. Actually, you've made amazing
progress in the last few hours, but won't admit it to the others. More fun to complain,
isn't it?
Midnight. The Jello Hour. The Jello Principle states that "no matter what quick solution
you find for a given problem, it will still make you worse off than you were before."
Kind of like nailing Jello to a tree. The temporary solutions look pretty for awhile, but
are destined to fail in the long run. After Jello hour, you get a whole new perspective
on life. The beard begins to appear. The empty Coke cups form a wall along the side of
your work space. You realize that you'll miss Letterman tonight. Short cuts that simulate
important program elements come to mind, are added to the code, fail, and are discarded.
The best rule of thumb is to try something so unorthodoxly simple, that it could never
work. Odds are that it will.
One thirty. You've watched half of your classmates walk out in stuporous frustration.
The die-hards remain, chugging caffeine in lethal dosages and cursing quietly to themselves.
And suddenly, the peaceful torpor of the terminal lab is shattered by the unexpected arrival
of the Nazis. Abdul strolls in, flips on a terminal, and talks loudly to his partner Jeff
across the room. In the back of your mind, you wonder where Andy is tonight, but the truth
is you don't really care. Abdul is amused that we non-Nazis are working on the same program
they had finished nearly two weeks ago. Jeff comments, through his speech impediment, that
the program was "trivial." Eventually, the Nazis become engrossed in their own work, whatever
the hell they do at two o'clock in the morning. Abdul has found some new way to amuse
himself, and yells for Jeff to come over. Jeff yells back that he's too busy. Everyone
wishes Abdul and Jeff would die painfully.
Finished. It's four AM, and the damn thing is finally in the can. Smile at the amphetimized
corpses as you leave, and wish them luck. The walk home seems longer tonight. No cars.
No birds. No noise. Life seems to have gone on outside of the computer center. As you hit
the bed, you know you're too wired to fall asleep. It doesn't matter. You've won the game
again. As your body continues its tap dance, you realize that the process is going to start
again on Monday. No problem. Yeah, it's hurts for awhile. But it feels so good when you
stop...