Do you really want to be making this much money when you're 50?

Well, I didn't really want to be doing this when I was 20. I'm in it for the money. As long as there's money in programming, I'll stay for the money, in all likelihood.

What else do you want to be doing when you're 50? Give me a profession remotely close to programming in the following ways:

Little or no required education

Good compensation, even for mediocre performers

Millions of jobs

No physical effort

No health or legal risks

Programming is money for nothing. Programming is very easy to enter and extremely hard to quit. What would you do instead?

I work with three lawyers – two became programmers and one became a PM. I haven't met programmers who became lawyers. I do know an engineer – not a programmer – who became a patent attorney (reported reason: "at some point, you resent your manager being the age of your kids"). Would you like to become a patent attorney when you're 50?

I had a manager who decided he'd rather be a school teacher, thinking that this line of work is more beneficial to society. He quit after 8 months, saying in his parting interview to a mainstream newspaper: "Sometimes I just want to enter the classroom with a machine gun and open fire". He's with Samsung now; he feels that his contribution to smartphone imagers benefits society substantially enough.

One of my roommates at work has been studying a bunch of things for a while now. He's got a degree in psychology and in something called Visual Theater. He's been programming part-time all the while, which is how he financed his studies. He's programming as a part of his visual performances (there's computer music involved). He'll likely be programming to finance his art work. I'm not sure he plans to quit programming at any defined point.

I've seen a lot of people "quitting" to study anything from physics to philosophy, and then going back to programming. The money is addictive. There are many other sources of satisfaction, of course – which is why I run this blog for free – but much of this satisfaction has to do with demand, directly or indirectly, and is thus very much related to money. "Building something useful" and "making money" are close relatives.

You could, of course, become independently wealthy. But you probably won't, and then programming is your plan B. There's also a thing about material wealth – it's easily taken away. I'm from Soviet Russia, so I tend to exaggerate the likelihood of that – but really, property is easily confiscated, and paper money can become paper overnight. It's not just a USSR thing; the US confiscated gold from its citizens at about the same time as the USSR. Professional ability, however, can't be confiscated. The prudent (paranoid?) independently wealthy programmer will thus make some effort to stay in a good shape.

There's the argument that professional programming is stressful. Again – compared to what? A doctor's work? A lawyer's work? Answering calls by irate customers while your responses are recorded for later inspection?

What stress? Programmers who can program at all – as in, print out a binary tree correctly – are very scarce. This scarcity makes it rather hard to push programmers around. You can try to bully them into doing unpaid overtime, but they quickly learn that it's a seller's market, and that you're basically bluffing. You have nobody to replace them with.

With demand outstripping supply, there's enough space in programming for everyone. This makes for a not-so-competitive environment, compared to, say, finance/investment banking type of jobs. Programmers are also typically shielded from customers and senior management – the kind of people who're always right, a trait making communication somewhat tiresome.

Deadlines? Sure, we have them, just like everybody else. Let's admit it though – we tend to miss them, and it's not very stressful to us unless we want it to be. If you're given an impossible schedule, and you do your best, and you miss the deadline, you can suffer deeply or you can maintain mental peace. The fact is that your material well-being is rarely in jeopardy because of a missed deadline, so your reaction is fully up to you.

There's the argument that programmers can't fully understand what's going on, what with all the APIs and layers and stuff. And if you don't understand your own environment, that's stressful and that's not fun. Fair enough; but again – who does understand his environment more than a programmer? A doctor digging into a patient's guts? A lawyer sifting through legal documents? An investor trading financial derivatives? A manager overseeing 10 or 20 programmers? With all the self-inflicted complexity, we're still in a better shape than most.

The fact is that there are relatively few programmers in their fifties around. Does it mean people don't survive in programming though? More likely, it is simply a result of growth. There were few 20 year old programmers 30 years ago – compared to 10 years ago. Therefore, there are fewer 50 year old programmers today than 30 year old programmers. To the extent that the growth in programming slows down, things will be different 20 years down the road.

So I'm not planning to quit programming, not because it's such a great source of joy by itself, but because it looks so good compared to just about anything else. Maybe not the most "passionate" statement – but passion burns out, whereas greed is sustainable. And if you plan to quit programming, I wonder what your alternative is, and I won't be surprised if you come back to programming in a few years.

Just my thoughts exactly.
I tend to think of being a programmer is very similar to be a bumble bee;
you get up in the morning, you fly around in nature,
look for the most beautiful flowers, and when you find them you collect them, take them home, press the flowers, put them between pages in a book, and later,
you can show the flowers to your friends and neighbors.

Hmm… payed hundreds of thousands for a computer science degree… couldn't find any jobs… But I can see why people keep telling me it should be easy to find work! Thanks for the discouragement! I think everyone has actually been suggesting that I'm too dumb to program…

One thing I would add is that one still needs to be choosy where one works.

I've worked at places where the programmers are treated pretty much as galley slaves, because much of the coding is non-creative (i.e. generating new reports by modifying SQL statements from old reports, etc.)

True of most jobs, apart from those with well-established professional school tracks like law and medicine.

"Good compensation, even for mediocre performers"

This is good? Unless I'm a poor performer myself, this only serves to fill the job with mediocre coworkers.

"Millions of jobs"

This is meaningless. I only need about one job at a time. Some of my friends who are most happy with their lives (and wealthy) have jobs that are perfectly unique in the world.

"No physical effort"

This is a huge downside. Programmers are often very unhealthy due to it. It certainly makes the job less satisfying.

"No health or legal risks"

Item #4 is a big health risk, and if you don't think there are any legal risks then you must be new here.

