In the past, I've joked that programmers actually work for the fifteen-minute high we get after squishing a software gremlin. That's a teeeeeeensy bit of an exaggeration. The sober truth is that we work to pay the bills, pay for our toys AND for the fifteen minute high we get after squishing a software gremlin. Because gremlin-squishing is The Best, yo.
There's a secondary high, though. It's the resigned feeling we programmers get about having to add tedious "plumbing"-type code to the current project, which is subsequently countermanded by the euphoria that comes from cracking open the pertinent file, class, function, stored procedure or what-have-you and realising that we had already thought of that particular situation or edge-case*. Woo-hoo! No tedious plumbing after all**.
I really could have used Programmer High #1 today [grumblegrumblegrumble...jQuery UI...grumblegrumblegrumble], but I'm perfectly happy to settle for Programmer High #2.
- - - - -
* Because we don't necessarily remember writing that code (even if it was, like, two weeks ago), we pat ourself on the back for our future-proofing prescience. The more likely explanation, however, is that there was nothing particularly interesting in our social media feeds at that point, so we just got stuck in and took care of it just because we were already in The Zone by that point. Which makes a perfectly good excuse to check our social media feeds now, because we're ahead of the game, right?
** In software, there's something called "technical debt," which translates to short-cuts, kludges, and shameless rationalisation (e.g. "We'll never have enough traffic to worry about performance bottlenecks.") that come back to bite. Typically at the least convenient time. As with public debt, it largely originates from wishful thinking at the top and/or the inability/unwillingness at the bottom to say "Nope. That's never going to work under the current budget and deadline."