140 comments

[ 3.1 ms ] story [ 179 ms ] thread
It's an inspiring article, but I wish it highlighted some realities with code schools. There is something to be said about the cost, time commitment, and passion needed to succeed.

People who go from 20k to 100k are the exception, not the rule.

This article sounds inspiring when taken at face value, but it also strikes fear into my heart. This sounds eerily familiar to the dot-com bubble, and I can't help thinking that churning out zero-to-hero software engineers, web developers, and data scientists at this rate is a recipe for disaster.

Sure, there's a huge need right now, but we can't be too complacent -- thinking that it's impossible to saturate the market again, can we?

Hopefully this doesn't end poorly.

Millions more lines of instantly legacy code written by inexperienced programmers? Thank the gods we'll all be employed for decades! Decades I tell you! ;p
My reaction was more along the lines of "I'd hate to be the person who has to clean all that up)."
Mine was more along the lines of, "I'm going to make so much money cleaning that shit up."
You're going to need a lot of booze or drugs or to cap the time you do that. It can get real frustrating real fast despite the gigantic checks.
Definitely gets frustrating, but I've done plenty of "cleanup" contract work. Usually someone (business person) without technical knowledge hired the cheapest outsourcing they can find. Money has been sunk, and often there is 80 to 90% of a finished project, but the original contractor doesn't have enough experience to get it that last mile.

It's frustrating work, but it's also gravy train. When I get that call they are desperate and coming in on referral where someone has said, "I know a guy that's a finisher, but he's really going to cost you."

You're assuming these startups will be around for long enough for it to matter.
As long as these rookies aren't writing nuclear reactor firmware, who cares? Most of programming is mundane. Have them make CRUD apps while we experts work on something interesting ;)
> Have the[se rookies] make CRUD apps while we experts work on something interesting

The reality is the opposite: the smooth-talking aptitudeless "rookies" with a years experience 7 times get themselves onto teams designing "interesting" stuff from scratch, then the programming experts are put on the team to clean up the many bugs for years to come.

This happens way more often than it should.
Often times, only the smartest people can reverse engineer and maintain vast amounts of poorly written code.

When code is terrible, it is very difficult to reason about. Hence, you need to be very smart to reason about it, and be successful in modifying it.

That's not really a fair comparison: the "rookies" (somehow, I doubt that always applies) are working in an environment where they often don't know the requirements and the only way to find them out is through trial and error, and the fact that the organization can even afford "programming experts" means they must have been somewhat successful. Put a programming expert in a situation where the boss doesn't know what he wants and the only way to find out is to build it 20 times and he'll produce a pile of crud too.
> Have them make CRUD apps while we experts work on something interesting

Slightly more complex CRUD apps? ;)

one easy trick: code reviews.
Here is some salary data for the two metro areas mentioned in the story for "Software Developers, Applications" from the Bureau of Labor Statistics reported for May 2014 [1].

  Denver-Aurora-Broomfield, CO
  10%ile  25%ile  median  75%ile  90%ile
  64470	  80110	  100140  122350  146930

  New York-White Plains-Wayne, NY-NJ Metropolitan Division
  10%ile  25%ile  median  75%ile  90%ile
  66100   83010	  106710  135600  164390
The woman hired by Galvanize achieved a 25th %ile salary for Denver on her first day. Seems hard to believe that someone with so little training could be more productive than 25% of developers of software applications in Denver.

I think it's at least a little suspicious that the single data point that demonstrates the success of Galvanize is paid directly by Galvanize. How about any other student?

The math guy did an undergraduate degree in mathematics!, so he is hardly a characteristic example of waiters in New York who generally shouldn't expect to achieve a median salary for the industry on their first day.

[1] http://data.bls.gov/oes/search.jsp?data_tool=OES

I find it extremely believable that someone with ambition and drive could do better than many developers who are coasting off a CS degree.
This and tech stacks change so often that someone with 3-6 months of javascript exp could be more effective than 2-5 years with java.
Salary is not a monotonic mapping of developer productivity. Besides, given the general increase of salaries across the board and the poor raise-negotiating skills of coders in general, it isn't hard to imagine the 25% of salaries under hers were mostly of an older un-altered vintage for underperforming programmers.
I'm just curious, why is there a perception that coders are poor raise-negotiators in general?
Probably a lot, also there is a tendency to switch jobs if an employer won't raise.
Just going off my own admittedly limited personal experience combined with the observations of many around me - but we tend to have very limited ability and information to articulate our business value within our own organizations. It's easier to look at the messages in our LinkedIn inbox and see how switching jobs can give us a bigger and better raise than engaging in a socially-awkward conversation about our own worth. But just empirically, I see many coders far more brilliant and hard working than I am languish at low salaries because they actually stick around a company for several years and merely take small raises proposed by management at levels calculated only to avoid insult.

For most programmers I've met it is a "calling" in a certain sense - many of us would be doing these things for fun anyway, you are only really paying us for the 20% of the time that we are really engaged in true drudgery and "Charlie work". I share a sentiment with several other programmer friends that we still can't quite believe we are paid (and paid well) to create things and play with computers all day.

That math degree is incredibly important in terms of his actual knowledge and perceived value.
My gut tells me it's not exactly a challenge to outcompete the bottom 25% of anything. In my experience, breaking into a new career at all is the hardest part. Once you're in, it's not like you are automatically stuck at the bottom of the food chain.
(comment deleted)
Denver developer here. I've participated in the hiring process at several orgs, and I think that with a combination of basic-level skills and a good handle on salary negotiation this is entirely doable. I'm continually shocked at the skill level of people that apply - we don't even do Fizz-buzz level of interview questions, and we constantly have people unable to solve the whiteboard questions. Anyone with aptitude can get in.

I can't speak for other areas, but it's amazingly hard to find someone who can code that isn't already gainfully employed.

(I too hate whiteboard questions, and we are working on eliminating that from our onsite interview)

