The Many Motivations of a Programmer

A conversation with a friend yesterday prompted me to reflect on all the different ways I’ve felt motivated in my career, how motivations have come and gone, and how often they’ve changed not just between but within jobs.

At the start of my career in software, my primary motivation was to prove myself. As an internet-taught hacker (and not in the cool sense), I had no credentials or schooling to lend me confidence, so I labored mightily against imposter syndrome. This was a powerful motivator, but also a dangerous one. Balance between work and life went out the window, and I spent significant portions of my free time reading about or practicing programming to show my colleagues I could work at their level. It also caused me to take every “best practice” I learned much too far. “Don’t repeat yourself?” Here ya go: every string in this app is now a global constant so no string is ever repeated.

Ten years into my career, the imposter syndrome has gotten better but never goes away. I find it’s relative. I may be something of an expert on my team, but send me to a conference with people I don’t know talking about things I don’t know and suddenly I feel like a baby again. Depending on how powerful (and healthy) a motivator this is for you, you could let it guide some career decisions. For example, when you no longer feel the need to prove yourself at a job, it may be time to either move or take on new responsibilities. This was part of my motivation for moving into management, for example.

Another motivation that’s driven me is to do work that matters. For some, this might mean “putting a dent in the universe” in Steve Jobs’ famous formulation, but for me it just means making some people’s lives a little better. In my first job at Cancer_Care_, for instance, I questioned many things, but never whether the work I did mattered. I can easily contrast that with my next job at a digital agency, where I built, among other things, the transient website for the movie Horrible Bosses 2.

Something else that’s motivated me is the utopian desire to build the perfect system, finally avoiding the mistakes of the past (while of course making new ones). Working at an agency catered well to this motivation, as I’d often be building new systems from scratch. But one of my regrets was that contracts would run out and I’d never stay on systems long enough to perfect them, which led me to my current job at a product company working on the same system for years. However, I’d learn that startups are not great places to seek perfection either, and for good reason. Things change too quickly, including the definition of “perfect” for a system, for that to be worth pursuing. I actualy wonder if that’s the case everywhere.

That’s not to say the desire to build a perfect system is unrealistic, only that if this motivates you, you may need to adjust your definition of “perfect”. If the business’s needs change too quickly, then a perfect system may not be one that meets those needs perfectly at a given point in time, but one that can change as quickly as possible. And of course, if you do really want to build a system that meets a need of yours and never has to change, you can always start a side project.

What’s motivated you in your career?