I think that your first step in becoming “addicted to programming” is understanding what building stuff really is: intense sprints of orgasmic discovery separated by long periods of building the prerequisites. Once you understand which phase you’re in, you can better understand why you feel the way you do.
A perfect example was my project last week. I had to make 14 changes (including 3 major structural reworks) to an existing application to produce one additional output. This output was key for a fundamental shift in thinking about the use of the app.
My week was actually fairly predictable:
Monday was fun for a while, thinking about how it would work, what needed to be different, how the data has to be restructured, and how cool the new results would be. But things became drudgery when I had to lay everything out build my work plan.
Tuesday sucked, tearing apart code while trying to maintain an audit trail and balancing the new functionality with keep everything old still working.
By Wednesday, I didn’t even want to work on it and spent a lot on time on-line, playing games, and surfing the internet. I struggled getting the final pieces in place.
On Thursday, my interest piqued when regression testing went almost flawlessly. But no matter, even if it didn’t, being in “getting it to work now” mode always captures my attention.
Friday was bliss. I was cranking code, unit testing, regression testing, reworking, getting the results I foresaw on Monday, and doing a happy dance every 20 minutes or so. Time flew as I worked into the night getting all this cool stuff working. I wish every day could be like Friday, but I needed to pay my dues earlier in the week just to get to that point.
I wish I had an easy answer for collapsing the long hours of building the prerequisites and expanding the time spent “in the zone”. The only suggestion I can make is get to the point of having “something” for output as early as possible. That’s when the fun usually begins. Until you reach that point, just understand you’re in “courting” mode. Just keep on working and the digital orgasms will arrive. Once they do, it’ll be worth it. Don’t worry, you’ll be “addicted”.