How easy is it to find a decent job with good mentorship and pay without a cs degree? I'm currently a non-traditional student studying computer science, and while I'm enjoying the program, I enjoy work more. Also the education is incredibly costly if I include $80k a year in lost income. I also have family in the Denver area.

I have a decent enough resume where I know I would be able to get interviews, and definitely enough experience to pass Fizz-buzz level interviews. But I also know I need improvement in several areas before I think I'm a competent developer. So fit is very important to me. I don't want to last six or seven months at a job and then end up looking for a new one without a cs degree. So on my end it looks like internships are a better fit right now.

It's hard to say. We've hired people where I work currently with little experience outside of college. Not at $80k of course. I would say that with a little bit of AngularJS and some backend (C#/Java) you could get $60k-$80k anywhere in town.

There are tons of recruiters in the area and companies are always looking for quick learners with some demonstrated talent. We aren't currently hiring, but I could put you in contact with our company recruiter if you are interested.

(EDIT: removed contact email after reply from _userThrowaway)

I don't doubt Galvanize's success in producing talent above the 25th percentile. I used to work in Denver, and while there are some great folk there, there also are a lot of mediocre folk just cruising through the large corporations. 25th percentile is a low standard to beat. I also used to work for Jim Deters, who founded Galvanize. It was long, long ago, but based on that experience, I do not doubt his success at building a good organization with good results. Even when we were all young and flawed, he still had put together a pretty great team to work with.
Sounds eerily similar to the 2000s bust when English majors were being vacuumed up for web development. Maintenance will be fun, I'm sure.
As someone that's done a fair bit of hiring for engineer and data scientist positions, my outlook on these 'coding academies' is pretty grim.

If you want someone that can hack together a web app in rails/node.js/django/framework of your choice then that's fine. But the reality is most people going through these code academies tend to get a really poor foundation in both writing "good" and "fast" code. There's very little focus on algorithmic fundamentals.

But really, it's the academies that claim to spew out data scientists that I have a problem with. Every candidate I've interviewed that came from one of these knew how to run a regression, use R, and fit a variety of classifiers (eg; random forest, feed-forward ANN). But not one of them could answer really basic questions about sampling and experimental design (one of them asked: "multiple comparisons..? What's that?").

I've found that people that come in completely self-taught oddly enough don't have these issues. Many of them really do focus on the fundamentals first. It's easier to teach someone that understands experimental design and probability theory how to fit a few models in R than to teach probability theory to a kid that knows how to copy and paste from stackoverflow.

While the demand is real, I am just not sure it will last with the level of skills being pumped out of these bootcamps. I recently interviewed a few candidates from a coding bootcamp mentioned in the article and while they can write basic rails code, they all lacked problem solving skills. Most candidates were hung up on basic performance related questions.
Even "experienced" developers who haven't had formal computer science training can run into performance problems. At my last job, our application was running slower and slower as we added clients. None of the Ruby devs could figure it out, the code was "fine", all of the tests passed and ran quickly (with a stubbed 10 item customer table), and everything ran great until we grew beyond a hundred or so customers so it fell on me to optimize the database which was clearly the problem. I finally took a look at the code and found the problem -- it was a loop within a loop within a loop doing a full scan across the entire customer table disguised by the two inner loops being inside separate Gems. The application had O(n^3) performance. None of the developers knew what that meant so I gave a "lunch-and-learn" presentation on big-O notation and what it means for performance.
I've seen this happen with experienced developer with a CS degree. They say, it's "not my job" to test with large data. B.S., it is your job so sit down, shut up and do it. The job of QA isn't to find all your bugs, it's to ensure you don't have any.
Long ago, I was asked to fix a bug about a user interface hanging when too many items were added. After poking around, I discovered that there was an algorithm, whose run time was an exponential function of the number of items, that was taking several minutes to run (after which the UI would be responsive again). The punch line was that this algorithm was actually computing a value that was never used by the rest of the code, so I just deleted it. That was in C++ code written by an experienced developer.
I don't begrudge anyone getting into this field. I just hope that salaries don't drop because management thinks a waiter can do what I do.

Note: I'm not trying to disparage waiters. I'm just saying we all have our skill sets. I could never be a surgeon or a welder or a lawyer or a race car driver, for examples. My skills are problem solving and development.

Somehow I have a hard time believing that if you have a math major, the only difference between you waiting tables and living on the brink of poverty or making bank as a software engineer is a 3 months Ruby course (I have a double math/CS major); I feel like there may be something more going on here. I'm happy for the gentleman's success, but it seems like a poor example to use in any case.
Shouldn't a math degree already have at least a little programming? Matlab? Python? Something?
Should? Maybe. But plenty of math graduates have little to no programming experience, even from top schools.
Interesting. I did not know that. So do math majors do any numerical analysis?
Probably some mathlab, but it really depends on the course/ university.

For example in Europe many courses focus on pure theory.

I don't have trouble believing that a short course to learn to use tools that put his previously-acquired math knowledge to good use drastically increases his productivity.
Once everyone is a programmer, then what?
Once everyone can read and write, then what?

We live in a computer age. Knowing how to program is no longer a "specialized skill", it's mandatory (on some level) to effectively interact with ever more complex systems that run our lives.

Yeah, no. Those things are not the same thing. Try again.
Mandatory in what sense? Most people get by without having to code anything more complex than an Excel formula.
In my opinion "programming" should be generalized to "instructing the computer to do a series of tasks", or "applying the output of one system into the next system". I don't think that's overgeneralizing.
Let's not redefine words. What you're suggesting "programming" be generalized to already has a definition, "Computer Literacy".
"Most people" cannot code an Excel formula.
Thanks for providing my reflexive comeback...Programming, to me, is as expressive and essential as reading and writing, and those who think all the coding problems/jobs are going to end when everyone learns programming...I just don't understand what they perceive to be the scope of programming.

I think people are too hung up on how programming seems to be newly ushered in by technology, despite its theoretical origins more than a century ago (very conservatively speaking). Well, writing and reading existed long before Gutenberg...but before he made mass media possible, it would have been very reasonable to argue that writing and reading were not essential to being productive members of society.

Right, but there is a difference between everyone needing to learn to read and write in order to communicate by written word, sign documents etc. and everyone needing to learn to write sufficiently good to write a novel. As I see it, it's the same with computers and coding. Everyone should be able to operate a computer (or smartphone, tablet, whatever) and do tasks efficiently on it, but not everyone should be required to learn the intricacies of their computer in order to program it. Some people aren't interested in that, and that's completely fine, just as some people aren't interested in learning to write a novel.

I personally don't agree with the sentiment that 'coding is the new literacy'. Yes, it's the digital age and all that, and coding can help you solve some specific problems, but for 99% of the problems that 99% non-programmers encounter, someone has already written a piece of software that will solve it way better than they could have done themselves. When people learned how to read and write, they were suddenly able to communicate by letters, take notes, read books, etc., and a whole new world opened for them. As for computers, well, that new world opened when people learned how to operate a computer and use it for various tasks, not when they learned to code. I see a much narrower use out of coding literacy for the average person who doesn't care much about programming or computers in general.

Thanks for the well-reasoned opinion. I do think that "learning to direct a computer to do a task" is something that people should know how to do. I'm not talking Java/Python/whatever, I'm talking more about cookbook-style recipes to "get data from here, transform it, and apply it over here".
Waiters will be in short supply so their salaries will go up and some of us will be changing careers.
So everybody's a "programmer". Afraid of a little competish?
I guess I should start a consulting company to clean up the messes these people are going to make :)
We made a conscious decision to try and hire someone from these camps as an experiment. I went to their demo day and winnowed the graduating class of 40 down to 6. Of the 6 we interviewed we decided to give 6 month internships to 3 of them, 2 developer and 1 qa. Despite being hourly with minimal benefits, they were making the yearly equivalent of 50k a year which I found more than reasonable given the fact they had no coding experience other than 12 weeks of study.

