Blog Tags: 

Why I love programming: a crude theory of mind

I've been programming a bit today and I am enjoying myself and focusing for hours at end, which has lately been next to impossible for me when working on other things (e.g., website design).

It's made me think about why I'm having such a hard to reproducing the focus and satisfaction I feel when I'm programming when I'm doing non-programming stuff.

Fact is, I've noticed I find it much more difficult to get in the zone when I'm not programming. I feel slow and unproductive (compared with development) and that leads to low morale and avoidance/procrastination feedback loops.

I've reflected a bit on why this is and I think it has to something to do with the differences in how my brain works on programming vs non-programming tasks.

Programming is easier because it consists of close-ended testable goals that are easy for me to break down into digestible sub-goals.

In other words, when I'm programming I usually know where I am, the next thing I need to do to make progress and how to test that I've gotten there. The evaluation criteria is external (e.g., testable condition) so I can devote my full brain power to passing the next evaluation. It's like how having a GPS gives you confidence to navigate straight to your destination.

By contrast, when I'm not programming the evaluation function is usually internal and a good deal of my brain power is devoted to trying to evaluate whether or not I am making progress at all and whether I have reached my destination.

Going back to the navigation analogy, I don't have a GPS and so I find myself constantly re-evaluating the road against poor quality maps and worrying about whether I am going in the right direction.

Thing is, I remember I used to feel lost programming too before I figured out the development process I use today.

Since the "GPS" is something I gained with experience, the lack of productivity may not be inherent to the nature of non-programming tasks, but rather to lack of comparable proficiency in non-programming tasks. The boredom could just be frustration in disguise.

Specialists in the fields in which I dabble as a hobbyist probably have their own field-specific "GPS" to guide them. The only thing I have is high standards, and those can easily backfire.

Add new comment