On programming (and me)
Every time I wind up doing a substantially amount of coding, I end up rediscovering how much I enjoy programming and how rewarding it feels. It's more than just the monkey rewards from doing things and getting feedback, it's all sorts of pleasure rolled up in a big complicated ball that I just love without being able to describe why I find it so absorbing. I just like programming, even if I forget how much I do when I haven't done it for a while.
(Sometimes I find myself half regretting that I became a sysadmin instead of staying a programmer. Programming as a career can be terribly frustrating and undoubtedly soul-destroying, which is kind of why I wound up not in it. But every so often I miss the grass on the other side of the fence and think of hopping back over, however infeasible it is by now.)
Partly it's the pleasure of solving puzzles that matter, and partly it's the pleasure of building and refining things, of seeing what I imagined take shape in front of me by the dint of my own effort and cleverness. But none of that is all of it. Perhaps part of it is the stress relief of shutting everything else out and focusing all of my thinking on the programming instead of other stress points; it's certainly possible that this is a factor in my latest enthusiasm. Certainly I resent having to take time away from coding right now, just when I'm in the flow and I'm so close to getting everything done. (I'm not, but programmers are great at self-delusion.)
(Unlike a lot of programmers, I've never found puzzles interesting on their own; when I look at something like Sudoku, my mind soon works out that I'm not really getting anything for my effort and immediately loses interest. I suspect that this is related to my problem with learning new programming languages.)
Invariably once I've dug my way sufficiently far into the project, I don't want to do anything else but code and the project takes over my mind. I wind up resenting meetings, other work, and even outside activities because they're all taking away valuable time that I could use to be heads down in my editor. Even when I want to step away from the code it's awfully hard; there's always one more quick thing that I see how to do, one more idea to write a quick note about and then a quick implementation and then it's half an hour later. Maybe 45 minutes. Maybe more.
It's probably good for my sanity that I've left my editor running at work with various files loaded into buffers, so that I can't do just one quick change from home even if I wanted to. (Because one quick change is never either.)
(As as side note, I once more or less boggled some people I knew by telling them that I was using recreational programming as a form of stress relief. I don't know if this makes me unusual as far as programmers go; from the stereotypes, I'd suspect not.)