On the first day, the woman who was QA quit because she wanted to do development, despite being explicitly hired as a QA.

2 months later I had to let one of the developers go because she produced very little and was surfing YouTube for much of the day.

The last developer I did not opt to hire at the end of his internship. He was a smart guy, but he needed years more experience to operate at the level of our other engineers and he was demanding a 75k salary.

I used the 75k he wanted and hired a competent developer with a CS degree and a couple years experience. He is orders of magnitude better than the boot camp guy was.

It is possible that a boot camp graduate could be useful after several years' experience, but fresh out of school they are extremely raw and need years of training. Therefore I won't be hiring any fresh graduates again.

> He was a smart guy, but he needed years more experience to operate at the level of our other engineers and he was demanding a 75k salary.

Two questions: Are you in San Francisco, and which bootcamp was this?

Yeah these are vitally important questions. The curriculums and the level rigor of the different bootcamps varies widely.

Some have a very high bar for entry and are basically just a way for someone who could quickly become competent (i.e. someone with a deep math or some type of engineering background) to ramp up on coding.

Others just let anyone in and teach very basic things so the graduates level would vary widely as well.

I'm in Boston, the salaries here are high but not SF levels. I'd rather not say which boot camp to preserve relationships and not malign their organization. They were very helpful, I just simply think hiring straight from boot camps doesn't work for my method of managing software development organizations.
What area are you in? 75k in NY or SF for an inexperienced developer seems high.
Just sharing my experience here: I've been hiring in SF and found some boot camp grads, usually stronger but still far from mid-career, with expectations around 90-115k. Most of these folks got hired (some of them to us/away from us with offers all in that range).

These were folks who were months to years away from hitting the ground running, and the value of the offer was entirely on their future potential. I found great difficulty finding a mid-career developer for the 130-150k range that it started making an "investment hire" feel like a viable alternative.

Just curious, how do you define "hitting the ground running"
Roughly, someone who at the start can work independently on an existing business-critical[1], medium-sized[2] app to first fix bugs without adding major tech debt[3] and then take features from planning to deployment/maintenance, and then ultimately (6-12 months, since we were a very small shop), independently steer architecture and be solo on call.

[1] hundreds of thousands in sales a day [2] around 10-50k LOC, but a far cry from the greenfield toy apps that bootcamp devs spend 90% of their time with [3] position: relative and z-index: 100 fixes many UI bugs, but if a dev has that as a main piece of their toolkit, you take on UI code debt or drag down the team to steer solutions in the right direction.

That certainly sounds like a more senior role.

My take on bootcamp grads (I am one), is that the purpose is to make them a competitive or superior option to a fresh CS grad. How does that expectation compare to your experience?

Yeah "hit the ground running" was decidedly not the standard for bootcamp grads. This was our more senior unicorn hire. Like any shop though we did have simpler more isolated work that was still needing doing, so we pared those off for grads.
> I've been hiring in SF and found some boot camp grads, usually stronger but still far from mid-career, with expectations around 90-115k. Most of these folks got hired (some of them to us/away from us with offers all in that range).

When the current cycle ends, the funding dries up and companies start running out of money, more folks will recognize this as the insanity it is.

Do you honestly think the demand for software engineers will go down in the next 10-20 years?
Do you honestly think the demand for "software engineers" with little to no practical experience and modest training at $90,000 to $115,000/year, seen almost exclusively in a few overheated markets, will be sustained?

Companies like Google and Facebook, large, profitable enterprises that can cherry-pick the best college graduates from the best schools and invest in long-term development, are one thing. But unprofitable, angel and venture-backed startups that are pressured to grow (and that includes headcount) are another thing.

A lot of the salary froth at the entry-level end of the market is being driven by the latter, not the former. This has nothing to do with the long-term demand for skilled, experienced software engineers.