The reasons your friends gave for leaving their other professions are bizarre, too:

"at some point, you resent your manager being the age of your kids"
"Sometimes I just want to enter the classroom with a machine gun and open fire"

These sound like personal problems, not occupational problems. I've known teachers, but none who sounded like this. I've known people who worked for younger managers, but none who sounded like this. You don't think programmers ever have to work for younger managers?

It sounds like you're just in it for the money, and everything else is just a rationalization for that. I'm not going to convince you of anything else, because if you're looking for something in 2012 that pays well "even for mediocre performers", it's pretty much programming or politics. I can only say that some of us are not primarily in it for the money, and I dearly hope that when I'm 50, I still care about my craft more than my paycheck.

Sitting in a comfy place at whatever hours solving puzzles for good money is a pretty sweet deal. Even if I could make it in some other career I'm not sure I'd want to. I'm 47 now, been in the business 20+ years, and I'd gladly give up coworkers and schedules but I doubt I'll ever stop programming.

I'm the opposite. I love programming, but my record of making money at it is horrible. I do have a CS degree… but I could never complete my contract jobs or deal with clients/employers. So I ended up getting a part-time job in retail. It's so freaking easy compared to programming.

I'm still programming, but nothing that needs to meet client demands. Now I'm making mobile games… hopefully I can make some money from that.

The money is very nice and I doubt I'd program professionally if I couldn't make a living but the thing that keeps me in programming is constant available wealth of knowledge. There are so many interesting and applicable things to learn, even after two decades I can learn something new every single day without hardly looking.

For those concerned about competition from programmers in India, I would suggest to stay away from certain languages and technologies. 95% of the programmers in India program only in Java and C#, and use the Windows operating system and related technologies (Exchange, SharePoint, SQL Server).

If you want to make an excellent and comfortable living in the U.S. as a programmer, you need to focus on your career on C++, Perl, Python, Ruby, and operating systems like Linux, Solaris, and FreeBSD, and databases like MySQL and PostgreSQL.

I'm sure sitting on your ass 8-10 hours a day is a health risk. Maybe not as bad as working in a factory breathing in nasty chemicals all day, or dodging falling trees as a lumberjack, but a health risk nonetheless.

> Good compensation, even for mediocre performers
> No health or legal risks

I have a master's degree in Computer Science and Engineering and I've been programming since I was a kid. The last ten years I've been making around $10k a year, because on my first job I got repetitive strain injuries that still haven't healed. Programming made me the poorest person I know, and I have constant health problems. A couple of years ago, I wouldn't even have been able to write this comment.

Programming is not a healthy profession by any measure. It's not just stress eating at you. It's mere fact that you sit all day long that will kill you and significantly shorten your life span.

There have been incredible number of studies all confirming how horrible sitting all day is for you. And what is worse, you can't even make up for it if you do decide to counter balance it with 1 hour of running or cycling afterward. Negative effects of sitting all day are not negated by regular exercise at all.

Programming profession should be though of as something transitory (a thing you can perhaps do 10-20 years) but you should have an exit strategy for your own benefit.

I don't believe the author is in this occupation ONLY for the money. I rather believe that he outgrown the "passion" and "curiousity" factors and now strives to be good / exceptional at what he does, so that the money keeps flowing.

These days it doesn't take a 16 hour working day to keep up with the stuff you need to be better than average developer, unless you work for a very ungrateful b*stard.

So IMO, the message here is: "be good enough or a little better than that, but no more than that". Simply because many employers don't deserve exceptional programmers anyway.

I'm 47, programming for money 28 years, 25 of them fulltime. I endorse your message. Barring a lottery win, I'll do this until I die. I can't imagine what else I'd do that would pay me 6 figures to listen to Pandora all day while I sit at a computer.

If you can code (and amazingly, this includes those with the ability to competently cut-and-paste from Google searches), you should be able to find work. You might have to move, but it's there.

The price for this sweet gig is that you have to be a lifetime learner. I started out on DBASE III, VMS and Tops. Then came the C/assembler days. Then a stint with Visual Basic (possibly the most criminally easy money generator ever), and then it became all about (and still is) full-stack web stuff.

I can imagine a better life, but none of the bands ever worked out :) This will have to do.

Regarding health risks — I'm 45 and try to keep in reasonable shape out of the office. In the office I've changed to a standing desk. Remove the comfy chair from your life! Replace it with Gofit Balance board http://goo.gl/I7tal

Just starting to learn programming having come from the science consulting field. I don't agree with the belief that in 20 years programming will be outsourced to cheaper labor pools. So far the jobs I have (WordPress mostly) are from word of mouth. Are you telling me that your local business manager is going to recommend someone in India to his golf buddies, or a local programmer who he has met with and has a strong relationship with? Use your location to your advantage.

But we give up health by sitting on our asses for decades. We give up integrity by making choices based on paychecks, not principles. You are delusional if you deny the negative health and personal aspects of spending decades sitting in front of a computer screen.

BTW, If you do not know people who have quit programming for other careers, you need to get out more.

Unfortunately I realized the truth in your words after my law school graduation. I run a paper chase in my pajamas while I telecommute every day; but I get to call the shots and spend more time with my family. If I had to run the same paper chase in a suit as a lawyer I would've put a gun in my mouth long ago.

@Lee Yes, your message about outsourcing to India is agreed upon by many. However, I'm pretty sure you don't have much direct experience with Indian software outsourcing. It seems like a great idea on paper, but the quality is (often) total shit. Don't believe everything you hear about how we'll all be outsourced in X years. It's not happening…

