In my six years of programming career I've often heard the term "10x programmer" being used to refer to mythical beings who can do ten times the work compared to "normal programmer" in the same amount of time.
I've often imagined this breed of programmers churning out multitude of quality code like a rocket propelling out of earth's atmosphere. "Can I ever reach that level of proficiency?", I often wondered.
Every programmer has their own domain of expertise and labeling a programmer 0.1x or 10x based on a particular skill set is not wise in my opinion. A positive environment can make 1x programmer deliver 10x result; and a negative environment will make 10x programmer deliver 1x result. Companies aiming to hire 10x programmers (aka "rock stars") should instead aim at making their existing programmers 10x more productive by providing them with a positive and healthy environment, one that encourages code review among peers, instead of code shaming.
Self-proclaimed 10x programmers have a tendency to undermine their peers by making them feel like their contributions don’t really count. By doing this they are reducing the overall efficiency of the team instead of increasing it.
I do believe that there are a few gifted programmers – Jeff Dean and Sanjay Ghemawat for example – who are prolific in their respective fields. But I've come to a realization that it takes years of blood, sweat, and tears to attain that level of expertise. They are 10x programmers because they make their peers 10x more productive by encouraging them to produce their life's best work. They give their mentees healthy work environment by actively clearing their obstacles.
Hoping to be a 10x programmer was a noble endeavor at first, but it soon filled me with anxiety and created a sense of pointless competition with my peers. I instead chose to be a better programmer than I was yesterday, and this turned out to be a much more fulfilling goal. I am a 1x programmer, learning new things every day, and trying to help my peers as best as I can.