Is learning to code really a good job option?
December 8, 2014 11:44 AM   Subscribe

It seems that "computer programmer" is often listed as one of the best jobs in America. There are cram schools popping up promising six figure salaries in 12 weeks. And even a former celebrity has chosen it as a second act. All this because there's apparently a tech talent crunch. But is learning to code the best strategy for a viable career?

At the same time, I hear about how tech companies are the most aggressive at outsourcing and using H1B visas. And that makes sense too because it's easier to arbitrage computer programming, than say, physical therapy. I've also heard about ageism in Silicon Valley and that makes me wonder if coding is any good for a second act. If
they can discriminate based on age, they must not be hurting that badly for labor.

And if so, is there a specific direction to take? Is it the same thing to become a programmer, developer and engineer? I'd love to hear people's thoughts on this matter. Has anyone been hurt by Silicon Valley's outsourcing or ageism and wish they put their efforts somewhere else?
posted by Borborygmus to Work & Money (18 answers total) 37 users marked this as a favorite
I have an endless stream of work as a freelance web developer, simply because I'm "better at computers" than most folks.
posted by humboldt32 at 11:54 AM on December 8, 2014 [1 favorite]

Since a mod removed my earlier post, let me rephrase:

1) Don't believe everything you read on Just don't.
2) I'm a college dropout who has been coding for fifteen years. I'm pretty damn good at it, and I have yet to get a six figure salary. Of course, the jobs I take might be a factor; I really don't like working more than 40 hours a week, and I'm not sufficiently gung-ho about programming for Silicon Valley types.
3) There is no "tech talent crunch". The USA is full of competent, experienced software developers. However, corporations don't want to train them, or pay them a decent salary. They'd rather hire suckers who know just enough to be able to tell a compiler from a Cuisinart after a twelve-week bootcamp spent learning skills they might have picked up on their own in half the time by searching Google for tutorials and hanging out on Stack Overflow.

Coding isn't even good as a first act. It's thankless work, especially if you're a woman. You'd be better off as an electrician, a plumber, or an auto mechanic.
posted by starbreaker at 11:59 AM on December 8, 2014 [10 favorites]

I haven't YET been hurt by ageism, but I suspect that may happen later in my career, possibly in short order. I'm 36, have a BS in Computer Science and an MS in Electrical and Computer Engineering. I have been a professional software engineer since age 21. I didn't hit six figures until I was 29, and that was largely because I moved for my job and whined during my interview about having to sell my house in a down market and moving to an area with a higher cost of living.

I haven't been as affected by outsourcing as I suspect most of our industry is, because I have usually worked for US Government contractors -- often, the work has strict "must be a US Citizen" requirements.
posted by tckma at 12:02 PM on December 8, 2014

You can earn a decent salary with it and most likely you will always have a job. But if you are not passionate or into it, that is all it will be, a job. Agree that there is no reason why the big guns go overseas to hire folks but here is an example where they are paying big money to overseas coders (so it cannot be all for saving money). So yes there is money in coding, a lot of money and most coders I have met are in the six figures.
posted by jellyjam at 12:19 PM on December 8, 2014

So there's no silver bullet or ticket to permanent employment. There is a lot of demand for programmers. Many programming jobs are pretty dull - banks, back-office database work, etc. Sorry bank employees. H1B visas mostly go to a few Indian consulting companies - Google for example hired 16,000-ish people in 2013 and of those a couple thousand were H1B visa holders. And while there's some ageism in parts of the industry, I don't think it's so widespread that older people can't get work in the field. Comparing a back-office IT job in Des Moines to a New Jersey bank job to a Silicon Valley startup is basically meaningless - they're all far more dominated by factors aside from the programming part.

Overall I'd say it's a fine career path as long as you like the work. Do you wnjoy sitting all day writing code and looking at a monitor?

Are these code crunch schools a good investment? For some people they have been but in general I'd say no just because they are no standards or regulation and you won't really know what you're going to get until your money is gone.
posted by GuyZero at 12:23 PM on December 8, 2014 [1 favorite]