While this particular solution may be a failure, it is a reflection of the demand, which I don't see changing direction anytime soon. This is an attempt to cache in on the fact that competent engineers cannot be found at this price, which only drives the point home. If these experiments fail, it will only drive he price higher.
> I found great difficulty finding a mid-career developer for the 130-150k range that it started making an "investment hire" feel like a viable alternative.

Wow, are talented developer really that hard to find? (Especially, considering you're offering 130-150k.)

Are you insistent on a developer being "mid-career" (I interpret that as having "years of experience") -- or would you accept a highly talented who has just begun career (e.g. a recent CS grad)?

Yes, it is really hard to find talented developers. I am a developer who interviews developer candidates at my company, and we only end up giving an offer to maybe one in five candidates. Our standards are fairly high but not ridiculously so. We are desperate for developers, but not to the point where we want to hire someone who we feel like would be dragging us down.
Instead of hiring a developer that would drag you down, did you consider offering more money? When people say there's a shortage of developers, or that they find it really hard to find developers, my guess is that they have to add "at the salary I'm offering" to the end of the statement.

I was car shopping a few months ago, and I found there's a dire shortage of brand new $10K BMWs.

Is $150k for a strong full-stack midcareer developer really like trying to get a $10k BMW? What compensation range would you shoot for?

We're shopping in that compensation range and my experience has been exactly like cairo140's above: https://news.ycombinator.com/item?id=9964934

Keep going up until the candidate pool improves? Just a personal anecdote: Even though I loved writing software, I moved up and away from development (after 12+ years) mostly because of the salary ceiling we all inevitably eventually hit. But I keep my skills sharp and would always go back for the right price. $150K would definitely not be the right price, at least not in the Bay Area. My guess is there are tons of guys like this out there.
Thanks for the willingness to discuss actual numbers. Using the BLS stats tool that falsestprophet linked below [1] I dug up some numbers. This is for the the "Software Developers, Applications" occupation:

    Area                               median      75%ile      90%ile
    Chicago, IL Metropolitan           $88,630     $109,640    $126,370
    Los Angeles, CA Metropolitan       $102,310    $126,340    $150,320
    San Francisco, CA Metropolitan     $112,570    $143,390    $174,120
    San Jose-Sunnyvale-Santa Clara CA  $137,710    $166,280    >$187,000

I'm from the midwest so my frame of reference is where $150k will get you well into in the 90s percentile-wise. I'm conducting my hunt in the LA area. And just so we're on the same page I included Bay Area numbers. Is $180-200k (on the 190 to 200 side) closer to the right number, with the Bay Area as a frame of reference?

[1] http://data.bls.gov/oes/search.jsp?data_tool=OES

Ahh, midwest changes the equation for sure. Maybe try disclosing a salary _range_ in the description? Without knowing the details of the job, it's hard to tell if there's something in the description driving interest away. If it's exactly like cairo140's job, it may be simply too much for a single person. Here's what he/she was asking for, and I'll take a stab at breaking it down into the fewest mere-mortal-sized job reqs that I can:

Role 1: top to bottom web app security, server ops, zero downtime rollouts, performance and architecture (shared)

Role 2: metrics/instrumentation, fully-independent backend, HTML/CSS/JS skills, integrating third-party modules, performance and architecture (shared)

Role 3: managing technical vendor relationships, work the indirectly technical parts, technical hiring, capacity planning, expectations management, performance and architecture (shared)

These are still three pretty loaded-up people! Even if there was one person capable of and willing to do this all, their current job title is likely "founder of their own startup".

> Even if there was one person capable of and willing to do this all, their current job title is likely "founder of their own startup".

I'm doing a decent chunk of that, aware of the parts I'm doing shitty, and that is my job title. :)

I was talking recruiting with a mentor. He said some of his best hires were founders he met at startup events looking to regroup and earn a paycheck after the failure of their own startup. Dark—but insightful.

Probably solid advice. Best of luck to you :)
Also, my guess would be that the median numbers reported by BLS include many people who have had the same job for 5-10 years and are being paid 2005-level salaries and not 2015 levels. In an upward-trending market, averages/medians over the entire employment base will under-estimate the current market rate.
I've seen those numbers as well, as part of a regional roundup on US News Best Jobs.

One very interesting realization I had looking through the data is that software development, at the median, isn't an especially well paid field. Dental Hygenists in SF earn almost as much at the median, and registered nurses earn much more.

Overall, I think a big part of why this "shortage" exists is that the work is very difficult for the pay, and that career stability and age related employment issues may actually be considerably worse.

I know this is hard for employers to accept, but salaries may have to rise dramatically before people with citizenship or residency status that allows for career choice are willing to commit to software development. For now, I really do think one reason we are able to staff these positions at "market rate" is that we have created a visa program that essentially prevents a large number of tech workers from changing fields (i.e.., there are serious obstacles to coming to the US on an H1B as a software developer and deciding to retrain as a dental hygienist, this kind of personal and professional freedom is not permitted under this visa).

Yes, it is. You can't just say "I should be able to get x for y". You are in dreamland, pure and simple.
Help me out of dreamland. I've got some money. I want good help, but I'm a dev and this is my first time hiring. What compensation range would you expect for the type of developer in cairo140's description?

I'm in the midwest for reference, but hiring remotely in the bay area is legit too.

As someone else replied, cairo140 needs to break his job description into 4 separate job reqs. My guess is that he or she will probably not find a single person capable of or willing to wear all of those hats simultaneously, for any salary. The job description is totally unreasonable.
Try 250k and see the responses.
Cool, thank you for the concrete number.
When people say there's a shortage of developers, or that they find it really hard to find developers, my guess is that they have to add "at the salary I'm offering" to the end of the statement.

Or they have a hiring process and that weeds out top performers. And/or they have a hiring funnel that appeals to the bottom of the barrel.

