Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
There is no talent shortage (apaitch.com)
83 points by apaitch on June 25, 2012 | hide | past | favorite | 100 comments


It is a weird market. I've been job searching pretty hard for the past month in SF and the response has been a bit frustrating. I get tons of people reaching out to me after meeting me at tech meetups, etc, but I'd say over half of those leads end up cutting me at an HR filter before I can even get an interview!

From what I understand it's due to two things-- at 34, I'm older than others going for junior positions. I spent a decade abroad after graduation and have only a year of experience at a tech start-up in Asia. I can kind of understand the pursuit of someone who already knows what they're doing, but on the other hand everyone has to start learning somewhere. Sure my bohemian background and experience starting and running a non-tech business and learning multiple foreign languages doesn't translate directly into usable skills here, but I would have thought that it would have been a strong signal I'm capable of working hard and learning quickly.

Not to overstate things, I am getting a lot of interest and a few interviews and even repeat interviews. It's just that things are moving very slowly, and I'm not getting a great return on the time I put into it. Also, SF is a very expensive city to live in off of savings earned in a developing country!

I think the shortage isn't so much general talent; it's a shortage of people who already have X skill a given business wants right now.


It certainly helps to already have X skill. There may be some positions where that's a non-negotiable requirement. For most, you only need to show some experience with something related to X skill, and a willingness to learn quickly.

The barrier to entry for programming is very low. Anyone can get started and build things. They can put their code up on github and start displaying what they've learned. They need to keep learning and challenging themselves though.

The problem is that there isn't a lot of demand for "smart" or "talented" people who can't contribute quickly. Someone who writes bad code and adds bugs to production software is a drag on everyone else's productivity. In most companies there just isn't the time or resources necessary to teach basic programming skills.

You probably don't need to know skill X to land a job, but you need to show that you can learn it quickly. If you can learn it quickly, then start learning it on your own. Most companies in SF don't care how old you are, they care that you can be productive quickly.


It's totally understandable for a 10-man startup to not want to take in a relative newbie and have him/her drag down the team's productivity when they've got to ship in a month. However, for bigger companies (not necessarily giants like Google either) it may well be worth it to invest in a number of somewhat less experienced employees and grow them internally. The only problem, I suppose, would be selecting the right people.


A large percentage of "the right people" will have already invested in learning programming and the innumerable related skills, because that's what they're interested in and have been interested in for a long time. Thus, being a bit older without much experience is a bad signal from a company's perspective. But if you learn aggressively on your own, it can be overcome. Don't expect to learn all the random skills on a company's dime, though - the salaries are too high to justify that.


You've been searching for a month, you've been getting interviews, even repeat interviews, and you are complaining? Not to make little of your situation, but I don't think you really have a whole lot to complain about, especially because any place with a real HR department is going to take at least a month to get you into a job.

Also, SF is expensive, and if you are staying somewhere expensive in the city while trying to find a job, you're doing it wrong. Move out to Oakland/Berkeley or even Hayward/Fremont, one of the other cheaper places and stretch out your money til you find a job... Then be prepared to look for a place to live, which is harder than finding a job in my experience... Especially if you are out of money by the time you get a job and don't have enough for the deposit of wherever you live.

Be prepared for things to take a long time, and with that in mind try to stretch out your money.


I didn't mean to be complaining. It's just an unexpected outcome for me. I can't remember ever having to look for this long before. About half the work I've done has been under my own employ and 80% it has been in Taiwan or China. Truth be told, I've never dealt with a "real HR" department before!

I've got a $500/month place in Chinatown, and really haven't found anything near that price with English speaking landlords. It's not to the point of missing rent or anything that dramatic yet, but I have taken on some $11/hr writing and translation work via various freelancing sites as well as some similarly priced work on a rails project. It's the surest way I see of surviving long enough to beat the chicken and egg problem of getting relevant experience.


Just don't tell prospective employers about doing programming gigs for $11/hr, that certainly doesn't speak very well to your judgment.


Can you offer some constructive advice?

