I like to program, even more so, when I am bored. Why do we like to program? There is one thing for sure, that it earns money for us in the IT era, but there should be some inner desires, so that we keep coming back to programming. It could be fulfilling the creativity within us, like a child placing the blocks around to create something beautiful that it can see and enjoy. I have been programming so long that I love it, and if I have to replace programming with something else, I always worry about the loss of joy. Do you feel the same way? How I can get the same joy, that is equivalent to programming joy, without doing computer programming?

Replies are listed 'Best First'.
Re: Why do we like to program?
by almut (Canon) on Nov 09, 2008 at 18:39 UTC

    The renowned psychologist Csíkszentmihályi coined the term Flow for that special joyful state of mind that is experienced with certain activities, characterized (in a nutshell) by a dynamic balance of alternating successions between challenge and mastery. (In particular, it's the transitions to mastery that provide for the rewarding component, yet those could not occur without ever new challenges.)

    His theory has been applied to all kinds of activities (e.g. playing video games), to explain their fun (or even addictive) potential. For me, it also applies rather well to programming activities — at least to the intrinsically motivated, geeky ones. Ever new micro challenges provide for sufficient opportunities of personal mastery: just when you thought you got it working, the next problem pops up...

    As the manifestation of flow depends on the challenges matching the individual's ability level, Perl seems particularly well suited. Its "easy things easy, difficult things possible" is catering for a wide audience to find their personal succession of challenges. The beginner isn't overwhelmed, and the guru can still find subtleties to tackle.

    Anyhow, in case you're interested in the psychological side of these things, I would recommend taking a look at Csíkszentmihályi's classical book "Flow: The Psychology of Optimal Experience" as a starter. Definitely a worthwhile read.

      Funnily enough, I came up with the term 'flow' without ever having heard of Csíkszentmihályi. For me there really is a flow. A flow of creativity, productivity. I hardly sleep in that state and if I do, I dream flashes of code. It's almost manic, I can't rest my brain until I either get it out of my system and finish what I'm doing, or something interrupts the flow

      Something like a holiday, or a busy time at work or an appointment I can't get out of. Chances are if that happens, I'll never revisit the project. I can't get back into the flow and don't see the point

      My svn repository is full of half finished projects, that just need polishing or debugging, or a user interface. Waiting for me to catch that elusive and ephemeral flow.


      I think I could find joy in just being able to spell and pronounce Csíkszentmihályi

      Seriously, his attributes of Flow, remind me of being high on cannabis.

      I'm not really a human, but I play one on earth Remember How Lucky You Are

        As to the joy of being able to pronounce the name...  I think it's something like chick-cent-me-high[-ee] (not entirely sure about the final [ee]) — HTH :)

        "Seriously, his attributes of Flow, remind me of being high on cannabis"

        Send for the PerlPolice don't you know it an offence programming under the influence!

Re: Why do we like to program?
by moritz (Cardinal) on Nov 09, 2008 at 18:51 UTC
    There are many reasons why I like programming. Among them:
    • intellectual challenge
    • solving problems
    • automating boring tasks
    • it allows me to build system.

    The last item was inspired by a great talk (video here). Some people, which we call "geeks" or "nerds" (and I count myself among them) like to think in systems. In well-defined, understandable but usually non-trivial systems.

    When I write a program, I explore such a system (one or several programming languages) to built another system. I don't think everybody understands that, but I find great joy in it, even if it's not useful in any way.

      One reason Perl resonates with me is, it's a language I can explore, even more than a language to master. Scheme is the same way: it feels like a language that's more about discovery than about churning out code. And ironically, I find it easier to get a working product in both Perl and Scheme than in ``flat'' languages like Java. I was a professional Java developer for some time, and never really felt passionate about it.

      This is all highly subjective.

      I second all those points. They sum up my reasons for programming well, but I'd perhaps add a fifth:

      • I'm compulsive

      ...by which I mean my brain will happily stay in a code-run-debug loop for long periods. I feel compelled to figure out the next thing! Programming is one task that rewards that particular character trait.

      Rands is funny. (Update: hehe, I guess TimToady was in the crowd... and then Rands borked the 'fixed' regex)

      Life is denied by lack of attention,
      whether it be to cleaning windows
      or trying to write a masterpiece...
      -- Nadia Boulanger
Re: Why do we like to program?
by Xenofur (Monk) on Nov 09, 2008 at 13:37 UTC
    "that it earns money for us in the IT era" This, for me, not really.

    However i know why i like it. It gives me the same feeling as fixing my bike does, it gives me the same feeling as taking a saw, a hammer, some nails and a bunch of wood and building something in my garden does.

    It is an act of creation, no matter how grand or miniscule and as such it satisfies me.
Re: Why do we like to program?
by zentara (Archbishop) on Nov 09, 2008 at 15:27 UTC
    How I can get the same joy, ...... without doing computer programming?

    Music of course. I was musing the other day, that programming is like creating a "symphony of bytes", where you are the composer and conductor.

    I'm not really a human, but I play one on earth Remember How Lucky You Are

      "programming is like creating a "symphony of bytes", where you are the composer and conductor.

      Mine's quite the opposite more like a bad Karaoke!

        bad Karaoke...... well then, your programs should be popular in Japan. :-)

        I'm not really a human, but I play one on earth Remember How Lucky You Are