I'd agree if they were talking bout "top" developers. But, not everyone needs top developers. Lots of people are simply saying We can't find developers, period, which is baffling, until you find out what they're offering in terms of comp.
Tomato, tomahto. He said "talented" developers and he also said they make offers to 1 in 5 candidates. Based on that, it sounds like they have a steady pool of candidates, so by definition they can find "developers." They reject 80% of them for some reason. Either their hiring process weeds out good candidates, their funnel isn't attracting the right kinds of devs to begin with, or there's an X factor, like they're located in an expensive city with the highest concentration of software companies on the planet (ie: lots of competition for anyone who can even spell fizzbuzz).

Or all three, which was my experience with about a dozen different companies in SF last October. I chose to take the job where I wasn't humiliated during the interview.

> I chose to take the job where I wasn't humiliated during the interview.

It's funny how this is a legitimate filter, from the job-seeker's point of view. And, by "funny" I mean "a sad testament to SV tech interviews".

Seriously. Virtually all people complaining about hiring are way off base on compensation. If they were to increase (sometimes they literally need to double) comp, they'd see things get a lot easier.
I felt similarly incredulous when we first started searching. I'll add some details for color.

Our hiring needs didn't feel too crazy to me. We were a multi-million dollar a year e-commerce shop, I was the first in-house technical hire, and we wanted to expand the team for personnel redundancy.

Ideally, we wanted someone who would be capable of running a business-critical website. On the technical side, I was hoping for a full stack of skills (top to bottom web app security, server ops, managing technical vendor relationships and integrating third-party modules, zero downtime rollouts, performance and architecture, metrics/instrumentation, and fully-independent backend and HTML/CSS/JS skills to build a secure and pixel-perfect feature beginning to end). Plus, we wanted an early technical hire to be able to work the indirectly technical parts, including technical hiring, capacity planning, and expectations management.

None of this felt to me like we were asking for something crazy unreasonable, but you don't learn a good enough coverage of this to independently steer a ship of this scale until a few years on the job. You can learn bits and pieces on the fly with the documentation around, but it's both risky and slow. Given the hiring climate, it was a risk we ending up being comfortable taking, but it fell short of what would be ideal.

In response to some remarks about adjusting our expectations (remote work, higher salary), our particular situation was not doable for remote---there was zero 100% remote staff among 30+ FTEs and none of our workflow was set up for it---although I wish I had influenced the organization of work in more formative stages of the company to optimize more for remote given the personnel advantages. Regarding salary, it's very hard to increase salary past $150k+ because I found it very hard to publicize it in a way that meaningfully increased the quality of candidates we found entering our funnel. I wish there were a job site for "will pay very well above market for strong candidates".

Just out of curiosity, What's your hiring process look like?

We were a multi-million dollar a year e-commerce shop

top to bottom web app security, server ops, managing technical vendor relationships and integrating third-party modules, zero downtime rollouts, performance and architecture, metrics/instrumentation, and fully-independent backend and HTML/CSS/JS skills to build a secure and pixel-perfect feature beginning to end

Even at a lower end startup not making multimillion dollars, you've just described 4-6 engineer's worth of talents for 1.5x of a single developer's salary. I look at that list and think I'm never going to get a decent night's sleep while in your employ.

We gave candidates an option of a take-home screen (build a web app that consumes our single-endpoint JSON/XML API and renders content) or a live coding exercise (implement a least-recently-used key value cache to store 100 entries). Folks who could basically code did a 3/4 day onsite that included a code review of their interview project or an applied exercise if they did the live coding. Offer out within 24 hours after the onsite. Any recommendations to improve that process would be much appreciated.

Thanks for the feedback about the 4-6 engineer's worth of talents. It's good to know, and we realized a similar thing and pared down the JD to be less oppressive-sounding.

Sleep and balance was important to the team (I personally averaged around 35-45 hours a week, working one weekend and being called in maybe a half dozen times over a year and a half; the system mostly runs itself), but we didn't find a good way to surface it in the description. Any suggestions on this is appreciated too. I struggled in that when we removed or played down aspects of the job, or emphasized work-life balance, we just got more folks who were seriously green in some parts (front-end devs who can pull together jQuery but have never deployed their own code or had to write backwards-compatible apps).

That's a decent interview process, provided the focus of the code review and the coding exercise is collaborative in nature. When I interviewed at IFTTT, they did their live coding exercise especially well. I never felt like I was being given an arbitrary pop quiz. It was a series of actual problems you might face on the job (a bunch of string replacement scenarios, if I remember correctly). The environment was more akin to pair programming with a remote co-worker than an interview. Instead of strictly evaluating and overlooking, my interviewer worked through the problem with me and even wrote part of the code. I didn't make it past that first live coding exercise, either. They wanted someone with deep JS knowledge and mine didn't go deep enough. They were honest and respectful, even when delivering a rejection. If I ever decided to move back to SF, I wouldn't hesitate to interview with them again.

Sleep and balance was important to the team ... but we didn't find a good way to surface it in the description.

That's a tough one. Any company you ask will say they're great on work/life balance. What else are they going to say? 'No, we're going to work you 80 hours a week every week. If we ever hit crunch mode, say goodbye to your weekends!' The only thing I can think of is to show them that everybody goes home at 5pm by having the 3/4 day onsite start later in the day and end at the same time everybody goes home. It also gives the added benefit of allowing the interviewee to interact with everybody as a group.

front-end devs who can pull together jQuery but have never deployed their own code

For what it's worth, that's pretty standard in web development. I've deployed code through beanstalk or jenkins, but devops sets that up. I've also deployed side projects to my own servers, but that's a whole different ball of wax compared to deploying to a corporate data center with load balancers. I wouldn't trust a frontend jquery guy to set up those kinds of deploy environments. It's a completely different discipline and field.

If they are that expensive and you are having that kind of trouble...maybe try remote hires?