I've been actively seeking something paid at a higher rate using platforms I've already worked on (iOS or JS/CSS), but it's going slowly. Translation is good for helping me continue to use and strengthen my 2nd (or 3rd) language. The rails work is priced as it is because I've never used rails before and I'm spending at least half the time reading docs. It's not a good long-term money-making solution, but I am learning and I'm adding something to my portfolio.

What would someone with good judgement do if their funds were running out and finding a real gig was clearly in sight but moving slowly? Missing rent would bring all kinds of pain I don't want to deal with and wreak my credit.


I'd love to hear the arguments for doing $11/hr programming jobs instead of just getting downvoted.


While I felt compelled to downvote you, I won't since you ask nicely. You should explain how it doesn't speak well for his judgment. Doing translation work isn't the same as programming on the pay scale, and any respectable employer should realize that when it comes time to discuss compensation for a programming position. In fact, I feel it speaks highly of his character in that A) he's motivated enough to continue with some form of work while looking for a programming job, and B) that he has the talent to do translation work in the first place.


You may have missed the "similarly priced rails work" part. I did on my first read.


Any employer who can't hire you in a week start to finish either doesn't actually want you or is too defective to be worthwhile. Maybe two weeks if it's out of the area and you need to fly to visit them for the final round of interviews.

(the exception being for VP/COO at larger companies where a board would need to sign off)


> Move out to Oakland

From all that I have heard and read, do NOT move to Oakland.


"but I'd say over half of those leads end up cutting me at an HR filter before I can even get an interview!

"From what I understand it's due to two things-- at 34, I'm older than others going for junior positions."

I hope any HR people who have had your resume cross their desk are sweating at the thought of age discrimination scrutiny.

It may be there's a shortage of HR talent, not tech talent.


>I hope any HR people who have had your resume cross their desk are sweating at the thought of age discrimination scrutiny.

Did Glinda flit in from Oz and wave her magic wand, correcting the past two generations' worth of age discrimination problems in the Valley? Did the EEOC's jack-booted thugs suddenly start raiding offices last week and I didn't read about it in the Murky News?

>It may be there's a shortage of HR talent, not tech talent.

But they not only have certificates, they have college degrees in HR now! A shortage? That's unpossible.


I said talent, not bodies.


HR defines talent as certificates and diplomas.


I'm in a pretty similar situation (30 years old, no full-time programming on my résumé, but a long history of technical problem solving).

One thing I'll add is that, at least for me, the problem of employers only looking for people with X skill right now is not as bad in SF as it is elsewhere. I'm in Washington, DC and the only interest I've gotten has been from companies in the Bay area.


That sounds crazy to me. Are you able to get a clearance of any kind? If you are eligible then there should be thousands of jobs in the DC area to choose from.

Of course, those aren't super exciting startup-like jobs, but they are places where you'll get a bunch of experience.


I already have a clearance. I guess this means I've probably been talking to the wrong people.

For the contractors I've been talking to, when I tell them that I write python when I can, PHP when I'm patching stuff I wrote a few years ago, and javascript when it needs to run client-side, and that I spend my days maintaining systems running Ubuntu server I get a response something like "yeah... that's not really what we're looking for.

And maybe I've been too quick to dismiss working in a Windows/ASP/VB shop. Those folks have challenging problems to solve too, and reasons for using the tools they use. Thanks for reminding me of that.


"already have X skill" is right but it's not everything. People are irrational about hiring in that they include (filter on) many features which are not really relevant. Like age and weird looking history and lack of salesmanship. These things shouldn't matter if you are just trying to get someone to build things well.


If you're looking for a job, it would be worth putting your email address and a website or linkedin profile or something in your hn profile.


The LinkedIn profile was a great suggestion. Thank you!


Put your public email in your profile, I was about to contact you about my company but I can't because it isn't listed.

If you want to find work, make yourself easiest to get a hold of. ;)

Also, start hacking up a portfolio.


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.


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.


There is no talent shortage. There is a shortage of Berkeley/Stanford/MIT grads.

Just look at the difference between grads of those school, who basically get money thrown at them, and the rest of graduates, who have a hard time finding a job at all.


