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:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2013/04/so-you-dont-want-to-be-a-programmer-after-all.html

I am just finishing up my CompSci degree, and I think this is an unfortunate result of poor teaching of ICT in children.

Here in the UK, until extremely recently, the ICT curriculum was completely focussed on using computers for other jobs, not using computers as a job. I get this - it makes sense, but there was literally no programming done, not even a lesson, all the way up to GCSE. There is a Computing A-level, but the teaching standards are all over the place, and plenty of colleges and sixth-forms don’t offer such a course.

This means that a large proportion of the people on my course had never programmed before starting their degree in CompSci. No wonder people realise it’s not for them or slog along without enthusiasm, producing just passable code.

Fortunately, in the UK the curriculum is changing and schools are going to begin teaching some amount of programming to children. I think this is great (it has other benefits too), but hopefully it lets people try programming and see if it’s (not) for them.

i can program (slightly). i started out in support and moved to a business analyst 11 years ago. i’m now a director. i’ve hired a lot of former developers for BA and QA positions and rarely have i ever been disappointed. having a deep understanding of how something works makes you an invaluable asset, provided you have a good understanding of how to translate that understanding into something a non-programmer can understand. never could i spend my days writing code (although i have a very healthy respect for those who do) and i’m not the only one to feel that way. those who are like me who love technology but not the coding of it can still provide a great amount of value both to programmers who do love it and business people who need it.

jeff, thanks for pointing it out. great post.

Aside from the QA/testing roles, those other careers seem to exist in discrete professional silos that recruiters do not like to breach. Particularly, programmers seem to get pigeonholed into programming, and are not deemed fit to be given a chance at sales/management/business analyst roles unless they already have a professional history working in those roles.

My direct evidence for this may be anecdotal, but I would bet statistically, if you could measure it, you’d find recruiters being nearly completely unresponsive to resumes from programmers into any one of those other roles. We could also ask a couple of recruiters (crowdsourcing!) for their opinion on the matter, and my guess is that they prefer to adhere to the job requirements that they are given by their hiring managers, and not take chances speculating on someone’s career leap. Plus, they play a role in shaping the requirements in job specifications by advising their managers, and if it’s anything but an entry-level role (of which there are none in corporate America anymore, and that’s not just a bitter lament but a pretty solid fact), they’ll suggest requiring the rote 2, 5, etc. years minimum experience in the same role from the applicant.

This is not a problem that programmers or recruiters may think much about, but it is a problem worth solving.

It’s also worth thinking that the complaints of weary soon-to-be ex-programmers may have some observations about the state of the field that are worth taking in. “Stupidly complex stuff”, “fighting against the computer”, “dumb errors”… that all resonates. It’s really difficult to find a role where that stuff doesn’t get in the way of achieving creative results in a fluid manner. Of course, that could also be just a result of using really crude dev tools (and that’s quite common out there). Just because someone else only uses nano to code an entire application doesn’t mean that’s a good way to do it.

Hmmm.

I’m always a bit uncomfortable with the idea of “enjoying coding” too much in the workplace and having passion for it sometimes.

Maybe it’s because the majority of the coding I have done is in hard engineering fields requiring precise results, and the coders I’ve worked with who enjoy it enough to go home and code, are often the ones who go all Architecture astronaut the next day and come up with difficult “clever” solutions to simple problems, or get bored with the (necessarily mundane) task you set them and reinvent the dialog box instead (only BETTER).

I enjoy my job as a software engineer.
It gives me interesting technical challenges fairly often, and a reasonable pay packet.
It’s a million times better than the factory my dad flogged himself for 60-70 hours a week in.
I think I’m fairly good at it.
I can easily envisage myself continuing for another 10-20 years on top of the 10 I have done in the field.
But it’s just a job I leave at work
I would never describe myself as Passionate about coding though, it’s just an interesting/useful skill.

Maybe it’s just a terminology thing. maybe you’d describe what I have as “passion” I dunno.

TL:DR - go back to school and do something you think is awesome/important to you, but not because it’s “cool”

I never officially studied, and happily did the web design/developer show for 8 years. For IT grads without passion, I put them to shame. I was fascinated by all the groovy Flash, and 64k intros, and eventually worked out how to use LAMP. But the shine wore off, I was making sites to sell literal nuts and bolts, and I felt I was not contributing to anything beneficial to the community.

Now I’m doing a Masters of Social Work (I’m attracted to the puzzle understanding and solving, just as I was with programming), and after my first placement in a Youth Drug & Alcohol agency, I’ve seen the shitty software used for documenting client data and am doing a literature review looking at the impact that poor information sharing has on agencies and clients. Hand written notes and data being entered in triplicate into disconnected systems? Yep. Everywhere.