You might also want to take a look at the comments on Hacker News regarding this recent Businessweek article. Lots of opinions and experiences there on this topic from others in the industry.

From the programmer's perspective, just based on all of the anecdotes I'm personally aware of, demand is very skill, location, and sector dependent. Ageism appears to be more of an issue on the west than the east coast.
posted by jazzbaby at 12:30 PM on December 8, 2014

You'd be better off as an electrician, a plumber, or an auto mechanic.

This seems incredibly simplistic as it presumes people are all equally suited to each job and that each job can be learned a little at a time on nights and weekends.

At the same time, I hear about how tech companies are the most aggressive at outsourcing and using H1B visas.

Is that still a thing? It was about 10 years ago but I don't think it's depressed the market for talented developers. People who are looking to pay $10/ hour for programmers aren't going to be customers you want or companies you want to work for anyway. I'd hope (but don't know) most companies you want to work for have come to grips with the value proposition of outsourced coders: cheaper work that takes longer and requires more hand-holding on the client's end. While you say "it's easier to arbitrage computer programming", keep in mind that works both ways: coders in third-world countries who are worth hiring aren't dense and can figure out what the market bears.

As for H1B visas, in my (limited) experience companies go to bat for people who are so clearly terrifically talented it's worth the arduous process to help a current employee become a resident.

corporations don't want to train them, or pay them a decent salary. They'd rather hire suckers who know just enough to be able to tell a compiler from a Cuisinart

This is an incredibly uncharitable interpretation. We just had a whole thread about how hard it is to identify good programming talent. Because of that problem the market is uneven and it's possible for terrible coders to make a good living while some good coders get ignored. I don't know the answer to your question. It depends on some innate ability, how much you can dedicate yourself to it and getting lucky with who you know/ run into/ catch the eye of on an open source project.
posted by yerfatma at 12:33 PM on December 8, 2014

The cynical part of me sees the stories of talent shortages as PR for the broadening of H1-B program. I'm certainly doing better than many of my peers, but I'm not really seeing freshly minted boot campers getting six figures.
posted by advicepig at 1:07 PM on December 8, 2014

If you learn to code just to get a job, you're not going to have a really great time doing it for a living. You're likely to get a shit job doing relatively rote work in an uninteresting field. Especially if you're starting later in life. You should learn to code if you like to code, and if you happen to get a job from it, then that's a bonus.

I've recently gotten a job that involves a lot of coding, but I've been doing it off and on since I was a kid in the 80s. I like programming, so the fact that I've gotten a job where I can do it is a bonus. I think if I had spent a bunch of money and time learning how to do it just for this job, i'd be pretty unhappy with it, though.
posted by empath at 1:37 PM on December 8, 2014 [2 favorites]

Oh, and those coding bootcamps are primarily useful if you already know how to program and just need to get up to speed on a particular specialty. You're not going to go from zero to a six figure salary with one of those classes alone. In fact, you'll probably be completely lost if you don't know how to program before you get there, for any bootcamp program that's worth a damn.
posted by empath at 1:40 PM on December 8, 2014 [1 favorite]

As someone who has interviewed and hired a lot of developers, at places where people straight out of college start in the 6 figures, I'd draw a distinction between someone who knows how to "write code" and a software engineer. It's one thing to understand the syntax of a programming language, and to glue together existing libraries, and it's quite another to be able to efficiently solve large and unique problems. I feel like most of these crash courses teach you to do the former, but I'm always hiring for the latter. There is no shortage of people who can throw together a simple Rails or J2EE app, but there is a shortage of people who can build something truly novel in a way that will scale.

I don't particularly care if you know the Java libraries inside and out; anyone can look that stuff up online anyway. I care if you can think through big problems and solve them in the ways we need. I think that can be learned, but it generally takes time. Some people have an innate knack for it, and could maybe pick it up quickly in combination with a crash course, but I think those people are rare. If you think you might have that kind of knack, go for it. Otherwise, I'd coach you to expect it to take some time to get to one of those high paying jobs, if it ever happens at all.
posted by primethyme at 2:05 PM on December 8, 2014 [8 favorites]

I am a coder, and I can unequivocally say that the most important thing to figuring out whether coding is really a good job option is figuring out whether you enjoy coding.

I'd start with seeing if it "takes" as a hobby. Find a project: build a linux machine with a working webserver and start learning the LAMP stack. Write a script to automatically send you an email whenever X happens. Hack a smartphone or build and install a super basic app. You get the idea. If that kind of skill building is something you find rewarding and something you want to build further, then start thinking about if you want to really train for it. I'm not saying you have to LOVE coding (though it helps), but you absolutely need to not HATE coding, esp. if this is mid-career switch.

Ageism exists in this industry outside of Silicon Valley, and I think it's more rampant than people are sometimes willing to recognize. Anecdata: I had an interview at a "cool" place to work and I could see the body language of the interviewers shift when I walked into the room when they realized I was around 40 and not around 25. I know I answered their questions competently and was personable, but did not progress further in the process. Obviously I can't prove it to be ageism, but it was definitely a "oh I see what's going on here" moment, and I did not walk in anticipating any such thing.
posted by mcstayinskool at 2:20 PM on December 8, 2014 [10 favorites]

I took several class in CS while doing a degree in the social sciences. I'm not the best programmer, and would never try to get a job as a developer. That said, having another area of expertise plus some coding ability has been great for me. I tend to work with people who have no coding experience at all. In that context, I find it's easy to impress people with pretty simple tasks.

I tend to use my coding skills to manage and analyze data, in ways that would be hard to do otherwise. For certain tasks, my other options would be (a) to manually manipulate data in, say, excel or a GUI program, (b) research and buy a piece of custom software that does this one thing plus a bunch of stuff I don't need, or (c) hire a programmer. Instead, I can write a fairly simple python or R script to do the task. So, even my limited coding ability makes me more efficient and enables me to do types of analyses that would be impractical otherwise. I also find that it's a nice change of pace from the rest of my work. It's a different way of thinking that, again, I probably wouldn't want to do full-time, but in small doses, it's fun.

A lot of the comments above address whether you should become a software developer. Another question to ask yourself is: would some coding ability help you do your current job (or another job in your field) better, more efficiently, or with more enjoyment?
posted by pompelmo at 4:07 PM on December 8, 2014 [5 favorites]

The media tends to overrate the financial rewards of programming, in part because it seems exotic and mysterious to journalists and in part because journalists make such poor salaries that salaries of programmers seem astronomical in comparison.

The most common programming task is taking data in one format in one place and reformatting it into the necessary format before sending it to another place. That's what a lot of programming jobs entail and employers want to keep the costs of doing that grunt work low.

Now it is useful to know how to program and manipulate data. If you can program in something like "R", you will be very much in demand (for now).

But you have an MBA. You shouldn't be looking at a job as a programmer. You should be looking for a job as someone who can quantitatively back up business decisions with data: which may involve doing programming but is not a "programming job."

And, quite frankly, the highly touted "astronomical" salaries in "programming" turn out to be relatively commonplace in the health care sector even if you just count nurse practitioners and physician assistants.
posted by deanc at 4:32 PM on December 8, 2014 [1 favorite]

Well, H1Bs became much harder to get in the past 10 years, so that's part of the demand. If that changes, the demand will change. Probably not a lot, because software is increasingly necessary for just about anything you want to do, but some.

There's a lot of demand for software engineers. That being said, you have to have a lot more than a bootcamp certificate to command six figures and avoid ageism in the industry. If you are good to very good at it, you can make a lot of money doing it. Most people are not good to very good at it. Most people are pretty terrible at it. What's worse, the companies that hire people that are mediocre to terrible at programming are almost always terrible companies to work for because if they don't know how to hire or care about tech talent, that's probably because they think of it as a "cost center" and a place to dump all the stupid ideas and blame when anything goes wrong.

I personally think this breaks down pretty cleanly. If you find you have a talent at programming, there are few better things to do from a "making money" standpoint. If you do not have a talent at programming and decide to try to force yourself into a career, you'll probably end up burned out, working for a shitty company that will replace you with a younger/cheaper model OR outsource your work at a moment's notice.

Unfortunately, discovering that talent (or the lack thereof) is not an overnight task. And of course I think we need many more varied people in tech and the way we're creating talent right now is a bust. So, learn to code! See how you like it! The worst that can happen is that you spend 5 years making ok but not amazing money...
posted by ch1x0r at 5:01 PM on December 8, 2014 [1 favorite]

Good stuff:
* The money is fairly good
* The lifestyle can be very good. Often people only work 6-7 hours a day instead of the traditional 8.
* Flexibility is great. Need to pick up your kid from school, or work from home to wait for the cable guy, or take a week off to take care of a family member with short notice? Most software companies are great with that kind of stuff. I figure, if you've got a house and kids and stuff going on, then at least one person in a couple needs that kind of job.

Bad stuff:
* The money is not doctor/lawyer/management consultant money by a long shot. A development manager with 15 years experience makes less than a first-year lawyer.
* Layoffs are frequent and very scary. The place I work for just laid off 40 people in the midst of hiring 80 other people. The laid-off people suffer a tremendous stigma and have a lot of trouble getting rehired.
* You really need to stay on top of the latest technologies, which can be a challenge. If your company wants to use C and the job market wants Java, then you've got to spend your spare time learning Java and coming up with some way to demonstrate that you really know it.
* Sometimes really weird hours are necessary due to the global nature of software development. I've had 10pm meetings followed by 8am meetings sometimes for weeks at a time. I can get pretty sleep deprived.
* Tech companies are mostly in distant suburbs, which means a long commute. This is changing though.
* Things are extra hard for women and minorities (obviously).
posted by miyabo at 6:05 PM on December 8, 2014 [3 favorites]

I did one of those cram schools and got a 6 figure job at a company-that-you-have-definitely-heard-of as a software engineer, and recruited one of my classmates to the same company. I'm currently on the interview team for my company and screening people who have gone to big name schools in California with much more credentials than I have.

You do need to learn how to code before you get accepted. The acceptance rate for these programs is less than 5%. You will not graduate with everything that you'd get from a 4 year institution but if you are resourceful and hungry for knowledge it does not need to stop you. I was on the job market for less than a month and I had several offers to choose from, none of them less than 6 figures. I did better than average for my class but the 98%+ hiring rate is not a lie. In comparison, the less successful students took something like 9-12 weeks to find a job. Because the program I did does not charge up front and you only pay if you get a job, they have a very good system in place to make sure that graduates actually do get placed, so that they in turn get their money. That is one of the reasons I chose the program that I did, because the business model wouldn't work if they were just full of hot air.

And for the record, I am a woman, and an older than average one at that. Not only did I not have difficulty finding a job (which is not to say that sexism isn't rampant in the industry, just that I was still able to find many great opportunities in spite of it) but I have also been able to spearhead a few diversity programs both at my school and at my job. I am definitely far happier than I would be working as an electrician or a plumber.

[sidenote to mods and other people wondering if I'm a shill: I've been a MeFite for over 10 years and I'm using a sock puppet account because of Reasons. Contact me if you need me to prove it or talk about why.]
posted by un_zapato at 9:26 PM on December 8, 2014 [7 favorites]

Response by poster: Thanks everyone. All great input, I'm not sure which I'd mark as a best answer!
posted by Borborygmus at 9:19 AM on December 21, 2014

« Older Christmas songs or carols that aren't triumphant...   |   Restaurants between Astor Place and TriBeCa? Newer »
This thread is closed to new comments.