$100k for a remote hire mid-career developer shouldn't be hard to find.

Some companies just aren't set up to handle remote developers. Based on my experience, it takes a certain mindset and tooling to make remote development work.

I don't know about the GP's situation, however.

Yeah, it was just a suggestion.

Remote work at 6 figures is still worth it and widens the pool alot.

75k in NY for an inexperienced developer isn't all that high.

My first full time tech gig was for 37.5k at a shady-as-hell direct marketing company. HTML and CSS, a very little bit of javascript for form validation that I learned at my desk. They let me go about eight months in (thank god).

I failed a phone interview with NYT because I didn't know edge side includes.

I was devastated. Prepared to move back in with my dad with hat in hand, the literal prodigal son.

I passed a phone interview a week later with an ad company. After a three hour on-site interview, they offered me a job on the spot as a front-end developer - at 70k/year.

This was in '07.

I would definitely say that I qualified as inexperienced. I knew enough CSS to take just about any design and slice it into something that worked, and I knew enough HTML to lay it out. I knew a smattering of JS, but the language frustrated me. I had probably about a sophomore level understanding of computer science. I was an academic failure and community college dropout. They took a huge gamble on me. (edit: since this is getting a couple upvotes, PSA: I was undiagnosed/treated ADHD until I was nearly 30. If you think you might have it, talk to a professional. I thought I was strong enough to cope without help, and I was wrong)

I came out of that job knowing ASP.net, some C#, and a lot more Javascript.

But 75k for an inexperienced developer in NYC? Not that high at all. I was probably making only a little more than half of what the other developers on the team were. But damn it felt good to have a career.

I was actually going to say that $75k for a competent developer with two years of experience seemed low, especially if you're in NYC or SF. You can swing that in Dallas with a finance/accounting degree and 2 years of work experience if you're competent and have good work experience. Just my perspective, I am not a developer.
75 is not high in NY and SF for entry level. Probably low for even average candidates.
(comment deleted)
Another personal anecdote here- I'm self taught so maybe I'm biased. I worked on a side project years ago with a guy who was a proud Stanford alum. He did some kind of data sciencey stuff for his day job, but his ui code in this project was simply horrible. Like 2000 loc jquery spaghetti in a single file.

I've also worked with a team of recent bootcamp grads who were highly paid and wrote great ui code quickly. They wouldn't necessarily be up on all the newest tech, but if you told them to use something, they would go home, learn it, and implement it pretty well the next day.

Could the bootcamp ui coders do the Stanford guy's data science? Not a chance. But I know who's ui I would want to maintain.

Does this mean that all Stanford grads are writing spaghetti coasting off an Ivy League degree? Does it mean that all bootcamp grads are technically naive craftsmen? No. Assess coders on their code.

Stanford isn't an Ivy. ;)
People seem very offended by this fact. Stanford isn't an Ivy League school.

Wikipedia: The eight institutions are Brown University, Columbia University, Cornell University, Dartmouth College, Harvard University, the University of Pennsylvania, Princeton University, and Yale University.

they shouldn't care: ivy league is just a sports association
I had a similar experience with an Ivy CS grad with most of his prior work being writing code for financial services companies. Smart guy, easy to work with but tremendously messy code that often failed to take advantage of the language's standard library or the framework's utilities in favor of writing everything himself and not necessarily abstracting functionality out to classes or modules to be re-used.
I actually went through a similar track to what the people you were trying to hire did. I graduated with a minor in CS and a major in Aerospace Engineering. I got screwed on the "Systems Engineering" job I got straight out of school. So after a while started learn to code on my own for a few months then I started applying for jobs. I was actually offered multiple jobs as QA, but I ended up taking the first one that offered me a dev job for around 50k. This was because I knew I wanted to program, and not to be QA.

I was lucky. I ended up working at a CRUD factory, where they were using .NET Webforms to create the same thing 100 times in a row. I learned a ton in the 2 years I worked there, enough to realize they were doing things in a way I just didn't like. They produced slow code quickly, which is what they were paid to do.

Those two years worked for me to fill in some of the gap I have from not majoring in CS. Now I think I fall in the better than average .NET developer, but I also didn't expect 75k right away. Anyway, I didn't go the route of a code camp, but I did have a CS minor.

One note is that many people I worked with had CS degrees and were unmotivated to learn new coding techniques (patterns or even methods within the same language). I'd say they were bad programmers, but they weren't they were just happy with turning the same thing out over and over again. They were smart, good, wrote bug lite code, and it deployed well. They just didn't care to innovate. They were SOLID work horses, and I have nothing against that. It just isn't the environment I like to be in.

After 3 years of experience I feel that I can now drop in just about anywhere and be productive, but I definitely couldn't back when I started.

Funny thing, the 2 best novice programmers at that place were self taught, one a CS minor and another completely self taught through a PHP side project. These two are still my go to guys for coming up with complex solutions.

Anecdotal: Currently managing two code camp interns and I'm impressed with the amount they cover in a meager 3 months but they're junior level developers for sure. Without some previous experience in software, its hard to believe most are worthy of mid-shelf salaries.

There's certainly a huge skill gap between the code campers vs anyone we've hired with previous experience. Just the day to day tacit skills ticket management, git work flows, variance in tech stacks, client feedback, interfacing with designers, interactions with project managers, ux decisions, and so forth just can't be crammed into such a short period.

I'm impressed by code-camps as web development and software development takes a long time but code campers are green. If you're in a position to take on junior devs, it seems a great way to expand a team and delegate jr level tasks to.

TLDR: I'd hire a code camp graduate to fill junior positions - there's just too many soft skill gaps that code schools don't have time to.

How much additional training and mentoring did your organization provide to these juniors? It seems a lot of companies are expecting that fresh grads will be able to be independent or get the job done from the get-go; that's not what universities or bootcamps are there for, they're just a solid foundation to build upon.
It definitely matters what bootcamp and what the devs backgrounds were before the bootcamp. But I'm also curious what kind of work they struggled with.

