In college, they put me in several C++ classes and I did all right. Then came the one course on network engineering. The first big assignment came: program a web server from scratch, using C.
I didn't know C. Turned out to be a different animal. I had to specifically request my C++ classes, for enjoyment. Programming wasn't part of my EE curriculum. It was Computer Science. How could anyone know C then, before coming to the class? Yet many did.
I despised team assignments, mostly because I often had been stuck with low performers hoping for the easy grade. I took to asking permission to work solo in high school. Couldn't do it university but there I found most pulled their weight. Now...
With serious grades at stake and no time to learn a language from scratch, I did what most would do in that circumstance: pick the smartest kid in the class and latch on. The teams formed quickly. I solicited who I could. The one I picked looked smart, at least. But he was also easy-going and very much a people person, not one of the driven, laser-focused types that made up much of the class. It was a risk. All of the obvious high achievers were taken immediately. And they likely had sized me up as not being one of them. So my new partner and I stayed up a number of nights. Mostly, I sat behind him watching while he did all the work. I felt guilty. He did it. We passed.
The second and final project was a little more complex. What you have to work with is UDP. Create a Reliable Data Transfer (RDT) protocol from scratch, use it to send a file from one simulated system to another (same computer). Transfers should survive packet drops up to 30%, so we would also program a way to simulate drops.
Same process. The day before it was due, early in the evening he left my apartment. We kept chatting over IM while he programmed. I don't remember how I could see his screen. I did nothing, just watched as before. I felt useless. I hoped he could figure it down.
At 2am, I got the fatal IM. "Dave, I feel that I've let you down..." he began, explaining that he couldn't get it working. That was it. I told not to feel bad.
"I've let you down." I rolled that around miserably in my head. My guilt compounded in that somehow he had convinced himself that he owed me anything at all. He had done all the work. I was the freeloader I couldn't stand, feeding off of his work. He gave up. I shut down my computer.
I went to bed. Didn't sleep well. I started dreaming of the code. I woke up around 5 or 6am bursting with energy. I felt like I knew the solution. I didn't know it exactly, but it was in reach. Uninterrupted, I rewrote his code, furiously adding more and more, finally understanding how it worked. I asked him to meet me at our TA's office. I told him I had it.
Minutes from the 3pm deadline I handed the TA the 3.5" disk. He put it in his computer. We could simulate 90% failure, far higher than anyone else and the file transferred fine. That was as far as the TA would bother testing. No reason if programmed well it shouldn't survive anything short of 100% drops, but I observed a number of projects fail well below the 30% threshold. I think the TA got a kick out of a team that went all out.
"A" for the project.
Encore
Years later came another capstone course, this one dealing with operating systems and a lab project using Linux programming. It had something to do with changing how the file system worked. Shell programming. C again. I didn't know Linux. Shell programming? Same deal. I scrambled when the class ended to find anyone who seemed to know what they were doing, hiding that I would be dead weight. I got one. The long haired type, the kind who (like me) didn't work too hard but who loved it enough to stick around enthusiastically (less like me -- I wasn't sure).He and I stayed up late two nights at my computer, until he gave up, again apologetically, and went home. I took over, trying to figure out what he had been doing. I coded most of the night, slept a little, got up again. I would be purposefully minutes past the first deadline (so marked down a bit, every hour) but I felt close and willing to sacrifice points to complete it. We got it in. It worked. Marked down slightly, but we passed by a solid margin.
It was an incredible feeling. I was the freeloader, picking the smart kid yet again; guilty but not guilty enough not to do it for the sake of my grade. I felt redeemed.
I've learned
Often my best performances show under high stress.I really enjoy turning around an unwinnable situation, coming through smashingly at the last minute.
It's not freeloading if I'm observing. I'm buying time until I'm competent. If you have to play the dead-weight for a time, be sure to carry more than your fair share at the end.
I never hated freeloading more than when I thought I was the one doing it.
No comments:
Post a Comment