Recently I made a big move (from a New England state down to the center of the Sun, Florida). Before I left I had to take care of some things in the house as per the buyers request. Much of this was painting, sanding, and repainting sort of stuff. Luckily, I had a friend help me, who is also a programmer. He and I have two differing styles of programming. I tend to get a framework done, debug, cleanup, then optimize. He tends to pre-optimize, and doesn't burn through the main functionality of code as I do.

Anyways, when we were sanding some door trim I would get the majority of the trim sanded, and come back and find the 'bugs', or places that were missed. I even thought to myself when I had begun, "Should I make every square inch perfect now? Nah, I'll debug it later". And, that is what I did. I got the framework of a finished sanding job done, then came back and debugged the errors, so to speak. Then, I would wipe the area down, and stain the wood (cleanup, then optimization). I considered each doorway as a project, as opposed to all the doorways as a project.

My buddy, on the other hand, would make sure the square inch was sanded before moving on to another square inch. I noticed his programming style in the way he was working on a real life project, just as I noticed mine. He actually even swept up the sawdust from the floor as he went along (we would take a break, he would come back and sweep before sanding again).

Then, when I arrived down here, in the sweltering heat, I thought to myself, "Should I bring in all my stuff from the car now?" (I drove down here, with my dog) And thought to myself, "Nah, I'll bring in my clothes now, and come back for things when I need them". I again thought of this as a sort of "Get done now what is most important (functionality, and being able to be clothed) now, and unpack the car as needed (debugging and optimizing my living needs). I have also seen some other relationships between my actions and programming style, but won't bore you with them. Is this all a coincedence? Or are who we are in one aspect of our lives carry over? I was never taught "how" to write a program, so maybe with no influences I learned to do it as I do other things.

So, does anyone else ever notice this type of corrolation with themselves or people they know?

PS: Even though it seems I took more steps to finish the sanding/staining.. I still finished sooner. In case anyone was going to ask :)

Cheers,
KM

Replies are listed 'Best First'.
RE: Life and programming practices
by extremely (Priest) on Oct 13, 2000 at 03:16 UTC

    I've watched one of my best friends spend 6 hours readjusting small bits of paper in a giant photo collage. Working from top to bottom then back over the whole thing for another pass. Flipping thru stacks of photos and trying different ones, then finally actually pinning it all down with cement in one pass, making final twiddles as he went.

    Then I watched him write the text for the article that would accompany that item, written in one pass, no checking, no going to the dictionary for words he couldn't spell, bad grammar, etc.

    I got yelled at, not just "Hey" but a five minute lecture, for asking about the placement of one picture. Then he asked me later for hepl proofing the text.

    So no, not everyone is like that. =) I am tho, the way I code is the way I write and the way I live.

    UPDATE Got called out on my typo in the line about helping my friend with proof-reading. ouch:

     xxx says No, look at the
    spelling.. I just thought it
    was funny you mispelled
    help when saying someone
    asked you for help in
    proofing text :)
     and all is quiet...
    you said "doh, well that is
    sad, isn't it? Guess my get
    the big points in and deal
    with the details later
    approach burned me huh?
    =)" to xxx
    

    ouch ouch ouch. =)

    --
    $you = new YOU;
    honk() if $you->love(perl)

RE: Life and programming practices
by jepri (Parson) on Oct 13, 2000 at 04:36 UTC
    It's very true in my case. I have a bad habit of getting lost in the details, or gold-plating things. I will spend hours working on a sub-routine when the rest of the program is still non-func. I'll spend ages tracking down a reference for an assignment I'm doing. And I never quite manage to clean my room before I encounter something that holds my attention for a couple of hours.

    Uh... I guess you were probably looking for more positive traits.

    I do plan everything I do before I do it. My friends have commented on it, since it infuriates them when they 'just want to get to work'. So in your case I'd probably stand around trying to figure out how to sand a door using the least number of strokes with the sandpaper, or the optimal way to move from door to door using the least number of steps overall. And then get sidetracked somehow.

    Actually, that's sounding really obsessive now that I read over it. Oh well, you did ask...

    _____________________________

    Jeremy

RE: Life and programming practices
by royalanjr (Chaplain) on Oct 13, 2000 at 19:40 UTC

    I must admit that I have never made that connection about myself or anyone else. It kind of gives me chills as I see so many correlations between programming and "life habits", or poetry, or (following the life habits trail) psychology. I do have a feeling that somewhere, someone has written a paper on this connection; but I could be wrong.

    Looking at myself, I do not seem to be cohesive. I flit from project to project, or even from part to part within a project, in programming and in life. I do not think that says anything good about me, but oh well *smile*

    That was a great observation KM, and a definite ++.

    Roy Alan

(jeffa) RE: Life and programming practices
by jeffa (Bishop) on Oct 13, 2000 at 17:36 UTC
    Very interesting parallel, KM - this reminds me of my job in the kitchen. I would arrive fairly early in the morning to do preliminary prep work.

    If I was neat about everything that I did, i.e. wipe up any mess that I made on the spot - I wouldn't be ready on time.

    If I tried to complete any one task at a time without finding a similar task to work in parallel - I wouldn't be ready on time.

    The goal was to find shortcuts and similar tasks - it was all about killing three birds with one stone.

    All I can say is that thank God I don't do that for a living anymore - because I sure don't like to program in that manner. Besides, it didn't pay nearly as well.

    Jeff

RE: Life and programming practices
by Jonathan (Curate) on Oct 19, 2000 at 16:24 UTC
    Nice Post KM

    That someones code writing can to some extent reflect their personality should not be a great surprise. After all programming does afford a large degree of self expression (TMTOWTDI!). The phrase 'computer language is apt. Language allows us to articulate our thoughts. Surely the wellspring of thoughts are our own personalities?

    By the way my ex-wife had the worlds first successful personality bypass.

    I wonder what prompted me to write that...

    "We are all prompted by the same motives, all deceived by the same fallacies, all animated by hope, obstructed by danger, entangled by desire, and seduced by pleasure." - Samuel Johnson
Re: Life and programming practices
by fenners (Beadle) on Jan 25, 2002 at 15:49 UTC
    I do things your way - get the essentials done first, prettify later. One's perception of perfection may change once the job has started. But, one thing worries me about your article ... at what point did you remove the dog from the car?
RE: Life and programming practices
by japhy (Canon) on Oct 19, 2000 at 16:47 UTC
    I get that way too (as evidenced by my recent tirade on how Perl has <s>tainted</s>saved my brain.

    I've become a better thinker, logically, by using Perl. I think Perl caters most to me when it comes to my brain. I didn't get this feeling from C, or C++, or Python.

    As far as living how I program, I'm not sure (yet). I don't know if I fit into a "realm" of programming style. I'll be sure to monitor myself, since I'm interested.

    $_="goto+F.print+chop;\n=yhpaj";F1:eval