I sometimes try to help normals relate to me by asking, "You know Sheldon Cooper from Big Bang Theory? I'm like a stupid, slighty-less-social-idiot Sheldon Cooper."
I identify with Dr. Cooper. (BTW it sucks being like that. Don't ever think we do it because we like it. There are a few perks but it mostly sucks. Also, it's like living in "Idiocracy". I can't watch that movie because it's too painful. That's my life. From my point of view y'all are running around pouring Gatorade on the plants talkin bout "It's got lectrolites!" It's getting seriously scary now IRL too: where the fuck are all the fucking insects!? We should all be fucking terrified right now.)
Anyhow, from my POV the "average" programmers should GTFO and stop peeing in the pool. I would fire 90% of working programmers. They're not needed and actively counter-productive.
Also, FP is coming on stronger today than ever before. You are in actual fact just wrong.
This is the theory that the elite are so productive that they can replace say 10 non-elites. The main problem with this is that most problems to be automated (or upgraded) are not well-defined. It takes iterative interaction with analysts, users, testers etc., and this is where probably 2/3 of the effort takes place. Communication and teamwork is more of a bottleneck than raw coding, and the Sheldon Cooper types rarely do well on that.
If the requirements were clearly defined, the 10x-Elite Theory would possibly work in practice. But it's a rare day in May one gets a clearly-defined specification that doesn't shift around a lot.
If you could find a domain having clearly-defined specs, then you could implement that 10x Elite Theory and crush the competition by cranking out software for a fraction of the traditional competitions' price. For example, make an office suite fully compatible with MS-Office, and charge 1/2 of what Microsoft does. You'd be a billionaire. (Past attempts were not sufficiently compatible, which may be a tall order because one has to mirror bugs in MS's software to be so.)
> This is the theory that the elite are so productive that they can replace say 10 non-elites.
No no no, I'm saying that the non-elites are counter-productive, that they contribute negative productivity.
(FWIW, I've met at least one "10x" in real life. He made his mark out of Uni by co-founding a company that made their own self-configuring ("Autonomous OS") box that really worked. Sold to IBM.)
> If you could find a domain having clearly-defined specs, then you could implement that 10x Elite Theory and crush the competition by cranking out software for a fraction of the traditional competitions' price.
People do that. Have you heard of Kdb? https://en.wikipedia.org/wiki/Kdb%2B
Now check out arcfide's "AMA: Explaining my 750 line compiler+runtime designed to GPU self-host APL" https://news.ycombinator.com/item?id=13797797
Reflect that that was two years ago.
Try to imagine what the world would be like if all core software was written by ~100 people like Arthur Whitney or arcfide.
The whole "Trusted Compute Base" could fit in ~100 pages of code or less. Crystalline mathematical purity...
The rest of us would be writing macros. Sad? Maybe. But the machines would work.
You may have concrete examples of that, but I couldn't agree based on my own perspective/experience. I've worked on a team with an elite programmer (in terms of actual 10x productivity) for nearly 3 years now. I know they're not all the same, but this guy isn't particularly sophisticated or cerebral in his approach; in fact, he wouldn't want to take on architectural concerns, refactoring, or really complex problems - I and another dev take care of that. He's just incredibly productive, by any measure you'd like to use -- LOC contributed, modules written, features implemented, issues closed. I've sometimes wondered if he's a front for an entire team behind him.
That doesn't mean the rest of us aren't worth having on the team. We are definitely contributing positively. In fact, he couldn't work anywhere close to the rate he does if he had to take care of the stuff the rest of us do.
The kind of people I'm talking about are not necessarily fast and they tend to leverage other people's abilities rather than shut them out.
Like Fabrice Bellard: https://en.wikipedia.org/wiki/Fabrice_Bellard
Ridiculously sharp guy, and his work has enabled so much other stuff and so many other people, eh?
- - - -
No team of ten people could do what arcfide does, eh? It would all get bogged down in intercommunication, etc. We pay a price for programming with sub-elite programmers. Metaphorically, I'm trying to say that teams dragging stone blocks are hindering the adoption of the wheel. (I'm not trying to make stone-block-draggers feel bad, FWIW.)