The only time I've ever seen a company be successful with large-scale programming projects done overseas is when they're big enough to set up over there and hire directly. I've worked with some fantastic teams in Bangalore and Shanghai, but they were fellow employees at the time, not a job shop. The really good overseas programmers end up at places like this. The mediocre ones do outsourced projects, which usually end up getting thrown out completely within 12 months.

@rb, @km
I don't think anyone was claiming it was an *easy* job. But it beats the hell out of 95% of the alternatives. The "money for nothing" crowd crops up regularly (think the early "portal industry" players), but they eventually get found out, and they go off and do something else. You have to be able to do the work, period. But if you can do the work, it's a great job.

I agree with you. I actually took some time off from college to try and figure out what else I'd rather do for a living besides programming, but no other career options were nearly as enticing. So I'm back :)

In response to some of the comments…

Job security– as long as we have computers, we'll need programmers. As long as the people hiring speak only English and live in the same time zone as you, they'll be hiring people who also speak English and live in your time zone.

If you have a CS degree and cannot find a programming job: Please, please, write a blog about it and post it to Hacker News. I genuinely want to know how that is happening.

@Lee: people have been saying programming would be made a commodity through outsourcing for many years. Outsourcing is hard. I don't have an explanation, really, it just clearly is, from experience; obvious problems are time zone differences, language barriers, and mentality differences, but I don't know what's "the big problem", it's just clear that outsourcing to low-wage countries still didn't eliminate programming elsewhere. Also, one option – not the only option, but a perfectly possible one – is that salaries will rise in low-wage countries more than they'll fall in the developed world as a result of globalization.

@Martin: oh my! I started feeling that I'm getting repetitive strain injury once; I was terrified, changed my typing habits, and it stopped. I think we'd all be better off, as a society, if schools had mandatory typing courses (and phased out writing while they're at it – a horrible way to enter text, that.)

@Ilya Kasnacheev: I don't think they all do. In fact, this is apparently one of my more popular entries on HN. I think my more technical writing is much more worthy of attention, really, because stuff like this bit here is something anyone can write in half an hour, but I guess it's my fault; I'm just worse at making that type of thing entertaining enough.

@Dave Armstrong: let's say money isn't my primary goal; it's probably one of my secondary goals though, isn't it? So the question is, what occupation do you recommend? And, who of your friends switched to which career from programming, and how did it work out?

@rb: you could demonstrate your bravery by signing with your real name and a link to a website where you expose your brilliant thoughts to public criticism. I'm of course leaving your comment to document your bravery and brilliance for posterity.

@Yossi: This posting has been successful, based on amounts and breadth of commentary. I would agree with the rarity comment – I myself am not a genius programmer, but I love and care deeply about the code I write, am social, am constantly ears perked on best practises that actually work…but most of all, I have a PhD in psychology and kick ass with consumer analytics. I am living comfortably…probably due to my rarity.
@Martin: with that amount of experience, I am totally flabbergasted – how can that be possible? Which languages and skillsets do you have on your roster? Skillful people USUALLY do end up having a comfy living in software business, based on what I've seen. Sorry for you :(

@everyone fearing outsourcing: I've worked with outsourcing to Pakistan, India, former Soviet countries…and especially the India threat has seemed void. The overhead from language, cultural differences (oh the love of hierarchy and avoiding true responsibility), time-zone-hassles, skillset hiccups, rising wages…you name it is so large, it makes developing new apps totally braindead idea. HOWEVER, for simple maintenance type tasks for well documented environments, where the job is about impossible to do wrong, outsourcing has seemed financially a good idea in environments I have worked in. But I believe the threat when I see it happening. Thus far, no.

I was once afraid of the "Indian Outsourcing Threat" — my company was sending loads of work there via Tata, and it did look pretty bleak.

Then management saw the results — terrible, repetitive code with early/simple bugs copied hundreds of times. We still have Indian coders, but now we employ them directly (not through TCS/WiPro/Infosys), only hire the very-best/most-passionate ones, and pair them with our most-experienced Western talent. Oh, and we make it fun too!

It's not Indian vs American — it's the people born to code and enjoy it versus people who simply should have chosen something else to do, for everyone's sake.

Thanks, this is a mature and intelligent article. I am approaching my mid 40s and code for over 30 years during which I have been developing some mayor online systems. The coding profession allowed me to freely move continents a few times and live in the 'greatest' cities on earth – although these days I prefer the outdoors.

A few years ago my net-worth became enough to retire on modestly, which effectively resulted in riskier jobs and discontinuing being an employee. Today I telecommute and make more than ever while working fewer hours than ever. No more wasteful office politics, unnecessary meetings or frustrating commute and coding just takes less time – I am simply experienced and know how computers work, even if languages and APIs change over time. Fortunately I am also in outstanding health according to the doc.

However, the passion is gone. Things are different when you are a young kid in an organization and get a kick out of coding circles around the majority of others. But in the long run most of these others are quite well off as well by now. At some point you do ask yourself is this really what you want to fill most of your days with. For me the answer now is: No. But it is the best type of work for my kind and allows me to pursue things I truly care for.

But besides the authors excellent points, coding is very creative when building a system from scratch and often quite fulfilling when taking a large system live. I don't need to take crap from anyone. I don't need to compete on BS to climb the management ladder. I am independent and if it doesn't work out (for example in places sadly occupying some of the vulgar immature fools above) one finds a mutually acceptable exit strategy and moves on. There are plenty of opportunities.

I tried at some point to change my market to NFPs even at significantly reduced pay (made up for by more fulfillment) but the truth is they don't need the level of sophistication I enjoy in coding and my graphic design skills for static content are limited. So passion? The fire of the youth is gone and priorities have changed. Job satisfaction? Reasonable and better than most people I know across the world. Happy? Certainly not unhappy because of coding.

I'm a software dev. My brother is a lawyer. We live in Germany and he is making much more money than I do. Ok, I'm studying again and can't work fulltime, but even his hourly rate is 3 to 4 times my hourly rate.

What is really interesting is he seems to be driven by greed a lot more than I am.

Since I was 14 years old I never wanted to be anything else than a programmer. He easily could have become a programmer with a CS degree too and I think I could have become a lawyer, but I don't like to wear suit and white collar shirts. I usually wear jeans & hoody like a lot of developers do.

We're really glad that we live in Germany and so hadn't to pay hundreds of thousands for university education. If you have to do that, than I would think it would be much better to just learn programming by yourself, because it doesn't make much sense to put that much money into knowledge that changes that rapidly as modern programming environments. You'll learn some crucial things in CS courses at university like algorithms and data structures that won't change but the majority of things you use in day to day programming is changing more rapidly than university can adapt. University often still teaches how to write Java in Germany, when students gets jobs as Ruby, ObjectiveC or JavaScript devs.

@Richard Metzler: I have two problems with being a lawyer: first, I'd probably be bad at it – it's conflicts, very combative, it'd be very stressful for me. (Even computer security is a bit hard for me – I sort of prefer cooperative environments and don't function very well when constantly exposed to outright malicious hostility.) Second, I think lawyers' compensation varies wildly, the market is rather saturated, and you either make it or you totally don't make it; I guess this isn't a problem if you feel you're a natural, or if you aren't particularly risk-averse. What I like about programming is that mediocre performers do well, so for a good performer, there's a lot of distance to go until hitting the bottom, presumably, even once the market gets worse for whatever reason, and then again, it makes for a less competitive environment.