I noticed this too, whenever I read anything about American Universities (I'm in the UK) for CS it always seems to be one of those 3 especially when it's related to startups.

Is it the case that a CS degree is somehow considered second rate if it is not from one of these universities? Is it a prestige thing or do all the other universities suck for CS?

Obviously we have similar in the UK to an extent with Oxford/Cambridge etc but CS degrees from most universities are well enough respected.

I've done some of the online classes from these 3 universities as well as watched youtube videos from some lectures. For the most part they don't strike me as being especially more difficult than what I did for my CS undergrad (in most cases the difficulty level seems about the same).


There is no talent shortage. There is a shortage of Berkeley/Stanford/MIT grads.

Funny.

The part of me that flatters myself tends to think of geeks as more logical and individualistic. And less likely to follow a clique. And less likely to be biased in such silly ways like preferring someone just because they came from your university.

But reality keeps reminding me that nope, intellectuals can be just as stupidly cliquey and biased as anyone.


I know someone who just graduated cum laude with a BS from UIUC who is having trouble.


...and UIUC has one of the top CS programs in the country (on many lists it's the #1 CS program at a public university). Around here (I live near uiuc) Bill Gates is famous for declaring that MS hires more UIUC grads than any other single University in the world.

Honestly, the idea that someone can make it through the CS program at UIUC, and end up shunned because he/she didn't graduate form MIT, is a perfect example of what's wrong with hiring practices these days.


Maybe it's just me, but this seems to be in response to an earlier HN post about the entrepreneur prodigy [1] as well as a vague stab at the 10x programmer myth.

[1]: http://news.ycombinator.com/item?id=4140048

Largely though "Norman" is more attractive than "John" to businesses because he displays strong signals both in talent and work ethic. "John" might be a hard worker and have talent himself, but because he has no obvious projects or other public displays of talent his signal to employers is weak. What "John" needs is something that sends a comparatively strong signal. In a way, this sounds like a call to action to figure out how programmers can build a sufficiently strong signal for employers to see. How do we separate the signal from the noise?

Interestingly, this signalling problem arises with employers as well. Look how many articles are posted here about "How to attract the best talent."

http://en.wikipedia.org/wiki/Signalling_(economics)


That Norman is more attractive than John is not in question. The contention is that many companies want a Norman and so will pass over a John, even when a Norman is not available (hence creating the perception of a shortage). Furthermore, these companies usually do not need a Norman; a John would work out fine.

A number of posters in this thread assert that anyone who can write code competently[0] can get a job in this economy. I personally, as with the OP, don't see that. I see two broad groupings of companies[1]. The first group only wants Normans or near-Normans, and complain that there are not enough of them to fill their slots. The second group is happy with Johns, but drops a laundry list of (sometimes conflicting) skills and experience requirements that filter out almost all of the Johns, and then complains that there are not enough of them to fill their slots. I have also encountered an overlapping subgroup of companies willing to compromise somewhat for local candidates.

Unfortunately its difficult to move beyond anecdotes on this matter. I have some that support the OP's point, many here have some that refute it. It would be really interesting to see distrbutions of these anecdotes by geography, experience level, and undergrad program, though.

[0] "Competently" goes beyond writing FizzBuzz in this case. [1] I am not asserting that every company falls into one or the other; my current one does not, though my previous one does. I'm asserting that most do.


My programming experience was unexpressed before college as I was mostly interested in basic sciences - mainly physics. It was only after high school did I seriously get into CS type of stuff as I started developing an intesrest in AI/algorithms. So for me, it is not hard to believe that there could be a lot of people with a hidden aptitude for programming. After all, programming is a means to an end. After high school, understanding the brain and developing AI was my "end", which obviously requires strong programming skills and thus subsequently triggered a stronger interest for programming.


I started programming late into highschool as well, and only a TI83 at that. My first rendezvous with network/gui programming started in college (though I was a CS major). Now, more than half a decade after graduation and working in silicon valley, I'm hacking on more serious projects like writing operating systems. I don't think starting late has affected me negatively too much. Just keep at it, you'll reach your full potential before you know it.


Ok, really how common are people who have started 2 companies and written an OS by the time they start college? I did CS at a pretty good university (AAB A level requirement) and there were plenty of uber-nerds in the class but nobody had done anything like this.

I did a bit of casual freelance work building basic PHP/HTML websites and fixing/building PCs before I started college, but never anything I would have dreamed of incorporating a company for. In fact I'm not sure how many jurisdictions would even let one start a company at that age?


I think you might be missing the point of the article.


Not really, no wonder companies have problems hiring if they are after some mythical person who does not represent the top 1% of programmers, more like the top 0.001% (even Linus Torvalds or Bill Gates don't tick all the boxes here).

In fact I would be surprised if someone with that level of accomplishment so young would even consider taking any job with any company, more likely they are already putting together an MVP of the thing that will replace google.


You may be surprised, but it is possible to be very talented in programming without much entrepreneurial ambition. Well, the original article mentioned "started two companies" so probably Norman is not looking for jobs.

But I do know a person who's been programming since ~12, wrote a 3D game in C++ at ~16 (multiplayer one, thousands of players), and wrote his own OS, and happily employed.


Out of curiosity what were the game and OS?


Try Lesia Online. (Most information is in Korean since he is Korean.)


This One? http://www.youtube.com/watch?v=DdgzKHOfUI8

Shame all I can find is that youtube video and no download links etc, that game looks utterly insane and quite fun.

Technically it's only really a 2D game though , still very impressive for a 16 year old.


"John only started programming in college. He has 3 years of “experience” – much of it spent working on school assignments, not projects – and Norman has 10. John’s not as experienced or capable, but he may well be just as talented as Norman. Norman will get snapped up by a top company and snowball into a “rockstar” developer, whereas John will start (and maybe spend) his programming career in relative obscurity."

I'm not sure what I'm supposed to gather from this John/Norman comparison. If John has the same amount of natural talent as Norman, after a few years of full-time professional development work he's likely to be just as valuable as Norman. There's plenty of time to become really competent and valuable even if you start very late (like in your 30's or 40's, which I assume classifies as "freaking ancient" in many companies' eyes). I don't see how one person having some imagined head start figures into whether there's a shortage or not; but then, I don't live in the valley, so perhaps this is a cultural thing there.

I do agree, though, that there's a lot of companies out there that seem to want the top 1% (all the while offering bottom 25% rates).


"I'm not sure what I'm supposed to gather from this John/Norman comparison"

In my opinion, one thing that can happen is the following:

Norman gets easily a job at a great company where he'll continue to improve his skills amongst other 1% programmers; while John takes a job that isn't exactly what he wants, in a so-so unknown company, where he isn't challenged as much and isn't learning as fast.

After a few years, Norman changes job easily because he has worked for Google/Facebook/whatever and that acts as vesting to move him along quickly in the interview process at the new hot companies of the time. John has yet again a harder time because having worked for that unknown company doesn't give any special credit. He might have had to take some jobs that were not exactly what he wanted (e.g. support, QA) and that is questioned when he has interviews. Even with his additional experience, he still has to go the extra mile to pass the ex-Google, Facebook, etc.

Lather, rinse, repeat.

Of course, I'm forcing the trait, but I think this scenario happens fairly frequently. Also, it's certainly possible for John to break the cycle by working on his own things and putting himself "out there", or by just "waiting" a few years until things even out a bit; however it feels that the extra efforts required are not reflecting the initial difference between Norman and John.


Building software is not like installing carpet. You don't just do it for a couple years and become a skilled worker. Its obvious that many misinformed people think that software development is a blue collar job that people go to vo-tech school to learn to do while rebuilding car alternators. This way of thinking comes about because most people's experience with development is usually within a very, very small microcosm. There are people out there that did some VB work fifteen years ago who think that once a developer has ramped up on basic VB programming, they now meet the industry bar for software design and engineering.

Is a physicist just as valuable after a few years of doing research as a full tenured professor with 30 years of research? After a few years of full-time professional development work John will be talented at working with a very, very limited set of tools that his company uses and developed the ability to solve a very small set of problems. This means he is perhaps as valuable as Norman to one single company and almost not valuable at all to most other companies.


> Building software is not like installing carpet. You don't just do it for a couple years and become a skilled worker.

I think you're wrong, there. Building software is, 99% of the time, like installing carpet.

> Is a physicist just as valuable after a few years of doing research as a full tenured professor with 30 years of research?

Terrible analogy. There are grad students who are more valuable than professors on the edge of the retirement. Comparing software development to academia is a specious argument.


This is my situation - I only really found out I loved code in University, and only worked out what I really need to do to do that kind of work I want to do since entering employment. I'm still relatively young (24) but even I feel this experience gap in talking to potential employers.

That said I'm now actively building a portfolio by working nights on real products and leveraging what experience I do have as heavily as I can. I also try to present how quickly I picked up the skills I do have in things like Ruby, coffee/node and all that 'sexy' stuff to show that I can pick up anything anyone throws at me really quickly.

Hopefully by the end of the year I'll be where I want to be.


If only everyone had enough talent to be in the top 1%, then everyone would have a job!


NaN


Norman has skill, Jon could've had skill, so there is no talent shortage. Is the article saying because a lot of people COULD'VE had skill that there is no talent shortage, and then pedantically renames it? It's clever, but talent shortage or luck shortage or whatever you call it, companies need sufficient programmers and there aren't enough to go around.


no. there is absolutely a talent shortage.

as proven by 1) the fact that the percentage of of the general population who have an aptitude for "brainy things" in general is pretty much the exact same as it was 20 years ago and 2) the percentage of companies with a need for said people is growing exponentially as software eats the world.

basically, all of the new-need companies from point 2 are bottom-feeding all of the people from point 1 which applies upward pressure on the talent pool.

because a talented accountant-turned-programmer still leaves a hole that needs to be filled.

feelin' me?

m3mnoch.


Even if the hole needs to be filled, there is shortage of brainy people without jobs in this world.


I meant to write 'no shortage' but am now past the edit window, sorry


Then what does a talent shortage look like?

This article is arguing that the current situation is because companies wont employ below a minimal technical competence.

New, brand new, out of college only done programming in college programmers can expect massive starting salaries, the best equipment, and probably lunch and accommodation with a strong chance that they'll get a higher salary the year after.

Few companies require you to actually have used their technology or their architecture, if you have you might have already priced your way in to a job above the one been offered.

If the industry contracts as it surely will programmers are going to be scratching their heads at articles like this.


I am a brand new, out of college, only done programming in College (graduated in 2 years) and job hunting is a PITA because 99% of HR's don't even look at me. The BS in CS is not everything, maybe from a top school, but I got mine from a no-name liberal arts college. When the school name doesn't raise eyebrows you do need a sizable experience portfolio to get interviews.


Yep. Well, I went to a similar sort of small liberal arts school (actually they have great business and nursing programs that are only recognized in the local region). I got interviews from Amazon, Cerner, and a few other big companies, but I was completely unprepared for job interviews (my fault, I know). It's not so much that the talent doesn't exist, it's that businesses only want to hire the very best, and they pass over people who show any sign of weakness or being unsure.

I've got a great job now programming all sorts of things, but it's not purely CS, there's a lot of other stuff there too. Perhaps more BS-CS degree earners should look into industrial applications, they're not ashamed to hire people from small colleges.


I didn't encounter programming by luck. I was mesmerized by the first computer I saw, and soon sought out programming through library books and hobbyist magazines. At that time, home computers were rare and expensive, so I was lucky that my parents' indulgence made my obsession possible, but now? They're so common that it's very likely John's family had a desktop on which he could simply type "I want to program computers" and it would tell him how. I have trouble believing strong aptitude could go completely unexpressed until college.


You're assuming that someone knows what "I want to program computers" means.

I didn't. I loved playing around with computers. But no one in my family was technical. None of my friends programmed. I literally had no idea what programming was. Most people don't, even those who are otherwise very effective with computers.

Now I've started, much later, and I love it.

This xkcd comic is relevant: http://xkcd.com/519/

I'm sure if someone had shown me what a programming language or a terminal was, I would have started 10 years ago. Instead I learned about other things.


I had no idea either. I started programming in college but it wasn't until we were taught assembly that I realized that what I had been doing as a kid with softice had been assembly all along.


Count this as a "me too" comment. I played on the DOS terminal for years, wired together old machines into LANs and did hex editing of WoW binaries when I was 12 without realizing how close to hacking that was.

I heard about Python / C++ / etc, but didn't try "diving in" until college with CS1. Basically, IT knowledge instead of CS knowledge.

I can't help but feel that anyone that is <22 right now is getting a radically different introduction to hacking than those who are >=22. The <22 grew up on GUI in the Windows monopoly, and probably never needed to dig in to computers to get things "working" as much as the elders did, which would actually introduce them to CS much earlier.


I feel somewhat the same. I'm 16 and have only been doing this for 2 years. I know several people my age who have been doing this much longer and who have had way more monetary success in doing so.

I'd say I have a decent amount of talent, and spend probably 75% of my waking hours increasing said talent, but I still feel sort of late. I often lie awake wondering if I'm already behind in my career.


Personally, my aptitude was unexpressed until college. It was first-year computer programming (standard in Canadian engineering schools) that opened my eyes. Prior to this, I never really had the desire to program anything because no one had told me how fun it was. It was not encouraged by my parents (who didn't even own a computer for the longest time) or my teachers both of which did not know the first about programming or why you would ever want to do it.

I certainly think that the "talent shortage" could be reduced by making computer science mandatory in high school, or at least on equal footing with other sciences such as biology or physics.


Talent at any company can be divided in to following categories: a. People who make code* frameworks b. People who extend code frameworks c. People who maintain code frameworks

* you can replace code with almost any other employable skill

"Talent shortage" usually refers to people who fall in a).

Every company claims to want to hire only a) but most companies need b) or c). Very early stage startups ideally need a), but they don't always manage to hire people in that category. They can temporarily bypass this requirement by hiring people in b) and using frameworks like (Rails, Django, etc) built by other people who fall in a) until they get to a point where a) types will be willing to join.

