Hacker News new | ask | show | jobs
by tikhonj 5100 days ago
Exactly. The "talent shortage" is a lack of employable programmers period, not just a lack of exceptional programmers. And this is easy to see: everybody I know in my class (also Berkeley, coincidentally) has managed to get an internship or full time job without much effort. This includes both people with and without experience before college. I managed to get a couple of interesting offers despite never sending my resume out, attending career fairs or even answering recruiter emails. Clearly the market is in the programmer's favor--every programmer's favor.

As far as I can tell, pretty much everybody graduating that wants a job gets a job. Naturally, not everybody goes to work for Google or Facebook, but this includes people even worse than the presumably hypothetical "John".

Also, people like "Norman" are just as likely to get snapped up by Google and then still work in relative obscurity. Well-paid, enjoyable relative obscurity with great benefits and a great culture, but relative obscurity nonetheless.

Really, the talent shortage works like this: you, as a company, would love a "Norman". You'd be happy with a "John". You'd probably be content with anybody who can program. Instead you get "Barry" who can't write a FizzBuzz program in any language. All this puts upward pressure on programmer salaries and benefits (good) and motivates recruiters to spam me about openings for senior Java developers (bad).

Also, a lot of companies do claim to want very good engineers. But I've found this to be empty rhetoric as often as not: for every company claiming that and actually having a stringent interview process and difficult technical problems there's a company willing to accept anybody to work on their CRUD app but wants their ad to sound cool.

Anyhow: there is some shortage of programmers of any but minimal competence. That is what "talent shortage" actually means, and, as far as I can tell, it's actually accurate.

4 comments

You went to Berkeley. You get a somewhat different response from PR than someone like myself, who went to a crappy liberal arts school with no name in PA. They recognize the school, and expect that to be a substitute for skill - "oh he went to Ivy League / big state school, he must be a genius". Versus "I have never heard of that place, must be dumb not to go to an Ivy League".

Anecdote: I like to think I can write fizzbuzz in a couple languages.

I'm actually still going to Berkeley :). The only reason I brought it up was because the allegorical students in the blog post also go there.

I have actually avoided HR. I've been too lazy to send out resumes, and I only really want to work at small startups (at least for now). All of the interesting offers I got had some concrete spark independent of my education: for example, I got one after doing well at a hackathon and another from an HN post (but largely thanks to my knowing Haskell and having some interesting projects on GitHub).

I think that if you don't mind not working for an established company, you will have to worry much less about your education (but, probably, more about your actual skills). Of course there are good startups and bad startups, but I've found the good ones to be very good not just from a technical standpoint but also from an employment standpoint.

It also helps you are in CA. Like I said, I live in PA (specifically, rural PA, and I went to a local school) getting any networking whatsoever with not just the Bay area but any reasonable techy area is a pain. You don't know how nice it is to be a few hours train ride from networking galore until your next door neighbor is an Amish bishop :P
How far are you from the Philadelphia area? If you're looking east shoot me an email, the company I work for is always hiring engineers and we don't have any HR filtering yet :)
From the outside looking in, it certainly doesn't seem like everyone is eager to snatch up mediocre graduates. I can't say I've done much research on the subject or crunched numbers, but I noticed two things: 1) Complaints about "talent shortages" from top companies and startups in the Valley and otherwise. 2) Companies evaluating people based on experience, GitHub profiles, open source contributions, etc.

Not that it's wrong to evaluate based on that criteria. However, for people like the hypothetical John it's quite hard to keep up with a good CS program and manage to do impressive things on the side. So you end up with people with strong potential, much of it not yet actualized, who spend the first years of their careers in a job of questionable usefulness (excel macros?). I think there are more of those people than commonly assumed, and I do think they can contribute well in much better places. They may be slow at first, but give them 6 months and they will be strong members of the team. Granted, a startup may not have 6 months to give, but once you've got some resources under your belt a green-but-talented engineer can be a great investment.

This is basically my scenario. Got the BS in CS by rushing my degree, but getting into FOSS is proving harder than I would expect, mainly because every project has "some" technology, from automake to some framework like qt or something else that I never learned and thus feel helpless trying to get into, especially on anything with more than 200k LOCs. Getting into something like that is getting through a brick wall with a twig.
The tech field is like that. Work won't be any easier. In fact, expect major libraries and build tools that are internal to a large organization to be less elegant and documented. Learning stuff like that quickly is a skill you're going to need.

I don't have a lot of advice besides "practice".

Well, I do have some. Don't be afraid to open up the tool's source and read it. Try to design the tool yourself and you'll get a better sense of how it's likely to do things.

But mostly, practice.

Actually the trick is to choose the project that uses technology you already know. If you know Java better than C++, contribute to Java projects. At least at first, do not choose FOSS projects to contribute based on how impressive it would look.
Tikhon, It took me two weeks and now I'm doing contracting to hire for a YC company. (I had help)

However I ran into a bunch companies that did not know how to hire and I also found that the more successful the company was the better they were at the process, defiantly a correlation there.

there is some shortage of programmers of any but minimal competence

I think our industry sets a high bar for "minimal competence". It isn't fizzbuzz. I went to an interview where I was asked to write, on the whiteboard, a recursive solution to the problem of printing all possible permutations of a string. I blew it, and of course I went home and worked on it a bit and solved it (the way I usually program, try it a bit, run it, modify, test, iterate), and I emailed them my solution, but that's how it goes: no offer. I want to be very clear about this, I am not complaining. This company has every right to decide what their interview process will be. But of course it irritates me to no end to hear about how there's a shortage of programmers beyond "minimal competence", especially when the people doing the hiring what to hire whip-smart engineers at roughly half the rate a top MBA or law grad would command.

I've had such discussions on this board with people about the the concept of a "shortage" at the "market rate" when everyone is experiencing hiring troubles at this rate. I think it's an absurd notion - if demand clearly exceeds supply, this is not evidence of a shortage, it is evidence that salaries need to rise to reach an equilibrium. All I can say is that some very intelligent and rational people simply disagree with me on this.

As a personal anecdote - I was in grad school at Berkeley during the first dot com boom, when industries were claiming a severe shortate of engineering graduates. I saw reports of average starting salaries out of the MBA program, the JD program, and the various MS/PhD engineering grads... not a single engineering degree program, even PhDs in CS, were at the MBA or JD level. Why is there so much resistance to paying engineers what it will actually take to get more top people into the field?

Actually some schools are facing class action lawsuits for inflating reported JD salaries and placement rates.

But Biglaw/MBA Consulting pay so much because the firms are oligopolies with gentlemen's agreements not to compete on price.

That's not going to happen in a field with mesurable results.

I've heard about these lawsuits, and I don't doubt that there is some inflation of job placement data. However, these accusations tend to happen more at the mid-rated schools, and we are talking about the "elite" here (ie., top 5 or so).

While there does seem to be some basis for questioning the data, I do think that the employment reports support the notion that the average starting salary for someone out of a "Top 5" law school greatly exceeds the pay for an MS or PhD grad of a top engineering school.

Is this something you'd disagree with? - ie., do you think that the job placement reports from the various grad schools at UC Berkeley and other top institutions are so unreliable that we can't draw general conclusions from the numbers?

I also completely agree with you about biglaw and consulting. Law actually does resemble a cartel in many ways, and oligopolies certainly exist in consulting and drive up pay. But to me, that's beside the point. If smart people can make gobs of money in other fields (never mind why, the important thing is that they can), why should we be surprised that they won't become programmers for 80K a year?