a companion discussion area for blog.codinghorror.com

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


Jim’s method for finding a happy career path:

Step 1: Note the things you choose to do, even when you’re not being paid to do them.

Step 2: Figure out how to get paid to do one or more of the things you noted in Step 1.

Step 3: Enjoy your life.

If you can make enough scratch to feed, clothe and house yourself, forget salary level. Forget sunk costs. Forget what other people think regarding the status of your field. Those are extrinsic factors and won’t make you happy for the long haul. People who follow this kind of career rarely retire early. In fact they often continue working into their 70’s.


Timothy Serverius wrote “Despite all the challenges facing us as programmers, we have to remember that little by little we are making the world a better place. It may not seem that way when you are coding a small routine for an outdated accounting application, but when you consider yourself as part of the whole IT community, just look at what we’ve done.”

That’s an incredibly encouraging outlook on all this. Thanks.


To be a top-notch programmer, it does need to be a big focus of your life. But programming can also be a tool to use in other disciplines. If you’re not passionate about coding, then developing accounting software or helping sell books online will probably rot your soul.

So maybe you can find something you’re passionate about, and use your programming experience to facilitate that pursuit.


Get a mortgage, a wife, and a couple of kids. You will then appreciate being able to pull down significantly more money than even the luckiest of your high school friends are making in other occupations. :slight_smile:

On a more serious note, passion doesn’t hurt either, but the chicken and egg problem is, it’s hard to be passionate about something you’re bad at. As in any non-trivial human endeavor, there’s a learning curve to overcome. In Java EE it’s artificial and unnecessary. Drop that shit like a hot potato and switch to something not engineered strictly for job security.


My advice always is, don’t be a ‘coder’ or a ‘programmer’ be someone that uses ‘programming’ and other skills to make ‘problems’ go away and turn ‘opportunities’ in cash flow.

Being a fixer, is a lot less work, more money and respect than ‘coding’


I took several programming courses in college (I graduated in 1980) and loved them. I would happily write and debug code through the evening to dawn. I remember the hours of getting the variables set up in my head as I tried to figure out what was off. It was obvious to me that I could have been a coder and that I would always have been second rate. The others in these intro courses were faster and more accurate than I am.

I’m now late into a career in the tech world and those early experiences have always helped me understand what the programmers are doing and feeling as they work. I’ve spent my career in product marketing and management. Just saying, coding is a great background for all sorts of things. Feel free to move on, you’ll find the background useful.

BUT, I have worked with many x-coders who were not too good at the non-coding jobs that they had shifted into. A coding background is useful but still, you’ll need to be competent at whatever you move to.


I’ve been a tech writer for 20+ years. I doubt if the pay scale is is equal to what most programmers/engineers make. :slight_smile:

Funny, NPR just had a similar discussion: http://www.npr.org/blogs/money/2013/05/09/182403459/i-know-im-supposed-to-follow-my-passion-but-what-if-i-dont-have-a-passion

I’m also reminded of this quote from a novel:

“I’m happy and fulfilled by my day job and it would only ruin my pleasure to turn this (cool hobby) into my source of income. It’s the mistake that people make these days. They think their job is going to be creatively fulfilling when it’s not. All jobs are admin, more or less, so you should go for the one that pays best and gives you the most freedom. People used to have hobbies, but now they don’t have time. Do you know anyone with a hobby?”

Christina Hopkinson
“Cyber Cinderella”


Good post and something that’s been on my mind a lot recently. Golden handcuffs are a big problem. It’s hard to take a $50-60K pay cut to try a new field that you might like or might be just as unhappy with. But that’s a great list of alternate career paths, and I’ve considered 3 of them and think that in the next couple of years I’ll be doing one.

I used to really enjoy coding, not to the degree of weekend coding marathons but always being a tinkerer, playing with new tech, trying little things, reading and considering all the various opinions in our field. Sadly, I ended up working for a group of people at my previous job where the leadership was part entirely inept and part intentionally destructive, and that passion died. Now I do it for a paycheck and when I go home I don’t even turn on the PC except occasionally when an idea hits. It’s sad because I know that when I sit down to code, I’m pretty good at it.