When people talk about shortage of talent, they usually mean shortage of a) people. This is mostly because two of the three things that people in b) and c) need to become a) are hard to acquire and come with 'experience'(for those who try).

3 things you need to become a):

1. Acquiring a good base - data structures, algorithms, design patterns etc - learning languages/specific skills - interview skills

2. Acquiring good mental models - working with smart programmers - reading code by smart programmers - learning to make tradeoffs - actually building stuff

3. Acquiring reputation - Building stuff - Talking about stuff you build - Having other people talk about you - Collecting badges that other people recognize i.e. working at well known startups/companies, winning programming competitions, going to Berkeley, etc.

Most people manage to succeed in 1) eventually. 1) is also where most college/other training programs focus. But, 2) and 3) are much harder to acquire.

If a company is big enough they will assign an a) to mentor someone who is a b) or c), but this is often not viable for startups (and, imho, slightly unreasonable to expect from a lot of startups).

If we figure out a way for b) and c) people to learn 2), we can solve a lot of the talent shortage. But, this requires either a b) or c) person to spend time on their own looking at work by a) people (not always possible and extremely time consuming), or an a) person mentoring the b)/c) person outside companies (100x faster, imho).

Until we build social systems that enable b) and c) to transition to a) easily, the alarms for 'talent shortage' will continue to ring.