Excellent article. The theme, and especially the quote about passion vs. greed, meshes in an interesting way with a series of posts by another author I like, Cal Newport. He's in the midst of exploring the topic of passion as it relates to the touchy-feely "Follow your passion" career advice of the last few years. He thinks that's awful advice. I'm going to recommend this article to him as additional food for thought. In the meantime, if you want to look over his thoughts on the subject:

All this talk about programming being an unhealthy job should consider biking to work and joining a gym. I go to the gym for lunch 2-3 times a week and have a personal trainer. Also a stand up desk is crucial.

I find that most developers aren't unhealthy because of work but healthy because of what they do after work. Sure. Sit at a desk for 8 hours but go home for another 4-6 hour gaming marathon and your body will suffer.

As for money, I started seriously programming 4 years ago. I was not paid much (started at $40k) and worked some crap jobs but I can't think of another profession where I more than tripled my salary in that amount of time and I still get offers for more money every other week.

@VM: I left during my early teenage years together with my family; I wanted to leave, very much, but I was underage so in that sense it wasn't my decision, so that's the full answer to your question. No, I never regret it; wish you all the best of luck back there.

I'm 42, and I've been programming since 1990. I can't imagine enjoying anything else more. I get paid a ton of money to do stuff that I really, really enjoy doing. Plus I get to say things like 'You know the systems that do {redacted} ? I helped invent those."

Are there health risks? Sure – if you choose not to exercise, choose to eat poorly, and allow your job to stress you out, yes, you can be very unhealthy. But that is in your control. If you eat right, exercise and stay calm, the health risks of the job are exceptionally low.

Legal risks – if you start your own company or such, then yes, there can be. Otherwise, the legal risks are often borne by others.

Can't find a job in programming? Can't make good money at it? I'm sorry. (really!) You're not a bad person, but you are not typical in our industry. Having been employed for 19.75 out of the last 20 years, I have an admitted availability bias. But in my experience, highly competent programmers are never looking for work for very long.

But, I must disagree – programming is very, very hard. For most people. For most people, learning how to program is like learning how to speak chinese while riding the vomit comet and playing Halo at the same time. Most people don't have the affinity.

Those of us that do have the affinity – programming may be complex, and sometimes frustrating, but it's a heck of a lot easier than trying to convince someone why they should be buying the car you want to sell them. Egads!

Most of the things you state don't apply outside israel or other small markets, though. Everyone knows english and it's much easier to import 2, 3 or a dozen people from other countries to replace you. And they'll do it, even if it costs more money and nets them less in return. Because they have endless billions to waste, and managers only become successful in these environments by having as many employees as possible. And it hurts them much more for wages to go up to keep a few talented employees than it does to hire a dozen or even a hundred incompetents. Not to mention it takes a big heart to intentionally hire someone better than yourself – in large environments full of losers there's a great deal of competing by sabotaging the competition.

There's also only so many "real" jobs where you might make use of your algorithms book, compared to an endless amount of GUI and web jobs that any 14 year old could do.

But personally I love it, though I do think it's stressful. Well, it's either too stressful or way too boring depending on how much the continued existence of your company depends on you and how new the company. But the 100th iteration of someone else's code, that's not really programming at all – only if you make it yourself do you really find out all the problems and really have to do the serious work on it.

The right advice is not to follow your passion but to do whatever you can’t not do. Those we call writers are those write impulsively, not those who write for pleasure. In all forms of art it is the same. But this is not limited to the arts, or to anything. Some people can’t help keeping their place tidy. Or can’t stop themselves from tweaking and tuning and diddling their car. Whatever it is, the less like recreation it seems, the more likely they are to say it’s not what they want to be doing – yet it will be what they choose to do whenever given the choice, rather whatever they are passionate about.

