Coding Horror

programming and human factors

So You Don't Want to be a Programmer After All

I get a surprising number of emails from career programmers who have spent some time in the profession and eventually decided it just isn't for them. Most recently this:

I finished a computer science degree last year, worked about a year in the Java EE stack. I liked requirements engineering and more 'management stuff' in university, but let's face it: you tend to be driven to be a programmer.

I enjoy programming itself. I'm not doing it that badly, I even do it better than some people. But it's too frustrating. Stupidly complex stuff (that people consider "standard" even if it's extremely complicated!), fighting against the computer, dumb errors, configuration, and stuff that people even worse than me implemented and I have to take care of. New stuff which is supposed to be incredibly easy, and it's just one more framework.

I think I realized I don't want to program because I landed at a company where people are quite good. And I honestly think I won't achieve that level, ever. And I don't enjoy programming as a hobby.

I'm sure that I'm good enough to be able to make a living continuing as I am … but I don't want to.

And this:

Since the first year of studying programming at university I have known in my heart that computer programming is not meant for me, but I was afraid to do anything about it and here I am now 12 years later programming with no passion. I am a career programmer and an average one at best.

I come to work every day with no passion I just do it to pay the bills. I have done some good projects but I am not at all into it.

It was always our hope that concrete, substantive programming career questions could be asked on Stack Overflow, and some early ad-hoc polling indicated that career questions might be accepted by the community, but if you look at later poll results, it's clear that the career questions came out juuuust under the cutoff point as determined by the Stack Overflow community.

Well, what about the rest of the Stack Exchange network? How about our sister site at programmers.stackexchange which is less about programming problems with source code and more about whiteboard style conceptual programming questions? Apparently, career questions are not welcome there either. But wait! Surely programmer career questions are a fit on a site that's explicitly about career related topics? The very same question was asked on workplace.stackexchange:

I'm graduating soon with a Bachelor's in Software Engineering, however during the course of getting my degree I decided I do not want to be a programmer.

I minored in Business Management and really enjoyed that, particularly the management side of psychology and the basics of the processes involved with restructuring a business, but don't really want to throw away my programming degree either.

Is there a field for someone with a Software Engineering degree who wants to get into business management instead of programming? I'd like to combine my knowledge of making software with some kind of business process oriented work. How should I go about changing to this field? Is this possible without going back to school?

Nope. Sorry. That was closed, too, either because it was seen as a 'recommend me a job' or because it's too specific to programming. Pick your interpretation.

I am sympathetic to this quandary because career questions, by their very nature, tend to be so narrow and opinionated that they are frequently only useful to the person who asked – which is completely counter to the goal of Stack Exchange. You know, endless permutations of things like "My boss Jeff is a total jerk, he constantly changes my code without asking and overrides me all the time with his BS arbitrary decisions, should I quit?"* I can understand deciding to outlaw the entire class of career questions because they're frequently soft, opinion-y, and highly specific to the person asking. It's easier to throw out the whole category rather than do the painful work of sifting through them all to reveal those few rare workable gems.

Stack Exchange wants questions that are as useful to as many people as possible, and actively closes (sorry, "puts on hold") the ones that are not. I will now reprint my favorite diagram, ever, which attempts to explain this:

Who does your question apply to?

The colored part in this target that says "All Programmers"? That's the goal at Stack Exchange. Well, maybe "all bicyclists", or "all cooks", but you get the general idea.

We try our best to teach you to ask questions that hit this sweet spot: answers that get you the information you so desperately need, yes, but also help your peers along the way without devolving into meaningless opinion honeypots. Overshoot and you get either "Too Broad" or "Too Localized". Hitting that target with our questions – or at least making a best faith effort to attempt to, anyway – is how we maximize the results of our collective efforts. Write once, read many.

But back to the topic: what career options are available to programmers who no longer want to program? I feel there is a way to answer this question that would be helpful to many other programmers, that is supported by facts and data and science.

Programming is indeed a field that does require some passion. If you've been programming for a few years and haven't developed a taste for it by now, it seems doubtful to me that anyone would suddenly develop one overnight. However, if you were able to stick with doing something you're not very enthusiastic about for a period of years, maybe there's still a kernel of something there to work with. Or perhaps you're just wearing golden handcuffs.

Golden-handcuffs

Environment plays a big part in any job, no matter how intrinsically amazing that job might be. Who do you work with? What are you working on? What kind of environment do you program in:

  • A startup?
  • A small business?
  • A big business?
  • A consultancy?
  • Freelance?

The "programming" in each of these situations, and the other peer programmers you'll be working with, will be radically different. Consider if the environment and peers may be the problem. Have you tried changing those up, first, before conclusively deciding you need to leave the field forever?

Beyond that, there are lots of related fields where programming skills are advantageous, without having "sit down and write code all day" as part of the job description. So let's think. What jobs exist where …

  1. Programming skills and a deep technical background are typically in the hiring requirements.
  2. There is a documented record of ex-programmers moving into these positions and being successful.
  3. There are a reasonable number of such jobs available worldwide.

Here's where I really wished I could have asked this on Stack Exchange, because I'd much rather crowdsource data to support the above three points, but the best I could come up with on my own is:

In many of these roles, people that truly know the nuts and bolts of programming are quite rare. That's unfortunate, because a deep technical background lets you actually understand and explain what is going on, to customers, to business stakeholders, to peers on related teams. At the very least nobody can dazzle you with technical BS, because you're equipped to call their bluff.

I've seen less "adept" programmers self-select into related roles at previous jobs and do very well, both financially and professionally. There is a lot of stuff that goes on around programming that is not heads down code writing, where your programming skills are a competitive advantage.

Career questions are tough, because ultimately only you can decide what's right for you. But if you're a programmer who no longer likes to program, your technical background can at least open the door to a number of related professions.

* Yes, you should quit. Jeff is a total jerkface.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror