Is this the last four years or what?
(or "
It feels so good when you stop")
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 (or her)
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 science 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, more leaning towards
geeks. Unfortunately, over the past
four 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 a Denny's, 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 labs. Similarly, no one has ever tried to find one, either.
The leader of the campus 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
Sergeants 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.
The
professor wanders in, we'll call him Larry, 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.
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 professor 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
professor'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 No.. 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 completely, 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 second (
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 a few 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 AM. 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 centre. 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.