Everyone has the things they would like to be doing, and the things they actually choose to do – and the sets are often wildly disjunct. Yet people build their self-identities out of the things they are passionate about rather than out of what they actually do.

I impulsively try to make my computer do things I want it to (which is almost always connected in some form to writing; ways to read it, ways to write it, ways of publishing, etc.). The question is not whether I still want to be doing this when I am 50, the question is what could possibly happen by then that would make me able to stop.

Greed may be sustainable beyond passion, but compulsion and obsession will leave its bones in the desert.

And if you can monetize your compulsion (not all of them are amenable – not everyone is dealt a lucky hand), you will do well.

@Aristotle Pagaltzis: You have a point, I guess. My angle is, I wouldn't have approached computers if it weren't for the money, and much of the stuff I spend time thinking about somewhat compulsively is stuff directly related to work for pay. The amount of "truly" non-work-related programming that I do is rather minimal.

"And if you plan to quit programming, I wonder what your alternative is". You don't have one. You purvey an abstract service which is entirely predicated on the continued functioning of the economy. And since most economies are now sustained only by quantitive easing, that ought to cause the more thoughtful of you to ponder.

@Rich: erm… first of all, I'm not a survivalist. Some things in life I won't survive and I'm fine with it. If your QE comment hints at the presumed upcoming collapse of civilization, then I'm willing to collapse together with it.

That said – there's usually life after a collapse, as the collapse of the USSR shows, among other examples. Life goes on, and work must be done. Some of that work is software, and many programmers did well in a post-collapse Russia. You can call this service "abstract" or "concrete", but there's a service; a program gets written and it does something. Of course if there are no computers after the presumed collapse and no work for computers, sure, the service would become rather "abstract". But typically, once a certain technology becomes widespread, economic turmoil doesn't make it go away.

Also, everything in life is "predicated on the continued functioning" of something. Hunting and gathering is predicated on the continued ability to hunt and gather, an assumption which breaks when Europeans conquer your land. Life is tough that way.

Jim Strathmeyer and others:
While programming is making a computer do what you want it to, making money from it requires convincing 'someone' to hire you. Often that 'someone' takes arbitrary qualities (ex. first impressions, appearance, how you shake their hand etc.) into account more than actual skills. Sometimes they even have no idea about actual programming.
Another problem is that many jobs are filled via 'word of mouth' and recommendations rather than advertised in the local newspaper. This makes it more difficult in our industry for anyone not lucky enough to 'have contacts' or be pulled straight from college.

Unless you have tried jobs and 'failed' you shouldn't consider yourself 'too dumb' as the skill-sets for programming and 'breaking into the job market' are somewhat orthogonal.

On the Uplink forums (space.com, while they still had forums…), we once got to talking about the types of people who worked at NASA (the US gov. agency). Largely whether the folks there were actually there out of a love of 'everything space', or for the money.

While NASA is certainly the kind of place millions of American kids dream of being (and have for decades), there's some reason to think a lot of folks there are just in it for the money. Many of the engineers there earn ~75k to 80k US dollars annually… Which is above average for engineers. And well above the average wage in that country… But slightly below the typical wage for aerospace engineers with the same experience. (Those same people can go to one of NASA's subcontractors, Boeing/Lockheed, for a few thousand more a year. And then go back to NASA for less money again).
…There's always the cynical possibility that people who really just want a good paying job and don't care about Humanity's Future In Space ™ could be displacing people who've wanted to be there since childhood.

One of the NASA guys on that thread said that maybe 1/4 to 1/3 of the people he knew there worked there for the money. Vast majority were there out of passion for the field.