Programming is occasionally painful. This is why you see the plethora of various frameworks coming and going. How we deal with it differ. If you are a programmer at heart, then you can tell when the complexity is accidental, not essential.
In the same way that most programmers remember the first time they saw their own code execute and realized their power over the machine, there is a similar defining moment for a smaller set of programmers when something that was painful becomes trivial with the addition of a framework you made yourself. After that, pain is assumed to be temporary and eventually conquered.


There are many reasons why a programmer is disillusioned with a programming career. I have witnessed three in particular repeatedly:

1- A deep need to chase every shiny new technology incessantly. Sometimes this is pathological, sometimes it is for resume building in anticipation of the next job or a layoff. Other times this is mandated by management. Either way, this keeps the programmer always at the unproductive part of the learning curve. Programmer eventually burns out.

2- Constant unproductive rewrites of perfectly functioning applications instead of building them up further using existing code. This too is sometimes mandated by management. But mostly programmers want to start from scratch since it is harder to read other people’s code or they are resume building. They end up doing a lot more work than necessary and burn out.

3- Programmer can’t see how what they do makes a difference to anyone. Projects constantly started and half finished before getting yanked into another project. No feedback. This one is more of a management issue.


I have a lil different story to say here. When i passed out from college with Computer science degree, i was not at all interested in programming. I ace every subject except programming language and i had the same feelings these guys mentioned above.

When i landed up in my first job with J2EE stack and full of frameworks, I was even more frustrated then the first guy you mentioned. But as and when i started to understand the nut n bolts of the programming language, how it works, why it is like that etc…It was like removal of dust from your spectacles. I realized that programming is not something that you can digest instantly if you have no background of compiler, interpreters or how a computer works internally. But once you try to find out these stuff, it actually become very interesting.

Yes, it is a time consuming process and thats why they say that programmers gets wiser with age. Learning different type of language helps a lot if you are really serious at programming.


And I have yet another different story. I’ve always enjoyed writing code. I started when I was 13, writing programs in basic as a hobby. Never been a real supergeek but in many years of intermittent experience I wrote some interesting and sometimes pretty complex stuff and experimented with various languages. Now I’m 38. I’ve graduated in computer science at university, so I have some formal background and I work as a developer. And for the first time, more and more often I find myself thinking that this job is not for me.
The reason is that I have to deal every day with tons of incredibly complicated code that is for the most part completely useless. Absolutely trivial features that should be implemented in the matter of hours, end up requiring the effort of whole teams for days and weeks: to write the code, to fix the problems arising from this or that (usually unneeded) framework, to fix the bugs hidden in thousands of lines of boilerplate code. And all this stuff leaves no time at all for the better part of software development- which is, creating cool stuff that goes beyond the (most basic) expectations of the customers, doing more in nicer and better ways.
And the cause of all this lies in a generation of developers that are pedantic as lawyers, driven by fear that anything may go wrong, blindly applying rules they don’t understand and repeating over and over exactly the same catchphrases they’ve read in some blog or software architecture manual, no matter how many times reality proved them wrong. (One of my favourites: “we use this tool/ framework/ library because it’s standard, so any developer knows it” but then complaining that the same tool/f/l “in itself is good, but almost nobody uses it in the right way”).
It took me the last few weeks to implement minimal changes to a web application that provides trivial CRUD functionality on five or six simple entities: an application of six pages in all but with a total of ten thousands lines of code, and bugs everywhere, from the conceptual and domain level to the architecture, implementation and data model: but everything strictly written with dependency injection, assorted patterns, WCF and NHibernate, CQRS, and whatnot.
What? Change company? Useless. The last two or three were the same. The messier and more bloated the application, the bigger the team that’s needed to maintain it, and so the greater the importance of its architects/ team leaders inside the organization. Entire companies are built around applications that are barely able to deliver the minimum of functionality needed to run the business, with big dev teams absorbing disproportionate amounts of resources to keep piling crap over crap, but always following the so called “best practices” everybody is babbling about. And I don’t see this thing coming to an end anywhere soon. There is a principle, that any bureaucratic organization tends to obfuscate its knowledge and to grow in size as much as possible; it seems to apply well to what’s happening the big parts of the software development world.
As a boy (and as an adult as well) I fancied programming as a field where skills and results have the maximum value, and buzzwords and authority principles are worthless. I’m afraid now that this is not the case anymore.


