As we follow the zig-zaggy quest of me trying to learn to program, I discover the next significant step, “Interest”. I started with a goal: to learn to program. Next I came up with a plan: Learn Python by writing a program called PT (period tracker) but I lacked the last bit, interest.
You see, there was very little that period tracker did that a calendar didn’t. Spending hours to make a program to do work that I could do in five minutes with a calendar and a pencil seemed like a waste of effort.
Now don’t take this the wrong way. [...] I’m pretty accomplished at wasting time, but I can’t abide doing work “for fun” that bores me.
This gets to the heart of free software programming. People don’t program just because they want to learn. They don’t even program because they have a need. People program because they are interested in getting something done, and they are willing to do it themselves. Learning to program is time consuming and requires effort, but the effort means nothing if you’re having fun, just ask anyone playing racquetball.
Programming is best when it is play.
http://www.freesoftwaremagazine.com/columns/becoming_a_frees_software_developer_part_4