That strikes me as a good job to have.
(As an aside, reading that partially restored my faith in humanity. Even ignoring the fact I'm a hopeless romantic with a picture of an asteroid for a desktop background) (As a further aside, wow am I rambling…)

@Ob.: so if I'm doing embedded stuff (OS-free), is it a good hedging against platform changes?.. Anyway, I had quite some platform knowledge which is now worthless – for example, I did Windows CE development a decade ago.

You're from Russia? Hmm, that's kind of sexy. Your Enlgish is better than perfect! I guess you've been in the States for a long time, huh? Btw, that one quote in your article that reads ""Sometimes I just want to enter the classroom with a machine gun and open fire". …You might want to re-word that a little if you know what I mean. Happy holidays!

Erm… I've never been to the US, and my English isn't that good (which I don't find particularly embarrassing, under the assumption that if it makes English-speaking folk to cringe, it's sort of a karmic punishment for all the conquests of the past that earned the English language its widespread use.)

Hello all. I am a 40 year old attorney, practicing for the last 13 years. I never wanted to be an attorney, but with a family at the age of 22 it seemed like the best thing to do at the time. Ironically, I have always disliked writing, reading and public speaking, lol. I am an analytical, math and problem solving type person.

Well, I am now looking into getting a Computer Science degree. I am burned out with the law and I think I could enjoy CS/Programming work. Is there advantage in the market place for a CS/lawyer (other than patents)? Any other thoughts would be greatly appreciated. And yes, I would need to make 100k fairly soon after completion of degree. Thank you in advance.

I think the nice thing about a CS degree is that you'll know if you like it during the first semester or two; a basic introductory course to programming will often be enough (unless it has a reputation of being done badly, in which case you might not want to jump to conclusions too quickly).

Lawyer/CS other than patents – I wouldn't know; there are a bunch of contexts where legal knowledge could be valuable but all the lawyers I know who work in programming or somewhere near it stay away from anything that to me looks like law-related work.

I think $100K/year is a reasonable amount to make in any large high-tech company if you're in the US but I'm not, so again I'm hardly a source of practical advice. Generally as a programmer you can get "valuable" rather quickly in the sense that replacing you is very painful and then you're in a good bargaining position.

A lot of what's happening in programming is "dirtier" than, say, math – human whims are heavily involved and that can be very frustrating if you have a strictly analytic approach where you take a clearly defined problem and you find a correct solution. This unfortunately is not something you can see in a CS degree where they give you rather clearly defined assignments and you deal with neither users nor vendors nor teammates or managers. I'm fine with it – I've evolved in my approach to this stuff but my starting point is that I like to please and it's not hard for me to take human desires into account even if they seem nonsensical on several grounds. But I know people who're extremely burnt out because of these things.

In this sense I think programming is perhaps not that different from law – there's a lot of communication going on with all the upsides and downsides you'd inspect. To me, the one big difference between law and programming would be that programming is much less adversarial or not adversarial at all much of the time. Program source or a tutorial are written in order to help a fellow programmer; legal prose is written to prevent mischief by adversary, to put in very simplified terms. This is why I suffer when reading legal texts despite generally enjoying reading (I have some experience with, well, patents.)

I guess programming is also more like math than law but it's very far from pure math; I'd say that switching to programming is a safe bet if you want to get to a less adversarial context but not a safe bet if you want to get into a more "sound" realm with more "absolute truths". In fact I work with a gal who was a lawyer and who likes her problems "sound" and she has a lot of frustrations from the "dirt" that the human factor brings into her work. She's a great programmer and I think she likes programming better than law, but it's an example of what I mean by "not necessarily safe bet".

I guess I'm somewhere on the border between programming and computer engineering (I deal a lot with chip design and accelerator design), and I'd say that it's still rather far from "sound", though generally lower-level work (as in drivers or VLSI) is somewhat closer to "soundness" then higher-level work (as in web apps or UI), simply because less people have any idea what you're really doing and more people are terribly afraid that the thing will not work for mysterious reasons and they leave you alone as long as you supply working stuff and prevent their nightmares from materializing. The ex-lawyer I mentioned specializes in lower-level stuff, BTW; the upshot is that it's better but "it's still far from math".

My guess would be that "soundness" has trouble surviving contact with "The Real World" and would be most easily attainable in academic research; though I've never done any of that and wouldn't be surprised if someone who has would have a different view of the matter. Personally, I think that my work on computer architecture has been my biggest success and a very large part of why it worked out was relationships with people – convincing people to work on the stuff, "selling" the ideas internally, writing documentation and tutorials that make the stuff accessible to users, etc.; I made some technical contributions myself but I never was the strongest programmer working on the stuff and of course I never was the one with the deepest understanding of hardware (I have no formal training in electrical engineering) – what I was really good at, and what was especially important at the beginning, is talking to everyone and figuring out what they want, explaining it to others, "bargaining" over details, etc.

Another cool thing about programming is that it is rarely, if ever, just programming. It is also other things: making games, sending robots to Mars, making cars safer to drive, building networks… the list is endless. And if you get bored with making games, you can always try your hand at sending robots to Mars. But you'll still be programming.

You could take an online Python course in Coursera. I'm not sure it's the best out there but it's decent reportedly. If you feel a wish to complete the exercises – as in, "damn, I wonder why this doesn't work?! c'mon!", and if you eventually manage to do it (some might be harder than others but everyone's different but you must be able to eventually succeed, right?), then I'd say it's a pretty good predictor.

It's not as hard as it can sound since if it's really not for you then you'll see that you hate it and bail early, and if it's for you in fact then it's not a waste of time to finish the thing…

Interesting article. I was trying to find a suitable profession for me and I believe I'm moving to the right direction. In school I studied biology, chemistry, maths and won first places in maths nationally. I tried to do biochemistry but I did not really like lab work and thus quit that stuff.

I am on my gap year now and I'm doing an intensive study on programming and I find it very difficult(maybe due to the fact that I learn non-stop like 12 hours a day). I completed edx.org course by MIT and quite liked it. However, many people claim that you have to find what you love and I don't know whether programming may be a good career for me. I like puzzles, learning in general, I was the only stranger in my class who did read encyclopedias because it was fun. However, I have a really bad trait: I lack persistence and get angry when problem does not budge. That irritates me and I want to throw away everything. I think that's just bad trait I developed over time…

I, as an INTP(if you believe in Meyers-Brigss), did extensive reseach on what is suitable for me and found that problem solving, thinking is suitable for me. Which includes programming, maths, all sciences. Also I'm aspiring to start my own company which may be ambitious for introvert but I believe I'm capable of overcoming my lack of ability to communicate.

As I think now, I can eliminate physics because I like it just for 'extra reading', chemistry( because I loathe the idea of working with that chemicals ). The problem is which burns me a lot: all blogs I read, all successful programmer's traits I researched, seems like the guy started young, like 8 year-old, programmed with Commodor 64, created his first big project when 15 and so on…I was not like that. When I was a child, I used to play games, deconstruct computer and put it back, and read loads of books on variety of topics. Which made me well-rounded…but general knowledge never pays in this world and thus I don't know whether I am capable of handling CS course in one of the top unis in the UK. Now, I learned fundamentals of java and started reading Android books to create some nice stuff: maybe twitter app.

Sorry for long and messy block of text but I would like to hear opinion of every programmer whether it's possible to succeed for me…

