Monday, August 2, 2010

The chemical high of programming

Know what I'm talking about?  I've gotten it when iterating quickly on something I know how to do, or something I almost know how to do.  It's addictive and energizing, and the only thing that makes coding for long hours possible.  Perhaps this is "flow."

I think I should keep track somehow of what causes this state.  Today it was writing "hello world" using a couple of new technologies, and in that sense, it sounds quite flowy: surfing on the edge of my abilities.

It brings up a lot of questions, though:
- how can I cause this flow more?
- why don't I get it more often already?  (I think it is because I am often trying things that are too hard.)
- will it bring me lasting job satisfaction to aim for more flow? (instead of whatever it is that I'm aiming for now, which is "doing what needs to get done", I guess.  I think the answer to this question is yes.)
- will I keep learning if I aim for more flow?  (I think the answer to this question is "yes, and stop asking so many worried questions.")

Programmers out there, do you know what I'm talking about?  And non-programmers, do you get the same thing?

1 comment:

  1. Interruptions are killers to flow. Slow tools, email, meetings, interruptions from office mates.

    Also context switching - between tasks, bodies of code, or languages.

    Eliminating as many of these as possible, I think, will improve the "flow."