Re: Why do we like to program?
by GrandFather (Saint) on Nov 09, 2008 at 20:56 UTC

    By almost any other form of problem solving. I started out in electronics which can provide similar challenges, but almost anything that involves solving problems to fix stuff or create new stuff will turn the trick.

    For some people that is music, others may find it in flying or fishing, wood or metal working, painting or photography, computer game playing or team (physical) sports - you get the idea I'm sure. The key elements are creativity and problem solving. So long as you can find new and different problems to solve in whatever field you are engaged you should continue to take pleasure from it.

    Perl reduces RSI - it saves typing
Re: Why do we like to program?
by pobocks (Chaplain) on Nov 10, 2008 at 07:16 UTC

    For me, it's the ability to build something without needing to be dextrous or wealthy enough to afford materials. I can make concrete things or actions out of words. That's as close to magic as I've ever seen.

    for(split(" ","tsuJ rehtonA lreP rekcaH")){print reverse . " "}print "\b.\n";
      The other nice thing is that you can create it once, and then duplicate it as many times as you like for free.

      If you make a table or some nice drapes, they're still just one thing, yours alone.
      However, if you write an application that does something useful, you can improve the lives of thousands to millions of people all at once.

      I think the best I've personally achieved so far is a noticeable improvement for hundreds (maybe a few thousand, I'll have to check my webserver logs), but the potential is there.
Re: Why do we like to program?
by Lawliet (Curate) on Nov 09, 2008 at 16:50 UTC

    Because the computer understands me. Also, I have no friends :'(

    That was a joke~

    I'm so adjective, I verb nouns!

    chomp; # nom nom nom

Re: Why do we like to program?
by $self (Friar) on Nov 09, 2008 at 23:40 UTC
    I also enjoy the meta-thinking required for good programming: figuring out the 'right way' to slice up reality...
Re: Why do we like to program?
by Annoymous Monk (Sexton) on Nov 09, 2008 at 14:16 UTC
    Good programming is like a good sex. I feel the most pleasure when programming with Perl.

      I enjoy programming. A lot. But if sex doesn't provide you with something an order of magnitude more intense, then I think you're not doing it right :-)

      OTOH, maybe I don't program well enough :-O

        There is this incredible, cool, liberating feeling after hours of debugging complicated code when it finally works. A professor of mine called this an

        algorasm: n. (Origin: blend of algorithm + orgasm) A sudden, short-lived moment of pleasure enjoyed by the programmer when the final kludge rings the bell.

      Heh... cute name. Took me a bit to figure out why you had a rank.