Caveats: 1. A lot of jobs only need b) or c). Employers could adjust expectations. 2. Luck is a huge factor. You don't actually have to be a) to be hired or considered a) because perception(3) plays a big role.


But if that's the case the problem is different than it is portrayed to HR and that's the problem.

What you need is someone for a) is someone who is both a software engineer (i.e. thinks hard about design) and is a coder/developer. The amount of experience doesn't really matter though experience is an important guide. What really matters is attitude. How does the programmer approach design questions? Is the individual someone who just wants to code? Or is the individual one who is always addressing his or her code for maintainability and pursuing perfect in that regard?

I have seen projects built by people who coded for a dozen years and never got to the point of actually thinking hard about design and maintainability. I have even been stuck in the nightmarish position of maintaining such code (and of course deciding to refactor with a chain saw!).

Again a lot of it is a question of priorities and, I hate to say it, ego. One has to both have an ego enough to question prevailing wisdom but have a small enough one to understand that one's coding style is never perfect. Such individuals are rare, in my experience.


Yup, you are right. Attitude is key to becoming a) (along with a basic level of aptitude, obviously). And, few people have the necessary self awareness.

Attitude is exactly what companies look for when they hire people with less experience. Even for more advanced programmers in a sense it is essential because you never stop learning. This is why there is some bias towards younger people as they are supposed to be more willing to learn.

