3 ms·
There are 10x programmers. A lot of people hate to hear this, but get over it. Let's take something that's very controversy in the tech world, white boarding.
by segmondy 7y ago
There are 10x programmers. A lot of people hate to hear this, but get over it.
Let's take something that's very controversy in the tech world, white boarding. Why do many programmers hate it and are not good at it? Sure, you can claim it's lack of practice. No problem. But guess what? Does that can do it and do it well are more than 1x programmers. For the sake of argument, let's call them a mere 2x. What does it take to whiteboard code? It means you need to be able to understand the problem, clarify requirement, understand the constraint, solve the problem a bit mentally before writing code, write the code, explain your thought process, improve the code, consider multiple solutions, perform algorithm analysis in terms of performance, and you do all this in 15-40 minutes.
It's not that most programmer's won't, most programmers can't with their current skill sets. Perhaps they can learn how to, but they refuse to. Doing the necessary drills to be able to do those shouldn't be underestimated, it makes you an all around better programmer.
With that said, there's a big difference between "programming" and "application development" A great programmer could be a terrible application developer, a mediocre programmer could be a great app developer. Application development and shipping software is more than code artifact it's about collaboration with teams, writing great documentations, user documentation, installation documents, operation docs. It's about great UI, great UX, designing the code to be easily extensible and readable. There's a lot to it. So you might be a 1x programmer, but make up for it in other areas. This also explains why some 10x programmers don't produce 10x the output because they are not solving algorithm challenge everyday, but having to deal with the vague human oriented requirements.
There are 10x programmers, they can make a team much better if they understand their strengths and weaknesses and don't think they are gods. There are 10x programmers who are also very strong in design and other areas and it's amazing to watch them work.
It's no myth, they are out there. The very thought of them makes some of us feel less capable, get over it. You can increase your output if you consciously work to be better, and this is not about being a specialist in a specific domain area.
A good test of such thing is take a 10x programmer, a 1x programmer, give them a language they have never worked in, put them in a new domain. The difference is clear. Have you ever seen such folks? Yup, we have, they are folks they moved to new domains, they were writing C code yesterday and now writing go lang and contributing to k8s, or they were writing java code yesterday and today writing C++ code and contributing heavily in the field of ML.
We have been been fortunate to know some of them due to this very site. I'm not going to name them, it's been done multiple times. But I'm sure HN can name at least 50 such individuals.
- ozim 7y agoThis whole argument does not take into account what article and research was about. It is not about documentation, UI/UX, collaboration, and other skills. Research was only about programming as in "here is specification for task, code it, please". That is what word "programmer" also conveys. Such person should not be concerned about making user experience better, that is role of a designer. Such person should not be concerned about designing code to be extensible, that is role of a software architect. What you describe is a one man orchestra, which in reality everyone wants because no one wants to pay for architects, designers, managers, separately. In the end there are folks who can work on multiple things at the same time like ML and some k8s, I do not believe you can describe what they are doing simply as "programming" or them as just "programmers". Yes they are programmers or coders but there is much more to it. Exactly like patio11 was writing in "Don't Call Yourself A Programmer, And Other Career Advice", because you will be seen just as a code monkey and not as that "one man orchestra". My main argument is we should stick to the definition.