I never programmed until age 17 (I don't count Logo and Pascal that I was "taught" in school); I haven't started my own company or anything, but I'm doing fine, and there's plenty of people like me.

It sounds like you could do well as a programmer; as to picking what you love – I didn't, worked out well. People who loved computing as children actually suffer in the industry sometimes because a lot of the stuff is not lovable and when you expect everything which is part of your job to be extremely enjoyable than reality is much more frustrating than it is when approached with more balanced expectations. I guess persistence is a good trait, though so is "impatience/laziness" since the latter leads you to look for shortcuts that you can often find if you care to look for them; anyway, if you studied for 12 hours systematically, that sounds like more than enough persistence…

If you don't see something more intriguing and/or better paying than programming right now than I think it makes a lot of sense to choose programming (in particular, nothing prevents you from switching to something else and programming is a great thing to switch from, since you can often work part-time for a long time to finance the switching efforts such as learning or low-paying entry-level jobs in the new career that you choose.)

@Eduardo, that's a crock. How many guys do you think there are in the world than can write a world class physics simulation? How many guys can design and implement a new, cryptographically sound hash algorithm?

The rarity in computer science is in specialization, which probably has broader possibilities than even the medical field when you consider cross-industry domain knowledge. With things like advanced robotics, 3D printing, ubiquitous drones and basically all future scientific breakthroughs being utterly reliant on software, I only see that growing, not shrinking.

Code monkeys will always be code monkeys — but that doesn't diminish growth and innovation at higher levels. In fact, if anything, demand for those kind of people in support and maintenance roles can only increase as a direct result of innovation done by specialists.

Great and encouraging post. I'm already over 50, have been in linguistics, which I get along with but don't really enjoy it, except it's good money, but have been dabbling with code for decades. I first learned IITRAN in the 70s (anybody know what that was? sort of like Fortran but different, as I recall), now wish I'd continued in it – I was offered a job as a systems analyst by IBM back then but for some reason didn't pursue it. Now I'm thinking of getting back into it and your post gives me some impetus!

Linguistics? Interesting! (I don't know a whole lot of people who studied linguistics, but those whom I know sort of look at it as a vocation rather than a thing you do for money; the closest occupation to the latter that I know of being simultaneous translation.)

Its all about how you enjoy your profession. I am from India and stands very much closer to outsourcing. My boss is a foreigner, and he has an Indian team of programmers. What Tim Jones said got relevance, but its a fact that the quality delivered in India is increasing day by day. And the very same day where Indian quality meets quality abroad (and for 1/10 of the wages abroad) , everyone will start outsourcing to India. And according to the current trend in India, everyone after completing college is trying for a programmer job (in all langauges like java,php so and so) . So I think after 10 years, programmers will be have less demand globally.

Well, maybe; I did hear it 15 years ago already. I think it's really hard to outsource programming, and then another possible outcome is that programmers' wages in India will rise instead of wages elsewhere dropping. I think the gap is often already much less than 10x.

Also I'd expect India to have plenty of its own tech companies instead of mainly providing outsourcing services in such a scenario. Software is all design and zero manufacturing, so why not run your own companies if you're good at it? It's not like a manufacturing industry where it makes sense for design to happen at country X and for manufacturing to happen at country Y, these being two things requiring different skills, regulated by different laws, etc.

Well, that's perfectly possible, but then I'd expect wages to rise in these firms to attract the best talent. The US currently rules the industry and you can get employed there and elsewhere on reasonably nice terms; it's not clear that would change if India or anyone else became the leader. It's in particular not necessarily relevant what the level of wages in the average population is; I think wages would rise to poach the best people anyway, up to the point where it's not economical to raise them anymore. (In particular, currently rising programmer wages in India simply means that they get more productive so higher wages are now economical so firms have to pay them – otherwise would would it happen despite there being more programmers, right? At least a commenter above claimed wages were rising there – I'm not following these things myself.)

What would unquestionably mean trouble for programmers is falling demand for software – then wages would drop because firms wouldn't be able to make a profit with higher wages. As long as demand remains as insatiable as it appears to be now, more programmers might simply mean more well-paid programmers, as things more or less were up until now.

My $.02; I don't claim to understand the economics of software very deeply.

Yossi: the word around our country is that the job market is tough for older engineers. Since I see you are now a manager: do you find yourself or your colleagues hiring many 40something or 50something engineers?

In a heartbeat. From my end, the job market is rather tough for employers – most candidates don't know shit, and an employer can't really afford to discriminate based on any criterion if they want to get a reasonable programmer.

Some people will indeed want to discriminate against more experienced candidates though – where "more experienced" can be 28 years old – because they think they don't offer a compelling job for someone experienced and other reasons along those lines. I think it's crazy to not be able to find uses for a good candidate, but there are such attitudes.

But I don't know. I mean the market could change at any moment. If someone knows of a better way to make money and they can do it then fine; all I was saying was, "really wanting to do this" considered in isolation from the simple question of how one pays one's bills is not how I recommend to look at it.

1. By itself it's not a problem; I had a manager who quit to become a teacher and then went back to programming, and he was good at it all along. Particulars depends on the cover letter explaining why get back into programming and the CV itself.

2. I have nothing to do with Mobileye's website, what job openings are listed or how they are described. One thing which is largely true for Mobileye and which I think is good is that you usually get to senior positions by starting at the bottom; Mobileye relatively rarely hires someone to a senior position, regardless of their age – though experienced people often move faster into senior positions, and they're sometimes hired with the intent of being promoted if everything works out well. (The observation is my own and does not reflect company policy, nor is backed up by stats.)

Mobileye relatively rarely hires someone to a senior position, regardless of their age – though experienced people often move faster into senior positions, and they're sometimes hired with the intent of being promoted if everything works out well.

I think that is consistent with what is done by most local companies like Checkpoint, NDS etc.

Unfortunately you reach a point in your career (long before age 50) when (after being fired or laid off) you can't just "start over again" in a junior position at a new company (ie. even if you are willing to, the young manager won't want to hire you into his young inexperienced team). At that point you are really screwed.