But, as with any behavior, attitude becomes less necessary if a clearly defined system for mentoring/acquiring the necessary mental models is in place. Someone who graduates from a top school and ends up working at a company where a) types mentor new hires has to try significantly less than someone who graduates from a less well known school and has to figure out some way to learn from a) types.

Btw, the way a lot of the best companies bypass the HR problem is they hire based on employee recommendations. This is another contributing factor to 'talent shortage'. There is a hiring channel at any company that is much better at recognizing potential - existing employees. The high effectiveness and limited reach of this channel adds to perceived 'talent shortage'.


I would say it is at least as essential for advanced programmers.

I have worked with a lot of programmers and I find you can basically throw advanced programmers into three groups:

1) Those who think about and figure out how to write maintainable code (these are a small minority btw!)

2) Those who believe that writing maintainable code is a matter of following coding conventions they are comfortable with, and

3) Those who just want to get stuff done.

I think that #3 will only make competent maintenance programmers. You do not want to be stuck maintaining a major app one of them built. #2 will be fine at extending existing frameworks once they become comfortable with them, but #1 are the ones who can create new framework code and make it work.

As for mentoring that's key (and was for my own development as a programmer and software engineer) but many people just never "get it" even with all the mentoring in the world. Either they are not listening or they are not drawing the right messages from it. This is tough because in order to get to #1, you have to be willing to question what your mentor says. If you mechanically follow it, you end up in the second category.