General ‘software’ (word/facebook/android/*nix/gmaps/excel/grand theft auto) is beautiful, software for developers is beautiful. Software used for specific unsexy applications in fields where there is little resources, and ICT is a peripheral concern, is shit house. Being able to understand the problem domain from the coal face and articulate what could be done is powerful. So often software development is top down, managers driving the process and then not using it, and the developers only given a vague idea of the domain problem. That seriously needs to change.

Before and during the first year of my course, I was terribly depressed (the type where you get medicated and refrain from going to hardware shops, because in Australia we have no guns), I felt like I was throwing away years of my life only to start again from zero. Nothing could be further from the truth, but it took a while to realise.

Culturally, maybe we get taught to climb to the top of the mountain, in this case ICT. Go and climb another seemingly unrelated mountain that is of interest, and it’s the valley in between where you’ll find your speciality, your niche, where you speak both languages.

Find a problem, understand it, help unravel it, repair it, advocate for a better way for it to be done in future. Keep your eye out for patterns in the problems, address those systemic problem, advocate for those changes too. That’s pretty much what programmers do? It’s pretty much what social workers do.

I’ll always be a programmer, and I’ll always be looking for patterns, wanting to understand and improve systems. The computer needn’t be the sole environment for these activities.

I think one place where you will have no problem asking career question will actually getting answers is quora

I get really defensive about coding, and having a passion for it. I want to go all Manowar saying “Love Heavy Metal or GTFO”. Except with coding.

The problem, of course, is the Golden Handcuffs as you mention. Don’t even look at other jobs. If you don’t like coding there’s something wrong with you, but thankfully if you’ve worked as a “career programmer” and haven’t been fired then you’ve never really coded before. Most people hire coders as a sort of cannon fodder, or labourers. But they’re not.

Do yourself a favour, and do a Ludum Dare one time, or an ICFP, or something similar. It completely wastes your weekend but at the end you’ll know whether you like this or not. Hint: The answer is yes. Because coding is freaking sweet. And if you disagree after that weekend then something something Vikings!

MEEETALLLLLL!!! \m/

It is an interesting question what motivation you need to be a good programmer. Some of the folks go through their career where they were never challenged to write better code or just try out something new (functional languages for example). They end up in leadership bringing they narrow minded approach with them and guess what, making sure the next generation of engineers are following their steps. This makes is really hard to identify yourself as programmer, if all above is what it means to be one. I have seen companies (specially smaller or medium sized ones) having these tendencies. You can go after better jobs, and if you are lucky you might end up working for a company which does not force you to use a certain environment and you can experiment with new ways of solving problems and pick the one which suits the problem the best. Be realistic, these companies are not common. Ask the question again, what motivation you need to be a good programmer? Motivation to seamlessly integrate with any software development team? Motivation to pursue higher standards? Motivation to solve a problem an elegant way? I am not sure what it means to be a good programmer, the definition is highly dependent on who you ask.

1 Like

I disagree with Notjarvis heavily. I have a passion for programming, currently I am not employed as a programmer. I go to work, do my job, spend a day on the weekend programming. When I was getting paid to program however, I went to work with joy (do that with my current job too). Loved solving the problems and creating the solutions. I left it at work. I go home and I engage in other things. Sometimes that results in a brilliant idea that I write down. Maybe half of the time that made into code, the other half I realised I was being dumb, because my focus was divided with my book/show/game/whatever. Or you go out with friends. Whatever. You can be passionate about your job without being your job. Some people do not understand that until it is too late. I will admit, I have sometimes done submits after hours, but it was rare… and when that happens, that means I dont show the next morning.

Whilst it doesn’t provide an answer to the ‘what next’ question, I’ve always thought Douglas Crockford summed up very well why programming is not for everyone:

[Programmers] like to think we spend most of our time power typing. “Yeah, I’m being productive, I’m writing programs!” But we don’t. We spend most of our time looking into the abyss, saying “My God, what have I done? How am I ever going to make this work?” Once we figure it out, we forget that we did all of that … A normal person, once they’ve looked into the abyss, would say I’m done, this is stupid, I’m going to go do something else. But not us, because there’s something really wrong with us. – http://transcriptvids.com/v/taaEzHI9xyY.html

Gareth: I’m afraid I don’t share your optimism. Getting everyone to understand what coding is during education is important (can you deal with English grammar, can you do long division, then you already got taught the skills you need for basic understanding of coding at school but never realised it is my pitch when trying to tell non-coders that basic code is not some magical tricky thing to at least read) but the figures for the last decade in the UK are not looking good for the future.

We have plenty of people doing degrees: https://academiccomputing.wordpress.com/2012/09/01/computing-a-level-statistics/
15-10 years ago we also had the pre-University teaching to feed that number: https://twitter.com/StuartWilksHeeg/status/314777952321671171/photo/1 (Computing groups the A levels in SoftEng subjects, ICT is the teaching IT for other subjects group).

I don’t think it was because schools stopped paying for IT teaching and the number of computers in schools has radically increased over that time span so that isn’t the issue. Attracting new students seems to be a big weakness (something it would be really nice to help overcome by getting past the STEM issue of inspiring female recruits so we are educating up the best of the best to advance the field) and has been getting much worse, even if Universities have been quite stable (which effectively means only the top Universities can now require CompSci A level understanding from entrants onto courses).

I hope I’m wrong, I hope things are changing for the better in the UK with CompSci education. I’m not optimistic.

I’m extremely happy that you included SysAdmins in the list. I’ve long since pointed out that the best sysadmins all seem to at least understand programming and have some experience in it. Being able to understand the full stack, even if only slightly, is a skill most need.

I have kind of the opposite “problem”. I’ve been programming since I’m 16 ( I’m 23 now ) and I’ve always loved to program. That’s what I do in my spare time, I order books, I LOVE to read other people code and improve mine. But due to my family roots I decided to study law… I graduate this year with almost highest scores possible, and bored as a … no word to describe. Law just isn’t for me, not interested a bit.
So how do you think if you’re passionate about programming and really interested, self-educated is it more important then having degree in it?

I’d think area with a lot of potential for success would be recruitment.

Admittedly many (OK, most) would run a mile, but how many hiring managers would leap at the chance to work with a recruiter who actually had some understanding of the requirement? Beyond keyword database searches, that is. I know I would.

I’ve seen hordes of people who enter some field just because they had education in that field. And they had education in that field because they chose their college based on some random idea/opinion/advice-by-old-folks in their youth.
So there are times when we feel like a misfit and does’t feel happy in our current job. This problem is not only of programmers but lots of people in nearly every field.
My sole advice is: Work for your happiness. If you work for paying your bills, you’ll die paying bills.
I wrote something on the same lines:
http://hoodasaurabh.blogspot.com/2013/01/deciding-factor.html

1 Like
  1. I agree with a previous commenter that Quora may be the ideal forum for this kind of question.

  2. CS programs seem to share little with the programming-real-world. So not enjoying the degree might not be predictive. You should:

  • try doing some totally different variety of programming on the side
  • establish a “minor” in some other field to broaden your options
  1. A couple context-variables that might drive your happiness as a programmer, so maybe try changing those variables:
  • the language you use (if your experience is mainly in 1) (run away from Java!)
  • the types of programs you’ve written (e.g. business-process support, HR, etc.)
  1. Maybe Passion is the wrong metric. http://webseitz.fluxent.com/wiki/SoGoodTheyCantIgnoreYou

  2. Maybe thinking of programming as your “minor” within a different field would make sense. ZedShaw wrote: "Programming as a profession is only moderately interesting. It can be a good job, but you could make about the same money and be happier running a fast food joint. You’re much better off using code as your secret weapon in another profession. People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines."
    http://learnpythonthehardway.org/book/advice.html

2 Likes

If you are a developer and you don’t think it’s the most awesome job in the world, please leave our field because you’re doing it wrong. If you disagree remember that I wake up every day and get to do one of my favorite activities (and happen to get paid for it) and you wake up each day and go to a job. What is the best field to move into? What ever you are most passionate about. Life is not that hard, do what you love, find a way to pay the bills doing it.

Jeff, I am a daily user of TheWorkplace and I see questions like the one you posted all the time. The question was certainly closed for being a “what should I do for a living/go to school for”, not due to it being specific to software development. There are a lot of questions if you just do a search for “software” on TheWorkplace that are not closed that are specific to software developer environment and culture.

Well that first email is from someone who didn’t realize that building enterprise systems means building and maintaining reliable, documented, industrial strength code that needs to work for a decade or more. Compare that to the variety of fun little projects they throw at you when earning an undergraduate degree. Of course there’s no comparison; long enterprise work can be boring, while those uni projects are often varied, challenging and fun.

Add in the obvious contradictions in that email, such as “I enjoy programming itself” but “I don’t enjoy programming as a hobby”, and I think this is just someone who doesn’t really understand themselves, and who had the wrong expectations when entering the workforce. Until they figures out their preferences, they won’t be happy. They’ll just keep moving from job to job, wondering why each one leaves them dissatisfied, and why they can’t choose a career.