April 29, 2013
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.
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?
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:
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.
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?
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 …
- Programming skills and a deep technical background are typically in the hiring requirements.
- There is a documented record of ex-programmers moving into these positions and being successful.
- 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!
Posted by Jeff Atwood
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.
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!
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.
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:
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
3. 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.)
4. Maybe Passion is the wrong metric. http://webseitz.fluxent.com/wiki/SoGoodTheyCantIgnoreYou
5. 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."
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.
Was talking to a friend about this recently. I agree that the ICT curriculum in the United Kingdom is terrible, would probably be better teaching word processing and stuff like that as part of other courses given the cheapness of computers these days that isn't an impossible realisation.
Personally I study Electronic and Electrical Engineering but have many friends over in the comp sci department. Oddly I reckon only 1 in 3 want to program. Some want to do what I do, others want to manage. Fortunately for them Aberdeen in the UK is full of oil businesses desperate for project managers and engineers and through my work experience it is very common to find computer science graduates in both roles. From what I understand they generally get the roles by demonstrating the skills necessary from group software development to apply to projects. So there is plenty of work for the programming hating computer science students out there.
Why not create a separate site along the lines of CareerAdvice for these types of questions?
I say this because the general question is not specific to CompSci... A relative of mine had been in engineering (ME or EE, I think) and decided after 10+ years in the field that it was of no interest to him... he ended up getting a career in a completely different field.
Another relative was quite determined to go into a pharmacy, but ended up going into psychology, for similar reasons (though thankfully the decision was made prior to the X years of experience).
I could just as easily envision people asking for advice with jobs (bad culture, bad boss, bad whatever), with specific career paths (I'm good, but company isn't, should I consider starting my own business... should I get into management.. etc), or with moral dilemmas (execs that need to withhold info regarding upcoming mergers, etc).
The only real concern would be adjusting the SO/SE platform that creates/enforces some level of anonymity, to avoid undesirable name/profile association between sites (SO, LinkedIn, etc)
I code in Vim and the Mouse is no longer practical for me. What prompted this? Well, I'm going to say synesthesia combined with dyslexia. This spells for an interesting result.
Of course like most programmers, I use syntax highlighting. After years of moving away from the mouse I realized that the satisfaction from coding is isolated to sets of hand gestures, where the house introduces what is quite clearly to me a form of code switching, costly cognitively and inhibits Flow.
I think Heidegger's What is Called Thinking? pertains here. -- Many of you are discussing thus entirely off-base with the real material matter here. Some of us find programming to be PHYSICALLY rewarding, and this is the important part: like playing music. When I code, I dance.
THAT is what makes me not want to code as a career. Not one of you is prepared to understand that it is your HAND that fights the Computer, not YOU. To be frank, the latter is overly romantic self-martyrdom if not narcissism. Or I'll just say that it is an unnecessary restatement of The Matrix's premise. Boring.
People are fighting for food or the struggle of life, you are not.
It needs to be understood that a pianist gives two performances while the piano performs nothing.
Pair programming is naturally a kind of solution. But are they talking about the code only, do we appreciate the performances of our peers? Demanding that they not consult reference material and all this aggro-interview styling is like asking a pianist to speak theory.
Again. Two performances and the piano does nothing. My hands don't know shit about concurrency or OO.
Programmers or rather developers of software do use real computer languages while others write scripts, some without knowing they do, because the GUI is able to perform code in whatever language as we call it under water and print the result on whatever piece of hardware is filling up some space in their room, office or even pubs, libraries at the other end of the world or beyond.
I used to develop applications in Cobol, hosting a CoDaSyl hierarchic/network database supported by some geeky assembler routines, procedures. Times changed: Now just about everybody, database administrator "knows" SQL and manipulates relational databases as easy as using a pocket calculator. What's that? The most simple smartphone has one included.
Since I worked as a developer when it was still called programmer, I prefer the real thing going deep inside the operating system cooperating nicely with all applications built-in, downloaded. I love to add more shells and wrappers with bells and whistles so the others have to code less in BASIC, Java, Perl etcetera.
Zephyros MMXI is going to help. It's still a beta though, but great fun.
I love programming, love how great the tools are. I realized this when a teacher complained about how good 'the young kids' who had better tools than he had, this guy was younger than 30! I remember thinking it's great that tools get better and better!
I have stories from other teachers who had to flip switches on a byte to enter a command! I recently finished my education and started my first real job. It's not great, because it's a web site and I don't like working on web stuff. Coupling between system components is poor and I don't like communicating in general. But it't a pure software company (300+ people) and many divisions and oppertunities to work on new products.
I don't know if I'm good enough, but I like working on math stuff. Euler project, Fibonacci algorithm, my own chess computer. So that's what I'd like to do at this company.
Can't imagine not wanting to program, even if it's a web site.
What do you think about web site building tools? It seems to me they have a long way to go.
Also, did someone forget a ? God, I am so frustrated. I hate computers.
Oops, I meant closing i tag.
I love programming. I don't love my job.
At one point, I thought to myself "data is data is data, it doesn't matter what the domain is." Now? Now I realize that more than programming, you have to be passionate about the product.
Oh I enjoy solving the problems. I just can't get excited about the end product. And that affects how I feel about my successes. The minute after pumping my fists victoriously in the air after defeating that one especially pesky issue, just how little I care for the product hits me and makes that victory feel rather hollow.
So that is something else to take into consideration as a programmer. Would you be happier working on something else?
Corporate Counsel (IP or licensing) would be another career path for someone with a C.S. degree and engineering experience. Granted more schooling is involved, but folks that can see the possibilities of applying a technology to partnership situation etc. are rare.
Absolutely, if you love to program, that means way more than having a CS degree. With the experience you have, plus what you have learned from your own reading, you can probably do it better already than most CS grads. Why not try picking up a few jobs on oDesk and see how well you can do?
(Background: Started programming at 10 years, now 30, no CS degree but can code circles around most who have one, working as a volunteer in Africa, do web programming in the evenings -- actually I prefer more hardcore stuff but web dev jobs are just too easy to find, make enough money that me and my wife can live comfortably and go on vacations now and again. I think I'd hate programming if I did it 9-5, but part-time is great, just enough that I never lose my love for the code. And what other profession allows you to travel the world without ever leaving your job behind?)
Here's a funny story. In 1984 I was hired as a programmer. I loved it. I spent way too many hours working at what I loved.
Then they contracted out programming. By 1991, I wasn't even allowed to *have* a compiler. Since then, I've moved into program management, and it pays the bills.
I program in my spare time. I've learned most of the newer languages/frameworks. And I enjoy it. But, I can't do any of that for work.
The most humorous part is, that I know I'm only a mediocre programmer. I've seen cruft and I've seen craft, and for the most part I can tell the difference and why. But elegant code escapes me.
So, although I love programming, and have a real passion for it. I'm not so good at it, and they pay me for my technical expertise and my program management skills.
BTW, I actively dislike program management, but don't let that interfere with my work.
This is sort of a "first world problem," isn't it? In most parts of the world, a job that doesn't involve physical labor and that can provide for a family is highly valued. So you're only an average programmer. So you don't wake up in the morning with a burning desire to go to work. Well, you're still collecting a paycheck, aren't you? Don't let a quest for the ideal blind you to the value of the real.
(Going to try to close the italics tag here)
It seems so to me, and it makes sense, remember Maslow's pyramid?
Also, thank you for closing the italics tag, that was getting out of control.
>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.
And if you go to StackOverflow or some forums for programmers (not to mention many LinkedIn groups), you will see plenty of questions from those kinds of programmers. They obviously don't know the platform, and they don't have the drive or enthusiasm to find out things on their own, to test or try things, or to just play around.
It is very obvious that programming to them is "just a job", and they are not very good at it. They graduated from some university or technical school with a degree in CompSci, got a job at a consulting company and now is tasked with writing business critical code for a customer.
The few times those programmers post their code, it is obvious that they are not very good or experienced.
>This is sort of a "first world problem," isn't it? In most parts
>of the world, a job that doesn't involve physical labor and that
>can provide for a family is highly valued. So you're only an
>average programmer. So you don't wake up in the morning with a
>burning desire to go to work. Well, you're still collecting
>a paycheck, aren't you? Don't let a quest for the ideal blind
>you to the value of the real.
If you are "just an average programmer", you are not giving the customer/employer what they pay for/expect.
As I mention above, I see way too many avergae or below average developers posting questions that a good programmer should not have to ask. But the scary thing is that they often don't even seem to have the problem solving skills or logical thinking that is required by a developer.
Here are a couple of links from an IBM forum that illustrate what I am talking about.
In the last one, the "programmer" does not even grok data types...
Finally this one is truy scary. Read the comments as well, from a couple of well-known Notes/Domino experts (both Rich and Carl are frequent speakers at big conferences Like IBM Connect/Lotusphere):
Here are their comments:
Rich: "To take it further on the frightening scale... I think that in 20 years of Notes development, I've never known anyone who does understand DocumentContext but who doesn't understand basic document operations."
Carl: "Judging by their posts in this forum, they've been doing Notes development for over a year."
>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 absolutely think that being passionate about programming and having the problem solving (and almost OCD) mindset and attention to details you need as a programmer is much more important thatn sitting through four years of CompSci classes in college to get a degree.
Programming and IT in general is one of the few areas where a degree means very little. But many companies do not realize that, they look at the degrees and potential certifications to find out if a candidate is a good hire. This is because they are not competent to identify good vs bad code, or to see if a candidate is a passionate developer.
<< If you are "just an average programmer", you are not giving the customer/employer what they pay for/expect. >>
I guess I could have been clearer. What I meant by "average" is "basically competent." Sort of the Toyota Corolla of programming: reliable, functional, not a prima donna. Providing a serviceable product at a reasonable price. Not everyone gets to drive a Mercedes, that's just how the world is.
By definition, most people are going to be close to average. Now, you may very well be right that many people enter the profession for the wrong reasons, and that the empirically average programmer may well be incompetent. I'm not so sure how to fix that problem. But as a young programmer looking to start a career, it is something of a reassurance ...
I have a couple of theories about the Don't-Want-To-Be-A-Programmer-No-More syndrome.
1. The person never really wanted to be a programmer but heard that they could make good money doing it. My advice - get out now and stop taking up cube-space that could be given to a real programmer.
2. The person becomes overwhelmed by the rate of change and thinks that they are falling too far behind his peers. Unfortunately this may be true in some cases, but before you quit something you truly love, consider putting in more time toward continuous learning.
3. It could also be that the current working environment they are in is not programmer friendly. If programmers are treated like expendable and replaceable units, that may sour the perception of their chosen career. It is important to focus on the intrinsic rewards of programming and try to remember why you fell in love with it.
4. The person may actually be ready to pursue another career path. If it took 10 years working as a programmer to realize they should be a writer, project manager or lion tamer then that may be the right path for them. I believe the analytic skills one acquires as a programmer are definitely transferable. Spread your wings and try something new.
When I wrote my first computer program, I thought it was the coolest thing I had ever experienced at the time. I didn't think about the money I could make or any other extrinsic rewards. I just wanted to do more of it because I enjoyed doing it and I believed computers were going to change the world.
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.
Man.. this kills me, because I have been programming since Basic on my Commodore 128d in the late 80's and have degrees in Computer Science and Internet Technologies... yet I still just don't have the amount of intimate coding knowledge or mathematical skills necessary to go out there and just land a programming job. I also don't have the SDLC or general software development "real world" experience, which they seem to even want for entry-level type positions. I would love a programming/development career, but I just don't feel I can cut it. I try to learn what I can but there just never seems to be enough time to learn all the languages and become familiar with coding practices. As soon as I start to learn something, there's another language that's becoming more popular and desired. I just want to create things and solve problems... guess I will just have to continue enjoying some dabbling here and there as a hobby.. just wish I could swap places with someone who has a good programming job and just doesn't want to be there!
Meh, I'm completely in the other camp. I want to do programming, I want complex and challenging projects and problems. And yet I'm stuck in boring dead-end jobs and can't get out.
First job: Flex/Java developer at an SAP consultency
Second job: AS3 developer at a huge browser game company (despite how it sounds, I do know how to use frameworks/design patterns/unittest)
When I find a company that seems worth working for, I always...
- check Kununu, Glassdoor, etc. for reviews/comments
- take a look at their products/projects and the related documentation
- browser their homepage to check blogs, customer reports, forums, etc
- read up on their Twitter feed and public Facebook page
- watch some of their videos
- custom tailor the cover letter with some of the info I gained from doing the above
And yet I barely manage to even get basic replies from the companies I apply to. :/
I am very defensive coding and have a passion for it. I want to go Manowar not stop saying "Love Heavy Metal or GTFO." Except during programming.
The problem, of course, the golden handcuffs that you mentioned. Do not look for other jobs. If you do not like coding, there's something wrong with you, but, fortunately, if you were a "professional programmer" and that he was not dismissed, then you have not coded before. most people hire a coding as cannon fodder or employees. But they are not.
Do yourself a favor and do not Ludum Dare hour or BIBF or something. This is completely lost my weekend, but in the end, you know you like it or not. Hint: The answer is yes. Since coding damn sweet. And if you do not agree after this weekend, then a pair of Vikings!
PHP Web Development India
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. :-)
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. :-)
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?”
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
Is your follow-up to this going to be titled "So you don't want to be a blogger after all?"
You have a loyal following. Nearly 90 days between posts? Yes, you're busy, and you have a family. We get that.
This blog either lives or it dies. You need to choose, I think. Don't let it turn into another withering speck of the Internet on life support.
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.
@Andrew Hammer that's a very entitled and dismissive position to take. Consider the confluence of events that made your current situation possible. You should be grateful, but blanket statements like "life is not that hard" make it difficult to take your comments seriously. For the vast majority of people life is extremely hard.
@Andrew Hammer: "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."
This is actually very sound advice. It sounds dismissive and maybe that was the emotion that drove this choice of words, but it is very good advice.
Software development is simply too hard to do as a "meal ticket" or as a placeholder occupation.
Competitive issues and the workplace culture of programming are VERY hard on anyone who isn't absolutely delighted to be solving little puzzles and building stuff all day long, learning the next product or tool, etc. You can't fake enthusiasm and the work and the culture of SW development will drive you absolutely nuts when you don't enjoy the activity, the learning, or the people any more.
I got out of SW development a few years ago for just these reasons.
This blog article described my life perfectly. I graduate from College/University back in 2005, and even that was an ordeal with dropping out. After many years of working odd jobs, mainly call-centers, in southern Ontario, I was given the suggestion of using my computer science degree and become a code monkey - at least coding is easier than being yelled at by strangers. Of course after three more years of community college I graduate during a recession.
Now don't get me wrong, I was good at programming, I just didn't enjoy it. And even in a recession where computer jobs were still growing I couldn't find my place. I eventually landed a menial html email template writing job and an internet marketing firm and I couldn't keep it because the repetitive nature of programming drove me insane.
Fortunately I moved into a technical documentation role, that grew into project coordination, and now I am a certified ScrumMaster. I have the unique skill of motivating teams to adopt processes that will improve their productivity. I am now moving into product management, because in addition to coordinating projects, I want to understand the market's needs and build products people want to buy.
At this point I still don't enjoy coding. I code with the team, in addition to do everything from DevOps to Enterprise Architecture. Pair programming makes it much more bearable.
I came across this article because I am trying to move into the start-up environment and I was hoping this article would motivate me to be passionate about coding. Well it didn't do that, but fortunately I feel there are other people like me out there. I have faith I'll be a better coder eventually.
Thanks for the amazing article,
I disagree with the suggestion that burnt-out programmers should become sys admins. While the two careers have some surface similarities, the differences will quickly become apparent.
Yes, people in either career path work with computers, occasionally (or frequently!) write code, and solve problems. That's all to the good.
Programmers are (or should be) encouraged to create things that solve problems. Sys admins, on the other hand, build systems using COTS (Commercial Off The Shelf) software to meet business needs.
I have known programmers who became sys admins. They were miserable, because they invariably became frustrated with the COTS software they were required to work with, and wailed to anyone who would listen that they could write something better, just give them some time and you'll see what they can do! Well, that's not the job of a sys admin. A sys admin should be busy making all their systems hum, not writing tape backup software or EDI software or a content management suite.
If a programmer wants to leave the field, and yet still work with computers, maybe they should become a database admin. DBA's can write small amounts of code, like stored procedures for example, and someone who knows how to write efficient code would probably do well writing efficient SQL.
Passion is hard to qualify and quantify (although we know it when we have it). I'm not even sure that pondering passion, or whether we hate or love what we do to earn our bread and butter....is a good starting point. I think an awful lot of the way we feel about work has much more to do with the workplace and coworkers, management, and the tools we're given to accomplish our tasks. I only say this because transitioning to work as a freelance .NET developer was nothing less than a revelation to me. Gone were tedious meetings, time-wasting chatter, and an endless hamster-wheel of phone calls and emails. I learned - very quickly - that the 80/20 principle applies to my current work milieu in an unexpected way: I can now do what used to take me an entire week...by late on a Monday night. I don't miss out on collaboration: I ask team members for help, clarification, or more information mostly in real time. I certainly don't miss the commute. I earn more, etc. etc. etc.
As a result, my attitude (Passion? Okay, maybe you could call it that) is increasing, my mood is much more positive, I'm able to spend time honing my craft (yes, I think it's a craft), and I am more able to keep up with an explosion of information *about* the craft.
I suspect a new paradigm (jeez, how I hate that word) is needed in the workplace. As an independent contractor, I concentrate on solving problems, whether those problems have to do with the presentation of data, improvement / automation of business processes, or building something that makes the "young folks" "ooh and ahh." If a project doesn't look promising, I can go fishing or tinker with electronics (I'm a ham radio operator), or take a trip...or learn a new language (I'm learning Ruby and Node.js).
Work - and by that, I mean the work *place* - does not have to resemble the movie "Office Space." There has to be a better way - I just happened to get lucky and fine my own "better way."
I have quite the opposite problem. I have been working in one or another of the list-o-non-programming-jobs for a decade and a half. Truth be known, I'd rather write code. I worry that I've been 'on the bench' so long that I won't be able to perform if I were asked to.
I've done build engineering (ClearCase), and yes, it is hard. The problem with that is, once you've gotten it, that's all you'll do because nobody else wants to do it. I've escaped from that a few years ago because all the new projects have leads that want to do some version of "agile," that makes the build guy much less important. Still, I have people coming over to have me explain some ClearCase thing that has them absolutely baffled.
I've done testing. As a matter of fact, I'm doing testing now. I'd rather beat my head against the wall over a DR that has been passed around from developer to developer, most of whom are better than I am, for five years. I actually fixed one of those with a single line of code (turned out to be a memory leak that has gone unnoticed for a long time) and it gave me a huge rush.
I wish I could believe that the industry values good testers like you say they should, but I'm unconvinced. I've been brought up to believe that support people are expendable, and I don't want to be that. But maybe I should write up a resume on that basis and see who bites and possibly prove myself wrong, but I'd much rather be writing code.
I should know CS as I've been there and as far as I know it's mostly a math degree.Programming, algorithms and even some physics are sprinkled here and there, but make no mistake: the main meat of CS is mathematics (and lots of it). Some universities/colleges care, most don't and mostly employ ageing teachers who don't give a rat's arse.It's no wonder a lot of graduates enter and graduate "for the money" only to burn out in a couple of years, because, frankly they never cared about programming in the first place. They were just good at math and wanted a well paying job.
Engineering is an artistic process. I compare it to being a musician or a painter. I think it should be reserved for people who were drawn to it and began practicing as teens or even preteens.
I don't know a great deal about programming, but I seriously doubt it's more demanding than being a monk in terms of how much of your life it consumes. After all being a monk isn't something you do, it's who you are and a 24/7/365 way of life. And yet being a monk still doesn't require passion, indeed historically monasticism has been much more interested in keeping passion on a very short leash. What monasticism requires is commitment, mind, heart, and soul. Commitment is related to passion, of course, since it's hard to stay committed to a demanding job/way of life without enjoying that job/way of life, but commitment has more potential roots than passion, including a lack of good alternatives.
This leads me to guess that being a programmer, while it is a demanding occupation, similarly just requires the commitment to do what it takes to keep doing the work. (Ignoring for the moment all the reasonable questions about what it ought to take to keep doing the work. Some expectations come from the work itself while others are foolishly imposed on the work, but only the former are unchangeable.)
You know what, get some career advice before you decide what university degree to do. You are simply going to go on a whimsical, magical, mystery tour if you sign up for a degree/career you don't know anything about.