Hacker News new | ask | show | jobs
by lawn 2532 days ago
One interesting twist is that some problems are completely intractable for most programmers. I mean that they cannot produce a working solution no matter how much time or effort they use, or if they do it's so riddled with bugs it's practically useless.

Thus it follows that for certain tasks there are "∞x" programmers. Therefore there are absolutely "10x" programmers as well, which fits in with my subjective experience.

Certainly domain knowledge can play a very big role, but there are also rare individuals that seem to be much more productive no matter the task.

2 comments

I mean that they cannot produce a working solution no matter how much time or effort they use

Of course, but they don't represent the middle of the distribution. When people speak of the myth of the "10x programmer", that claim is meaningless if they can hold the reference productivity all the way to the far left of the distribution.

Any meaningful claim of "10x programmers" needs to be measured against the mean or median of the distribution - the so-called "average programmer". How many non-dysfunctional "10x programmers" who don't create messes for others genuinely exist?

>but they don't represent the middle of the distribution

Really? I don't think most middle-of-the-road engineers, given certain requirements, could come up with a working solution in any reasonable amount of time. For example if you just told an engineer "Implement a basic server that can execute queries based on this language spec, where you upload tables as immutable tab-separated text files" I'd guess only the top 5% of engineers could get something working in less than a month.

I don't think that executing tasks like this is something that innately only some small x% of engineers can do. For example, almost all engineers will lack at least some of the skills needed to complete any sufficiently large task: best practices for translating a query to a query plan, how to do efficient Ser-De, what data structures to use to implement the data, etc.

But most engineers lack the meta-skills or traits needed to complete the task. For example, would they first look at how basic SQL implementations and toy projects work? Look up some of the theory of RDBMS? Would they know how to write good tests, good class structures that don't require refactoring in 2 weeks as they understand more portions of the problem. Would they try to roll their own query parser or use a standardized tool like antlr?

It's certainly task-dependent at least to some extent. If the task at hand is to fix a zillion spelling errors in the UI, there is certainly no 10x variance in programmer's ability (there might be a big variance in motivation though, and individual performance is a product of motivation and ability).