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.


In reply to Re: Why do we like to program? by almut
in thread Why do we like to program? by artist

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.