Re: Why do we like to program?
by Herkum (Parson) on Nov 10, 2008 at 00:57 UTC

    I like to create new programs. I would like to point out that is better than working a physical item, one it takes no extra space, so I don't have to waste a large area storing it. And two, if I screw up, I have not wasted whatever money I had spent on buying the item I damaged.

    I ruin a program, all I have lost is some time. I ruin a table, I have lost time and X dollars for the items I spent in the store! :)

      On the other hand a well crafted table may last hundreds of years. The longest I've had a piece of code in production for is about 15 years and I consider that a very long time for code to remain in production essentially unchanged!

      Perl reduces RSI - it saves typing
        Old tables still need to be refinished and polished every now and then.
        And, if you divide by the number of years that the technology has been around, that table starts to look pretty transient compared to your code.
Re: Why do we like to program?
by dHarry (Abbot) on Nov 10, 2008 at 13:21 UTC

    For me philosophy does the trick. Going over philosophical problems on existence, knowledge or language always turns me on. And what about the beauty of mathematics? And surely music has something mystical/mysterious/magical about it.

    If this all doesn’t work always resort to drugs;-)


    "I hate to advocate drugs, alcohol, violence, or insanity to anyone, but they've always worked for me."

    Hunter S. Thompson

Re: Why do we like to program?
by Anonymous Monk on Nov 09, 2008 at 14:28 UTC
    do some fishing, or hunt with a stick, then have lunch, then make yourself a hat :D
Re: Why do we like to program?
by bibliophile (Parson) on Nov 10, 2008 at 19:19 UTC
    To get into that "flow" when I'm not programming, I find two things work for me: music (learning a new piece) or writing (generally fiction, though non-fiction has it's own zone).
Re: Why do we like to program?
by arkturuz (Curate) on Nov 11, 2008 at 09:09 UTC
    Lately, I program mostly because of economic reasons. It's really hard to find a good Perl-related job in Croatia, and my current job is pretty good, so I can't transfer to more interesting things, because I think they won't pay me as much as I get paid now. Maybe I should take a risk...

    On the other hand, I am creative all the time, and I like programming because of that: to create things and to create new things. Seven on eight years ago I used to write poetry, up to 10 to 15 poems a day, and when I got to the state where I didn't know what to write next, I started to program. I felt joy writing poetry, now I feel joy writing code.

Re: Why do we like to program?
by motzi (Sexton) on Nov 11, 2008 at 01:41 UTC
    I doing it for spirit. I feeling happy when i get some working code written by myself and like 'gained experience man'.
Re: Why do we like to program?
by Anonymous Monk on Nov 10, 2008 at 02:12 UTC
    same reason squirrel likes to gather nuts

      Funny thing... it turns out that, although they are driven by nature to collect and hide the nuts, squirrels have no instinct that helps them find the nuts later.

      Sometimes they get lucky, but mostly they just fail.

      Apply to programming, perhaps reuse of code. ;-)

      for(split(" ","tsuJ rehtonA lreP rekcaH")){print reverse . " "}print "\b.\n";

        They may fail to find the nuts they hid themselves, but they may find those hidden by other squirrels and they will find the tree that may grow out of a well hidden nut. So hiding and failing to find the nuts is good for the nut producing trees which is in turn good for the nut eating animals. Imagine they could find all they hid ... what would new trees grow out of? And what would the squirrels eat once the current generation of trees grow too old to produce nuts? :-)

        How does that relate to programming ... maybe ... what would we do if the code we once wrote could always be reused?

        An interesting side note: they pretend to hide nuts too.

Re: Why do we like to program?
by matze77 (Friar) on Dec 04, 2008 at 14:03 UTC

    Cause i am lazy. Automation saves me some time which i can spend on more exciting things. This is a good thing since the best inventions came from lazy people ... For Learning reasons, it can be very demanding to solve a problem, and you can pat yourself on the back if you completed it, that gives life a little more sense ;-). And last cause i hope to find a better job after i developed some skill which is more challenging than what i actually do ...

Re: Why do we like to program?
by zli034 (Monk) on Nov 09, 2008 at 17:58 UTC
    I don't like to program. And it's way of making a living, and potentially to create an invention to have extra cash. And it's a skill needs to be exercised regularly. I prefer to have others code for me when I have ideas.

      We should become partners. I like to code and am horrible at coming up with ideas!

      I'm so adjective, I verb nouns!

      chomp; # nom nom nom