For instance so much work is getting data from a form or API, doing something with it and rendering HTML (styled by CSS and maybe adding some jQuery to polish the UI) that I wonder how much advantage a CS major has over someone who is not a CS major but is a good analytical thinker (like an English major who plays chess or an analytical philosopher). Good analytical thinking is not exclusive to CS or to STEM. I don't think CS majors have a big advantage over your typical good analytical thinker until you get to large scale applications where N is huge.

Do you hire programmers fresh out of college? How do they compare with the boot camp grads?
I went to a meetup at a coding bootcamp. It was weird. All these people from different backgrounds wanting to be programmers. Being a computer nerd since the 80s, it's so strange how the culture has shifted.
I knew as soon as I checked the comments on this article there would be a barrage of negativity. I just wasn't prepared for it to be unanimous.

I've made similar comments on HN in the past but much of this griping seems to boil down to "I was interested in [thing] way before all these johnny-come-latelys just bum-rushed it for a paycheck!" It's an irritatingly hipster thing to do -- I did X before X was cool, but now X is sooooo over.

I also wish people who complain in these comments would name the schools when they complain. Who are you worried about offending? Will you help everyone else by identifying degree-mill schools that turn out low-quality people? I hate that great programs like Hack Reactor or MakerSquare -- which never have people on the job market for more than a couple weeks and continue to have ridiculous industry demand -- get lumped in with fly-by-night HTML/CSS bootcamps in third-tier tech markets like Atlanta.

I disagree. What I got from the comments was that while everyone is capable of learning how to program, the expectation that a 3 month bootcamper can do/learn the same amount of information as a 4 year CS degree is insanity. Anyone who has studied STEM can tell you, 4 years is actually fast pace for a competitive program. What's next, a bootcamp to turn out doctors in 6 months instead of the 8/9 years of schooling?

And yes, most of these bootcampers (regardless of their location) are chasing a big paycheck because VC money is flooding the markets (many references in the article).

I for one think this trend is great. We need more developers.

