I tried googling this question, and was surprised by how infrequently it’s actually addressed. Most of the results are for one-off jokes. The only significant post I found that was actually trying to answer the question in detail was a post by Anne Epstein. That post, however, focused more on the “how I became and thus now am a programmer” interpretation of the question.
The version I want to explore is “why I remain a programmer” – what my motivations are for doing what I do. I think it’s an important version of the question to consider, because it’s the one that others are really going to want to know about when they’re choosing a career path. It’s the one that avoids propagating a sense of technical entitlement. Lastly, it’s probably the one that I, as the author, can actually get the most use out of considering on an ongoing basis.
So why am I (still) a programmer? The trivial answer would be “because I enjoy it,” but that’s a cop-out answer which is useful to no one. So let’s go a bit deeper. Why do I enjoy it? There are a few reasons.
First, I enjoy problem solving – both on a micro and macro scale. Programming involves copious amounts of both. Figuring out the most efficient way to implement a feature or tracking down a bug in existing code are examples of small-scale problems that programmers solve. Figuring out software solutions for problems like hurricane disaster relief coordination, personal bookkeeping, or project funding are examples of the larger scale. Whatever project I wind up working on, it winds up having interesting challenges.
Second, I enjoy creating. Programming is wonderful for this: it’s a medium that, unlike many others, allows me to create something out of nothing. I’m not limited to physical constraints; if I can imagine it, I can create it (with enough thought and effort). Programming lets me create things that tie into the rest of my life and improve it, whether for fun (e.g. addons for a game), productivity (say, automating parts of my daily routine), or profit (work, modeling my personal finances, et cetera).
Third, it’s a career. It’s an area that has a lot of demand and probably will continue to be in demand for the foreseeable future. As such, it’s also an area that pays well. This does contribute to my enjoyment of programming. While I don’t tend to be frivolous with my finances, having a solid income makes staying in the black a lot simpler, and allows me to save and invest for the future, whether that be good times or bad. As someone who eventually plans to raise at least one child, I feel an obligation to help make that child’s financial future reasonably secure.
Despite my gripes about some areas, the tech industry has become one of the better and more progressive industries in many of the areas where it matters. My employer’s healthcare benefits are amazing. Flexible schedules, liberal parental leave policies, and other such benefits are commonplace. Sure, there are some bad apples, but demand is high enough you can usually shop around. Having this kind of work environment and social support structure improves my overall quality of life.