Totally agree. You really have to work with a 10x programmer to understand that it is not about the flow or work methods.
It's kind of funny that everybody in Hacker News knows that they themselves are easily 10x more productive than the bad programmers they have encountered in their careers, but still can't imagine that there can be a similar gap between them and the best.
Just think about experience alone (which is just one aspect of the 10x difference) and you can easily spot tasks where 10x-50x productivity differences are possible even between smart people. E.g. Imagine that you are faced with a task that essentially requires you to write a small compiler, but that is not obvious from the outset. If you are a smart and productive web dev, but you have never studied or written compilers, you can easily spend a few weeks with the task until you realize that you need to study compiler tech and write one to solve problem well. You can easily spend a few months with the whole endeavor. On the otherhand, an experienced 10x dev who has written many mini-compilers for DSLs in his career, can spot the need immediately and implement it in a few days. And on the otherhand, a less gifted individual can spend two years with the problem in his safe corporate job and never solve the problem. Here you already have infinite difference in the productivity between the best and the worst and easily 25x productivity between smart web dev and the experienced guy.
Now, you can argue that was just one specific problem, but one commonality of 10x programmers is that they have done a lot of different kind of programming, which makes them faster to try even more stuff so their experience is accumulating even faster.
Corporate jobs can turn people into reliable adders (1.0 - 1.3 | scale here: http://michaelochurch.wordpress.com/2012/01/26/the-trajector... ) but almost never provide the autonomy that would enable an engineer to become actually good (1.5+) because that requires multiplier-scale insights: "investment" contributions that make future work simpler, more beautiful, easier to perform. Few companies are willing to pay for that stuff. (So they end up paying more, because those multiplier needs happen emergently, anyway, and are poorly performed. http://michaelochurch.wordpress.com/2012/12/14/the-unbearabl... )
I think one of the major problems is that software engineers want rationality and fairness, but you can't "play nice" in most corporate environments and actually learn anything. Unless you work in a rare type of company (cf. Valve) you have to either get political and clobber the project allocation game into submission, or steal away large amounts of time to learn stuff on your own.
> one commonality of 10x programmers is that they have done a lot of different kind of programming
That is exactly what I was thinking about. What makes me faster than less able programmers often is previous experience on related topics and sheer variety of problems already solved.
When the hints combine, paths open and the boost can easily be 10x or more. This is a large part of what makes me enjoy programming. Nailing it fast.
Comments
Totally agree. You really have to work with a 10x programmer to understand that it is not about the flow or work methods.
It's kind of funny that everybody in Hacker News knows that they themselves are easily 10x more productive than the bad programmers they have encountered in their careers, but still can't imagine that there can be a similar gap between them and the best.
Just think about experience alone (which is just one aspect of the 10x difference) and you can easily spot tasks where 10x-50x productivity differences are possible even between smart people. E.g. Imagine that you are faced with a task that essentially requires you to write a small compiler, but that is not obvious from the outset. If you are a smart and productive web dev, but you have never studied or written compilers, you can easily spend a few weeks with the task until you realize that you need to study compiler tech and write one to solve problem well. You can easily spend a few months with the whole endeavor. On the otherhand, an experienced 10x dev who has written many mini-compilers for DSLs in his career, can spot the need immediately and implement it in a few days. And on the otherhand, a less gifted individual can spend two years with the problem in his safe corporate job and never solve the problem. Here you already have infinite difference in the productivity between the best and the worst and easily 25x productivity between smart web dev and the experienced guy.
Now, you can argue that was just one specific problem, but one commonality of 10x programmers is that they have done a lot of different kind of programming, which makes them faster to try even more stuff so their experience is accumulating even faster.
This is an excellent comment.
Corporate jobs can turn people into reliable adders (1.0 - 1.3 | scale here: http://michaelochurch.wordpress.com/2012/01/26/the-trajector... ) but almost never provide the autonomy that would enable an engineer to become actually good (1.5+) because that requires multiplier-scale insights: "investment" contributions that make future work simpler, more beautiful, easier to perform. Few companies are willing to pay for that stuff. (So they end up paying more, because those multiplier needs happen emergently, anyway, and are poorly performed. http://michaelochurch.wordpress.com/2012/12/14/the-unbearabl... )
I think one of the major problems is that software engineers want rationality and fairness, but you can't "play nice" in most corporate environments and actually learn anything. Unless you work in a rare type of company (cf. Valve) you have to either get political and clobber the project allocation game into submission, or steal away large amounts of time to learn stuff on your own.
> one commonality of 10x programmers is that they have done a lot of different kind of programming
That is exactly what I was thinking about. What makes me faster than less able programmers often is previous experience on related topics and sheer variety of problems already solved.
When the hints combine, paths open and the boost can easily be 10x or more. This is a large part of what makes me enjoy programming. Nailing it fast.