Hacker News new | ask | show | jobs
by dspeyer 5103 days ago
This article is playing word-games. When employers and economists talk about talent, they mean capability, regardless of whether it's natural or comes from hard work. Your dictionary may say "natural aptitude or skill", but that's irrelevant to the job market.
4 comments

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.

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?

I didn't mean to get into the debate between natural talent and skills acquired by work - probably should've cut the "natural" part out of the definition to make that clear. I was thinking of the "potentiality" aspect of talent. I agree that employers want capable employees - preferably able to contribute from day one. I think investing in employees who have the potential to be great contributors but are not quite there yet is worthwhile, and is something that's under-emphasized in most recruitment strategies. To me, "talent" is when a master finds an apprentice he knows could be great with the right guidance. The job market demands masters (dubbed "talent"), but few are willing to help create masters by actualizing the potential of those who are less experienced.

Note: I'm not talking about on-the-job training from someone who doesn't know what a computer is to a master programmer. I'm talking about allowing people who are less immediately capable into the workplace and mentoring/growing them into strong contributors.

Growing talent at a company seems to be a bit of a lost concept. I think it went out the door when the company man disappeared: layoffs and lack of raises reducing loyalty.
Ah, I see.

I'll admit I haven't seen a lot of explicit on-the-job training (besides that dealing with internal technologies), but I have seen a lot of people who's first job is less challenging than their later ones, who use it as a growing experience and a stepstone.

The real question is whether a large number of programmers don't reach their full potential or do so significantly later than they would have with proper mentoring. A difficult thing to find evidence for either way.

"Dictionary defintions" are usually a red flag during an argument,
I hope most people know by now that "natural talent" isn't real.

See books: Outliers, The Talent Code

Two pseudo-scientific books as proof. Seems legit.

In all seriousness, this is ridiculous, of course natural talent exists, what gladwell et al are really getting at to me is that it's not enough to have natural talent and execute once. That isn't how success works in the real world, even if it outwardly appears that way. I have Los of friends who are artists and I moved cities last year from one where the local ar school was very practically focused to one where the prominent art school is obsessed with concept and object art. The art and quality of artists in the new city is laughable, apart from those who have been trained in and practiced their craft elsewhere or in their own time however. It's an inescapable fact that if you want to be good at something you need to practice and fail.

of course natural talent exists

Well then, what is natural talent, how do you objectify and measure it in a person, if it so obviously exists?

Success is best correlated with time invested in skill development. Natural talent is bullshit, it's like attributing height to a basketball player's success.

I disagree with you here.

There are some areas where I am quite frankly talented. Once I get Perl coding on accounting software, there is very little that can stop me and quite frankly I can outperform nearly any programmer I have ever worked with.

On the other hand, there are also things which I cannot do very well no matter how hard I try. When I was in college for example I used to be able to help struggling students in areas like analytical geometry understand the problems and go from getting C's to getting A's. But I couldn't get above a C myself.

That isn't what natural talent is supposed to be though. You're good at programming Perl probably because you've practiced more, or you care more and thus have thought about it more. Software writing is a skill which you have honed by practice, not naturality.

I don't know why you can't score A's at math though. It makes no sense to me as to why you can help others get good grades but can't get good grades yourself. It probably means you lack the hours applying through repetitive practice.

One thing is I have ADD. I run into mental blocks sometimes and can't get started on some things. Or I make transposition errors. These occur in times and places that make no logical sense. Analytical geometry, but only to a lesser extent in trig, and not so much in calculus. Similarly in chemistry, subatomic orbitals are fine but molecular orbitals, which are conceptually simpler, are not.

Similarly in chemistry lab, I could help anyone else but I would invariably run all the right tests on all the wrong samples. This made me a great lab partner but a disaster on my own.

As I have gotten older I have learned coping mechanisms but some things I can't do and I pass those onto others.

At the same time I have always been top of my class in many things, while putting in quite a bit less effort than average. These ranged from history to some of the sciences, to some cases of math (calculus, some algebra).

You mean height is not correlated with basketball player's success?
Not sure if you were being sarcastic?

My point was, skill and hours practiced are far better predictors of success than a voodoo attribute like natural talent. In the above case, I tried to use height as an example of a "natural ability" person could be advantaged in.

Gladwell's theory, as I've heard it, is that mastery demands 10,000 hours of good quality practice.

When your developers cost $75 an hour including overheads, paying people for those 10,000 hours is an extremely costly proposition.

Gladwell was arguing that it takes 10,000 hours to go from a knowing nothing to becoming a master at any craft. At 8 hours a day, every single day, is ~3.5 years.

For programmers, most of the initial chunk of that time is through hobby programming or through formal training at a college or the like. That's 3000 hours that the company didn't pay for. That's probably the experience most programmers walk in to any company as a Jr Developer, and they are paid accordingly. Nobody is being offered $150k/yr with that level of experience. Maybe $30-$40 depending on where they are working, and then are promoted and given raises above that.

When I say $75 an hour including overheads I don't mean a salary of $150,000 - I mean a salary of $60,000 plus tax plus health insurance plus pension contribution plus office space plus a desk plus a computer plus the calls to IT Helpdesk plus the line manager's time plus any commercial software plus other developers' time coaching plus the 20% cut paid to the recruiter plus the HR and payroll people's time plus networking and internet connection plus the backed up storage space on file and mail servers plus the car parking space plus a phone line plus cleaning plus the break room food and coffee.

Of course these things are company-dependent, but I'm a comparatively junior developer and for purposes of internal costing my employer costs my time at $75 an hour.

Not sure what your point is, with due respect.

Everyone wants to hire master engineers, but it's not like master engineers are available for hire.