“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.”

Agree. I am surprised nobody mentioned ITIL. I am sure there are a lot jobs related to service management out there and you can start with having only technical background (at least for Incident/Problem Management). I don’t think it is advertised in universities much, so you would have to learn key concepts on your own. However, it is a great path to choose for those who are no longer passionate about programming.


Thank you for writing this article, and helping me confront something I’ve tried to ignore for 15 years.

The thing is, I enjoy programming at home. I enjoy solving logical problems and just generally making things.
But commercial programming is increasingly just about getting this to talk to that and frequently getting bogged down by idiosyncratic behaviour of APIs.

The fault is probably with me, and not the industry, but the result is still the same.


The Marketing field is changing rapidly–if you have the ability to code and an interest in psychology/business you can do amazing things.

I’m not just talking the quantitative marketing, even sales people who can code have amazing advantages over those who can’t (ever generated a list of leads using Scrapy and then dumped it into Salesforce and then auto-generated cold emails customized with data from the targets linkedin or twitter profile so the emails look personal rather than mass emailed using some scripts?) You have a massive leg up if you can do even basic scripting.


One big Problem with the perception of Programming is imho, that the “thought leaders” have nice Jobs, and nice Problems.

We tend to see the shitty aspects of the job as the exception to the rule: real programmers think about “getting things done”, scaling, architecture, testing, teambuilding and all the cool things blogs like “coding horror” and “signal vs noise” are all about, and not about how to survive Meetings in which one has to explain to the non-technical supervisor that it is not our fault that some thirdparty system doesnt even manage to create well-formed xml while lying to our faces about the fact, or that we really would like to get 2 hours of uninterupted work done.

Maybe it’s the “two job markets”-thing, maybe it’s a cultural thing (Essen, Germany is not Silicon Valley), maybe i suck completely and noone good would hire me, maybe it’s just bad luck.

But until now, i never had - or even knew someone who had - a Job that gets more than 4 points in “The Joel’s Test”.

I want to be a programmer, as described in “The Pragmatic Programmer”. I don’t want to be a programmer as described in “Dilbert”.

And getting older i fear being a programmer - safe a few exceptions - is Dilbert.


There is the other side of the coin - student graduates, who suddenly want to be a programmers. Not because of the money or something, but pure passion about programming. And those graduates are not coming from tech-related areas. What is the best advice you could give them?


Good article - I’m 49 and have somewhat the opposite problem, I’ve been a programmer for a number of years, and love it. But now I find myself, for various reasons, unable to do it as much as I would like.

Not sure what it is - career opportunity, burnout, reduced capacity to concentrate, I live in a world in which it’s never been easier or cheaper to practise my profession, and now it’s getting harder and harder to do…


@Excathendra, you actually altered my view on this matter as I was just going to post saying, “you should be where the money is”. Once you feel a burnout from a particular career, it really doesn’t matter what you bring in at that point.

This is why, all audience listening to this, always have a plan B setup so that way you can always bounce back.

Lessons from technology


For me I went to school for programming because I loved technology and computers and when I got into it I found that not only did I have an inherent knack but I really enjoyed it, however, life reared its ugly head and I just don’t have the time to be a proper programmer. What I did instead was go into database administration. I still get to do some coding in sql and scripting languages but it wasn’t something that would consume my life.

This has actually worked well for me because the extra time that I freed up has allowed me to pursue other activities which I really love and these activities prevent me from being burnt out on computers and programming.