So what is it that causes this big gulf in productivity? I know that as a programmer I have all sorts of internal and external obstacles to just sitting down and churning out entire projects, let alone something useful with clever and high-quality code. Is a 10x rockstar just somebody who's been able to eliminate most of their obstacles, and has some amount of talent left over to solve problems with?
'Hero Worship' is about elevating someone to a categorically higher level. This can lead to thinking you could never be as good, taking everything they say as gospel, defending even their poor opinions, etc.
If we -worship- 10x developers, you can maybe better see how with the emphasis on that word things can get pretty toxic pretty quick. For example, I think many would agree HR disputes should not take talent level as an input, but if one of those people isn't even a mortal...
---
None of this is necessary to have a role model, or precludes celebrating someone for doing excellent work as is this case.
would anyone look at Usain Bolt and say that he's mortal and just like everyone else? Why is it so difficult to imagine that there are people who are just so much better than you, that you (an average person) can never catch up?
Most people have no trouble understanding that they cannot reach the level of Usain Bolt. Why should programming be any different from sprinting in this case?
I would argue that innate talent is strongly linked to genetics. In the case of coding, I think intelligence plays a large role.
I do not believe there is much of a spread in intelligence based on genetics. Short of disability, and given the same consistency, training, and opportunities I seriously doubt that anything even remotely close to a 10x gap would be seen.
I am certainly not keen on the science of the topic though, biology is certainly my worst subject. But I have heard of no research showing such a divide.
If you put Manchester City up against a team consisting of average people who are fit and know how to play soccer it's pretty easy to see Manchester City scoring 10x the goals - at least.
2) If quantified the performance gap between me (unfit, untrained) and Bolt will be smaller than the gap between me (practised programmer) and Bellard.
This is quite the assumption. Bolt is the fastest man we've ever seen. You actually think you're more closely competitive to him than Bellard???
Obviously that’s silly because the physical result is approached asymptotically. World class athletes train and compete their whole lives of a fractional difference in result. Clearly the output by the human brain is not constrained by something asymptotic as what the human body can physically be trained to accomplish.
Something unusual about Bellard is the breadth of his knowledge. There are probably a fair few who can write a fast deterministic low level code optimized neural network library. A decent number who can write an autodiff library but few who can do both. Once that's done, I daresay that's the hard part.
Given such a library, implementing an LSTM or transformer model and combining it with Adaptive Modeling/incremental learning of data statistics using a neural network to feed an Arithmetic Coder is something that is within the reach of many more.
In summary, a 10x developer is not 10x smarter or 10x more skilled, they just waste less time investigating unproductive paths and are maybe 1% less likely to take wrong turns. This ends up making a huge difference for large complex tasks.
One thing I’ve noticed is that he chooses to apply himself to many different subfields of development, but always using the same technologies e.g. all his work seems to be in either C or JavaScript.
I’ve only worked in a couple of subfields but have seriously used at least 7 different languages, plus countless libraries. Compared to Bellard I’ve probably spent (wasted?) a large amount of time trying to choose, and then learn, the “best” tool for each job.
Surely his intellectual life is diverse
There are other programmers at his level, or with the potential to be at his level, splattered all over the industry.
Unfortunately, they ‘waste’ their time on their day job stuff, often having to do things badly because technical approaches are prescribed by others etc.
Many of us meet truly great programmers, but so few of them actually demonstrate and express it. They just grin when asked to implement micro services and add some banal features to the website etc.