But... I lived through the last boom when it seemed anyone who could spell 'java' was hired as a developer. (OK, it wasn't that bad, but there was definitely a giant sucking sound as folks were pulled into technology for the money.)

I hope this time is different.

I think we need more good developers. 100% you can get a great developer from this education channel, but that person would be good whether they came to you via a code school or a more traditional route.

I also think people should be encouraged to better themselves and work towards higher paying careers. That said, as someone who hires engineers the signal to noise ratio continues to go up. It makes it that much harder to find good developers in the forest of bad. I make it a point of seeing almost anyone who is close to fitting the bill so I kiss a lot of frogs, and I could be more harsh weeding out people at earlier stages but I've had absolutely spectacular hires being a bit more flexible (I do tend to fire fast though, no reason for everyone to pretend its not a good fit) Flooding the market with folks though just makes it more challenging for those hiring.

Hard to argue that we need more good developers. In my experience, some component of 'good' is experience, some is aptitude, some is knowledge, and some is willingness to grind. The code schools can take care of the latter two (depending on the quality of the school).

Sorry to hear that the signal to noise ratio is going up. That is probably due to more people being pulled into the profession (just as it was 15 years ago).

> Flooding the market with folks though just makes it more challenging for those hiring.

All other things being equal, wouldn't you want a larger candidate pool? I have done some hiring and while it was a grind to screen applicants, that beat the pants off of not having any applicants.

Well if you're letting me order it the way I want it, I wan the candidate pool to be infinite and to all be extremely qualified :)

What I'm actually finding is the candidate pool is getting larger but the quality hires are about the same. Ostensibly this is a function of the pay rate pressuring people to join the hiring pool.

>All other things being equal, wouldn't you want a larger candidate pool? I >have done some hiring and while it was a grind to screen applicants, that >beat the pants off of not having any applicants.

No argument, I have played that game and its not fun.

For the sake of argument though if we look at the total number of candidates you want to hire (1) then any pool size over one does create more work as it grows (I'd like to avoid that if at all possible :) ). Assuming the individual that matches your criteria is in your pool at all (again an oversimplification).

I also can't stress enough aptitude as a component of a good dev, which you alluded to. I've never seen a dev who was great (whether self taught/code school/cs degree who had no aptitude for the work.

I've also seen people with tons of aptitude and no credentials absolutely own people with phd's and masters degrees in a tough problem.

Before we had colleges/code schools there were always engineers, how do you think we got the wheel?

I'd like to hear your thoughts on how to be a good developer. I fall into this group and I'm entirely self-taught. I've been following the Free Code Camp curriculum while also working through some Linux books and Shaw's "Learn C the Hard Way." It's difficult for me to know what things I might be missing--the classic "unknown unknowns"--and I'd like to close whayever gaps there might be.
I'll throw my .02 in. For me a good developer is someone who has a natural aptitude, great problem solving skills, persistence, and willingness to learn new things. Every one I've ever managed who was great had those traits. That didn't mean everything they did was perfect - we are still dealing with people,but they were more versatile than most and were able to not only get things done, but the quality was there. Formal education is great, but I don't consider it an element. Reason being that technology is changing at such a pace most of what you learned is in school is now out of date, and anything foundational you learned at school (ie algorithms) is something that you can p/u from a book or online course.
So, everyone knows that Software is eating the world and coding is hot. However, something about this article seems off to me

1. All persons quoted are coding camp organizers/owners. Could it be they have some vested interest in pushing forward the idea that you can go from zero to hero in a few weeks of coding bootcamp.

2. The 'hot' areas that have been listed - mobile, analytics, cloud are actually a very tiny percent of jobs!. A quick Glassdoor search showed 25/1 ratio for software engineer/mobile engineer. In fact, if you go away from SF and NY, the number of jobs in these areas are even rarer. Which calls into question the whole premise of what is being taught.

Paul Graham's submarine article is spot on about these PR stunts.

http://www.paulgraham.com/submarine.html

I don't remember a time since the first boom that workers weren't interested in the fast easy money image of programming and startups. Combine that with the bootstrap programming education companies selling ITT Tech style train and earn big bucks package I bet business is booming.

The math grad was a silly story. Before I started working I made 0 dollars, now that I am working I make money! When I was in a grocery store I made minimum wage, when I got a job with more responsibility I made a lot more money! Of course there is a part of me a bit sore, my first coding job was $27k for full-time.

Also, this is a very long ad for Galvanize isn't it?

The lede anecdote talks about a 26-year-old math major who went from $20,000/yr as a writer to $100,000/yr as a data scientist, after a bootcamp. Ignoring the "but what is data science" debate for now...this to me seems totally reasonable. He's a math major. Programming is founded upon math...and at the very least, requires the same kind of mathematical deduction and ability to not be freaked out by symbolic representations of values.

Now, if it were a pure writer (i.e. literature/English major)...I would not expect that person to make the necessary growth in the short span of a bootcamp. Three months may be enough to cover syntax and some base engineering concepts...but it's definitely not enough to become a rigorous mathematical thinker.

While I'm sure it helps to be a math major anywhere, anyone who has been trained to be a careful analytic thinker would be a good candidate to become a programmer. For instance if you were a humanities major from a school with a strong academic reputation and you actually took your coursework seriously as an undergrad.

As much as programming is applied math, most companies are not Google or Facebook and have problems that can suffer the inefficiency of a non-expert. A lot of programming jobs ask you to get data from a form or API, do something with it and show some HTML. And that HTML needs to be styled in CSS and have some neat UI elements that are fine tuned in Javascript. There is nothing about that kind of work that favors a math major over English major.

The situation changes if your company is huge, handling thousands of requests a second so small inefficiencies add up and are wasteful on a large scale or even cause the software to break entirely. But assuming you have a smart CTO/Lead you should know where potential pain points in your code are and still be able to hire a relatively inexperienced junior and get good work out of that person. I have a friend who was an Ivy CS grad, worked at Google then worked at Squarespace. He said he was intimidated by designers who knew HTML, CSS & Javascript and were good with forms because a lot of work for developers could be handled as quickly by those type of developers as he could handle it with his vastly more technical background.

That's basically the demographic that is both the coding bootcamp's core demographic and what you want to look for while hiring. Intelligent, analytical folks who go from under-employed to having enough of a skill-set to do something of value. Engineering school students who had to drop out for non-academic reasons and are flipping burgers, math majors who are for some reason writing for $20k/yr, grad students tired of running experiments for peanuts, etc.
Startup idea: 3 month mechanical engineering bootcamp! I'd totally drive on that bridge.
There's nothing special about programming. Everyone wanted to be a trader and banker until 2008. Everyone also wanted to buy a house or be a real estate agent until 2008 too. And everyone wanted to be a web developer until 1999. People follow the money signal that an economy broadcasts. You can't blame individuals who want to better their prospects.

What we can do is blame the following:

1. Predatory schools (not all) with big price tags producing ill equipped developers

2. Greedy herd like VC's making bad investments that society has to pay for

3. And finally often overlooked, shoddy and uncritical journalism like this article that fail to provide context and attempt at finding the deeper real story

There are Plumbers, Plasterers and Bricklayers... and there are structural engineers.

There's a need for both kinds of coders. I'm all for it. Not all places need a CS genius, most just need someone with the skills to use established frameworks and tools. Doesn't make you a bad programmer.

> Not all places need a CS genius, most just need someone with the skills to use established frameworks and tools.

Unfortunately, many of them think they need a CS genius, or only want to hire them for the prestige of having an elite workforce.

Companies cannot hire fast enough. Glassdoor, an employment site, lists more than 7,300 openings for software engineers, ahead of job openings for nurses,

This agree with the post-2008 hollowing out of the middle theme - lots of of opportunities for high-IQ employment (coders) and the polar opposite: low-paid service workers and bedpan changers. It's like if you're IQ is not in the top quartile, go directly to the low-income, do not go pass go, do not collect $60-100k a year.

I'm very suspicious of the claim that these boot camps can turn novices into job-ready professionals in just 3 months. There's too much to learn and unless you're one of those high-IQ people who has an aptitude for math, as the example in the article, you won't be competent enough get a job and, to make things worse, you'll also be out $10,000.

Instead, if you're not smart enough to work in tech, take that $10k and buy Facebook, Google, Amazon or QQQ stock using in-the-money-call options. You can leverage 5-1 and make $30k a year from a $10k account doing this. The tech boom has much further to go. You don't need to be a member of Mensa to ride an obvious bull market trend.

There are a number of studies that about half of all software developers do not have a CS degree. From what I have seen, many of these have degrees in other so-called STEM (Science, Technology, Engineering, and Mathematics) fields such as mathematics.

Paul Minton's LinkedIn profile lists a 4 year B.S. in Mathematics from the University of Illinois at Chicago (2009-2011). He apparently was a transfer from University of Vermont. GPA is listed as 3.31. His LinkedIn profile also lists courses in probability, statistics, and linear algebra.

https://www.linkedin.com/in/paulminton

Data scientists in particular tend to be people with degrees (often Ph.D.s) in other STEM fields involving heavy statistics and data analysis. Most do extensive software development for these data analyses.

It is not clear how much programming experience he had prior to the coding boot camp either from the New York Times article or his LinkedIn profile. These days, most people taking probability and statistics probably do some programming in class.

It is also worth noting that San Francisco is quite expensive with apartment rents running over $4,000/month in the city. Software jobs are concentrated in high cost of living areas.

http://blog.sfgate.com/ontheblock/2015/06/02/san-franciscos-...