Whereas in the US, companies will generally create a specific number of senior positions and hire experienced people to fill them.

Well, a lot of people, myself included, are in fact willing to hire experienced people into a non-management position; and an experienced person doesn't necessarily have to move into management to get better compensation once hired, either.

Well, a lot of people, myself included, are in fact willing to hire experienced people into a non-management position

The fact that you are a fair and decent guy doesn't help engineers who are 40ish and have their applications tossed into the trash by Mobileye HR ("didn't they see that all the jobs listed said 1-3 yrs of experience?")

The people on here claiming regular exercise cannot counteract sitting all day and the ones who can't find work with a BSCS are amusing.

I'm sure both of these groups are trolls and they're performing quite well at it. I'm just not crossing over the bridge. There is sufficient evidence routine exercise increasing your life span and statistics backing up claims that computer science is a hot field.

I was so inspired by this article and everybody's comments. I'm a 30 year old lawyer from Greece who desperately wants to change her path! I completed a Harvard edX course (CS50), which was in C, and am looking to learn some other programming languages. Ideally, I'd like to learn how to program and design games. But I'm a little hesitant to make such a big change in my 30s. On the other hand, I've always been good in puzzle solving, maths etc. and never in anything regarding law! Any advice? Should I go for it? On which languages should I focus to begin with? Thanks everyone!

I work with a gal who made the switch from law to programming at around your age; she got a BA in CS which is a good standard path. How to get education otherwise I don't know in the sense that there's the question of what employers expect and value, but of the standard stuff, I think it's important to take an introductory programming course with abstract data types, recursion, etc.; data structures; theory of computation; algorithms; and basic math – calculus, linear algebra, discrete math, and probability theory (the math can be skipped but knowing it opens more options). Languages – Python is good to get shit done quickly; C is good for speed and stuff like drivers/embedded systems; C++ is horrible but is very widespread and perhaps unavoidable in many kinds of games; JavaScript is what the web uses; and then you'd want any language depending on immediate needs. In terms of nice-to-learn first language, I think Python and Java are good options.

I'm hardly an expert on programming education so take it with several grains of salt :)

Thank you so much, Yossi! Your answer has been really helpful. I was thinking of Python as well. I also think that C is a good language that could provide someone with the basics and introduce him into the frame of mind of programming. Oftentimes, I say to myself 'what are you getting into'; all my friend think I'm crazy, but I want to try it! We'll see how it goes! Does your friend work as a programmer? It's encouraging to know that someone made it in her 30s!

1. Management – they're almost always needing a bail-out of the stupid decisions they made. Guess who's on the hook? The paper-pushing manager? No, the programmer.

2. Crap Code – "we don't have time to do it right" so we nickle and dime ourselves (with more time & effort) after the paper tiger is released *appearing* like we did the job. Then, you get to spend a lot of days trying to make future requirements work without breaking what's already working and basically slopping spaghetti code around. And, in some shops you get the honor of having your name on it via source code control. Oh, the joy of getting up in the morning for this.

3. Crap is King – per #2, it's true. Sloppy developers abound and the good ones have to live with it, either cleaning it up, integrating with it, or worse: living under their orders b/c they're a better a** kisser than others and politicked themselves into such a position over the more competent.

4. Value-added – vendor recurring revenue strategies have programmers busy, at least in the enterprises, with upgrades, migrations, etc. that really add no bottom-line value to what the software was doing. It's the vendor benefiting. Of course, if you wait too long you may have a dearth of available skills in a given version or technology, but that's usually many years vs. the mad rush vs. what's being done in most shops. And, managers come-and-go, so they need to leave their fingerprint on something for the next rodeo they're off to.

Therefore, if you have no real need for autonomy to make higher-level decisions than just a binary tree (for example, like given in the article), programming MIGHT be for you.

I find few human beings who can be a machine doing mindless tasks that much of the programming world is.

If businesses re-org'd the management-over-hands-on developers (and there is a way to do it) it'd work better for everyone (except the managers, truthfully, many are liabilities and overhead more than net gain productive)

Solid, reliable coders that work from home for medium-to-large companies building and maintaining business applications are the new "lawyers" or "professors" of today.

It used to be that lawyers worked in oak-paneled offices, sipped martinis at lunch, and earned decent upper-middle-class salaries for an easy day's work. Now the law and architecture professions have become overly-competitive with suppressed salaries and outrageous educational debts.

It used to be that university professors worked easy hours and earned good money and held their jobs for life. Now they must scramble for funding amidst layoffs just to keep a weak salary that barely seems to cover the loans from their 10 years of education.

But if you can earn $75K to $100K with full benefits and work from home in your pajamas doing programming, you're really earning more like $125K to $150K because of the lack of commuting costs and the flexibility in housing location. You can raise a family. You can work in a peaceful environment. You learn new things regularly.

It sure beats the alternatives. Sitting in "cubicle hell" all day? Sitting in meetings all day trying to sound important and take credit for things you don't understand? Sitting in rush hour traffic? Listening to idiots drone in the office? Sitting in crowded airports? Pressing palms on the convention room floor?

Being a programmer is like being a writer…but with more brains and a higher salary.

It gets boring after years of doing it…but it sure beats most of the alternatives.