Thursday, July 23, 2009

Nerdy Addictions

I learned something about myself: programming is like mainlining heroin. Okay, I've never actually mainlined heroin, but I have seen the movie "Trainspotting," which is a sad but excellent portrayal of heroin addiction (in my very amateur opinion). I just got into a small programming task, and every day for the last 2 weeks I would blow off other work in order to get back to debugging. I had to find this error and make this work, and nothing was going to stop me. Okay, perhaps it’s not quite as bad as heroin, as I did remember to prepare and give a presentation to the summer undergrad students last week. But it is a short-term addiction in that I felt physically drawn to the code and the output files, studying them to find the clue that would solve my puzzle. I am glad the task was manageably small, so that closure could be reached without too much time consumed.

You see, I have not had a good chance to make modifications to my main computer code, myself, in a few years. My students (grad and undergrad) have been working on it, doing the things I used to do myself. Helping them learn how to make these changes usually takes more time than if I just did it myself, but that is no longer my job. I am supposed to educate others, and so hiring these people and spending time with them, to slowly do what I could do faster, is what I do.

Except this month. I laid out a long list of things to do this summer, and programming a new feature into the code wasn’t on the list. As I was cleaning off my desk recently, I came across a printout of an email from a coworker here. It was a mid-cycle review of one of his larger grants, on which I have a very small role. Within the review was a recommendation for a specific code modification, and it even suggested the reference for easily making this change. I had printed it out thinking that I (well, actually, one of my students) should incorporate this change, because it is a change directed at my part of the big project. I sat there staring at this sheet of paper and finally I decided: I would do it. Myself. Right now. Nothing else was that urgent that I couldn’t push it off for a few days, which is a how long I figured this would take, even with the times two factor on my estimate.

It is now 2 weeks later, and I am done. Success! This programming task I undertook so completely absorbed my attention that I didn't do much else and ignored many things until I reached the end. I feel like 2 weeks of my life have disappeared, and all of those things I was supposed to be doing are still waiting for me to do, only now I have 2 weeks less to work on them. I can't afford to do that very often, or I will get into serious trouble.

But I succeeded at a programming task. I’m pretty pumped up right now. I need another hit. No, I can’t go there! I have proposal deadlines approaching!


  1. This is so true, although I think it also has a lot to do with personality type as well. Certain people are just more prone to getting completely sucked into a focused project like that. I am absolutely one of those people, and I've come to the conclusion that I made a pretty critical error in my teen/college years when I was deciding what I wanted to do with my life.

    At the time, I thought I wanted to avoid severely focused, methodical (i.e. "boring") work. In college, I avoided math, science, and technology coursework (despite having been very good at them in high school). Now, I find that I work most effectively (and enjoyably) when I can stare one problem into total submission, and then move onto the next one and do the same. When I'm working on stuff like that, I completely lose track of time. I can spend 10-12 hours or more at a time, just sitting in one place, constructing something, or troubleshooting something, and then once I've done it, feel the kind of elation and satisfaction I imagine marathon runners must feel when they cross the finish line.

    I can't escape the idea that I really should have been an programmer, and I deeply regret that I didn't go that direction when I was younger. I suspect I'd have been a much happier person if I had. I wish I had the means to make a mid-life switch (education costs, time costs, etc.), but even if I did, I'm just not convinced that my older brain would be able to handle the learning curve in the same way as my pliable, younger brain could have.

    Ah, life. A series of triumphs and regrets.

  2. The elation of completing the project is worth it, though, isn't it? No matter what the project.