This is where I'll document my journey in software development and provide occasional updates.

Syntax Over Sanity

11/16/2001 8:39:08 PM

I wonder if the man ahead of me recognizes the tune, the rhythm created by the snow and rock salt crunching beneath my shoes. Nah. After all, music is a topic which is probably too abstract for his tastes (unless, of course, you ask him to explain the compression algorithms of an MP3.)

The approach to the building is silent and methodical, a pack of analysts and developers and programmers slowly trudge through the doorway and up the steps to the second floor. The first cup of coffee hasn't even reached their hands, and already in their minds, the coding has begun. I think I heard a murmured "good morning" somewhere behind me, but one can never be sure.

And the dance begins.

The fluorescent light in my cubicle flickers to life as I hang up my coat; the developer across the aisle pecks away at the keys, pretending to be too preoccupied to even acknowledge the activity behind him. I smile to myself, knowing that it'll be just minutes later -- when I'm finally settled in and focused on my tasks -- that he'll spin around and ask me how my weekend was.

The E-mail program is frozen again. I'll get back to it later. In the meantime, I'll scrounge up some notes from Friday, the ones with my ideas on what could be causing the "Object Variable or With Block Variable not set" error in my interface program.

' initialize data object
Dim objINFO_BO as clsMCIBusinessObjects.clsINFO_BO
' get client information, store in Business Object
objINFO_BO.GetDataByClient clng(s_strClientID)
Ah hah! I dim'ed an object but didn't set it before I attempted to use it. Silly me... why couldn't I see this glaring mistake on Friday? Oh yeah, my brain was fried. A couple keystrokes later, voila! There we go, problem solved, the world is good.

"How was your weekend, Darren?" comes from across the aisle. Right on schedule.

The conversation is interrupted by a consultant who skids some papers across my desk while he gnaws on a pen cap. No time for formalities, he promised fifteen interfaces to the client and wants a status from me on seven of them. Fair enough, I sort through my papers and fend off the questions he's firing at me as I'm trying to answer his first set of questions. By the time I find the information he was seeking, he's walking away and mumbling something about a meeting.

The technical lead pops his head in, asks me how I'm doing and then cuts off my answer with his next thought. "By the way, I want you to start doing late binding instead of early binding."

"Okay," I reply with a raised eyebrow. He nods and walks away and then I tap on the shoulder of the how-was-your-weekend guy. "What's the difference between early binding and late binding?"

His eyes suddenly beam like he's a ravenous wolf ready to pounce. "You mean... you don't know? How did you get this job?"

My stomach sinks. Suddenly I don't even care what the answer is. Like a scorned child I hang my head and retreat to the break room, where a couple of Pakistani fellows are discussing Oracle packages and triggers. I pretend it's their broken English that's confusing, when in reality it's the topic itself that baffles my feeble mind. I pour myself a cup of coffee and catch bits and pieces of techno-babble as I return to my cubicle. I can only pray I don't get snagged into any of it.

Someone laid a stack of COBOL procedures on my chair while I was gone, and on a Post-It note is scribbled, "Talk to so-and-so downstairs, reconcile these with the XML fields for the interfaces." I'm surprised at myself for not even flinching, considering I've never dealt with COBOL in my life. But, the syntax seems fairly straightforward, so downstairs I go.

Nobody bothered to warn or prepare me for the dreadful abyss which is the COBOL unit. The pinned-up Dilbert cartoons flap in the wind as I pass by each cubicle, the consistent tapping of keys all blending into a mechanical hum. I find the first man who can potentially help me achieve this "reconciliation", and as he sifts through the stacks of procedures, he calls out question after question while the keystrokes behind me come to a halt. One by one, his fellow programmers rise from their seats and peek out from their cubicles like shadowy figures emerging from a dark alley.

"That's D-WORK-dollar from at-compile," blurts out one of the men before he is quickly corrected by another. "Code-mode-second doesn't even concern the web side, it..." and his explanation eludes me from that point on. Suddenly a minor war erupts within the team, each of them opportunistic and eager to flaunt their technical prowess. Everything inside of me wants to drop the papers to the floor and bolt for the stairwell, but I fall on the strength of the old motto, "what doesn't kill me only makes me stronger."

Eight hours later, I return to my car all worn and weary like a wounded soldier staggering from the trenches. All the way home I'm telling myself the same thing I did the night before -- you will go home and study, you will plow through that code, you will become one of them.

My laptop joyfully sings the welcome theme for Windows XP. Never mind the fact that I stared into a monitor all day long -- the evening promises more of the same.

Before I can even open Visual C++, there's a dialog box on my screen: "Your files are outdated." What else is new. Yes, I want to update now. No, I don't want to subscribe at the low, low price of forty bucks a year. Finally, I get to check my personal E-mail: one new message about how I can increase my breast size.

And the dance continues.

void main()
' dim variables
char *MyName[] = "darren";
cout << endl << MyName << " is your name.";
Compile error. What! What is the freakin' problem!?!? Oh, God, I commented a line with a single-quote instead of a double-slash. Wrong language. There we go. I can now have the screen pop up with my name in Visual C++. Look out, Microsoft, there's a new kid in town.
{ cout << "and so I code... and read a 1000-page technical guide from a Swedish programmer with a propensity for quoting Monty Python. My eyes glaze over every other paragraph, my brain rejecting it violently like my stomach does this umpteenth cup of coffee." << endl;

// talk about Frasier here
cout << endl << "Frasier comes
on the television, and for one half hour of bliss, I curl up on the couch and indulge in witty humor. A much-needed reminder that a simpler life does exist. But also a startling realization that I am on the brink of a major sacrifice. I can, indeed, become one of them, but to be the best, all other things must surely become secondary." << endl;

Class impendingMadness(double myVal = 27.0)

Damn the time! It's eleven o'clock and I haven't even scratched the surface of class inheritance! Bah. Hold on, I'mma inject another Mountain Dew in my veins and forego a little sleep.... back to the project at hand... sing, baby, sing...

// constructor goes here
cin.getline("You mean you don't know? How did you get this job?");

My skin feels a little fuzzy, true or false. Better store THAT result in a boolean, my friend! And remember, kids! Always delete anything you may steal from the free store. Can you steal from a free store? Ha ha ha!

Mock me all you'd like, Mr. Cursor. I'm just getting started().

cout << endl << "sing, baby, sing" << endl;

// your files are outdated. you have no hope.