there is no talent shortage
Silicon Valley – and the tech world at large – like to complain about a shortage of programmers. Everyone wants the top 1% of developers and there just isn’t enough “talent” to go around. It’s a talent shortage, and there’s nothing anyone can do about it. Big companies poach each other, startups poach big companies, salaries rise, and if you’re a (preferably-young) developer with some years of experience and a good portfolio then you’ve got it made.
Wait… a (preferably young) developer with experience and a portfolio? Like, perhaps, Norman, the junior at Berkeley who’s been programming since he was 12, wrote a 3-D game in C++ at 16, started two companies, and wrote his own operating system as a summer project after first year? That’s certainly the kind of person every company is looking for.
Is that really the definition of “talent”?
A quick look (define: talent) gives us a dictionary definition. Talent: natural aptitude or skill, or a person possessing such aptitude or skill. It’s doubtless that Norman has talent. But what about Jon, his classmate? John does quite well in his classes, likes programming, and has attempted, but never quite finished, a couple of small projects on the side. He can’t quite compete with people like Norman, but he’s ahead of 80-90% of the class. Sure, he seems employable enough to work at a bank or something, but would many self-respecting high-tech companies give him a chance at a genuine programming gig? Not too many – the companies would prefer to hold out for people like Norman or, if that fails, to poach a more experienced and slightly older developer from a competitor. But here’s the difference: 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.
What’s the difference here? The difference is that Norman happened to encounter programing in a way that made him realize he liked it very early on. John didn’t. The reason? Well… there are a variety of factors, but much of the difference can be attributed to luck. So if we’re looking for developers of Norman’s caliber, it’s not a talent shortage. It’s a luck shortage. And that’s hardly unique to the tech industry.