My experience has shown that there is one more category - #1(creates frameworks) + #3(gets stuff done). In early stage startups, this is the kind of person you want. In big companies, usually #1 types are ideal.

Regardless, it does suck to have to maintain/extend apps written by #3.


If everyone wants the top 1% then there is a shortage by definition :D.


The difference in these scenarios isn't really luck; sure, Norman has a bit of a head start. But John shows almost no interest. He picked a major, but that's about it. "Talent" may not mean exactly what people are talking about in this context, since interest in coding and a desire to learn about computers are just as important as natural ability.

You can't say that the person who just goes to class is going to do as good of a job as the person who completes side projects, learns on their own, etc.


What happens once a person encounters programming is a different story. I tried, with seemingly mixed success, to portray Jon as someone who is indeed interested in coding - enough to try stuff on his own, and certainly not on a "just to get by" basis - but who did not discover this interest until he picked his major (arbitrarily, perhaps) and actually tried it. Adjusted for age difference, Jon is about as excited about programming as Norman was, but encountered it much later. I think there are many reasons why one would or would not encounter programming at a younger age AND in a manner that excites him (parents, friend circle, alternative entertainment available, neighbourhood, school/teachers, etc). In aggregate, they come down to luck.


I'd disagree, mostly because I know a "Jon" who was actually interested in programming, and he's gone pretty far already (we graduated a month ago). Despite my 7-8 year head start, we're in pretty similar positions.


I guess one thing that irks me a bit about the article is that it is so employment centric, and yet the logic one should draw from the comparison is to break out of that way of thinking. After all the first guy with years of experience didn't get them on the job.

The moral of the story I would take from it is that if you want to program make a name for yourself, and do so without regard to your employment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: