In theory a 10x developer is a programmer who is considered to be 10 times better than their peers.
The whole "10 times better" part cracks me up - I'm not really sure how you quantify "10x better". Does that mean the developer completes 10 times more unit tests than their peers? 10 times more comments? 10 times more code reviews? Drinking 10 times more coffee than every other game developer working triple overtime on a rushed AAA video-game? And why even stop at "10x"? Why not skip the 10x engineers and go straight for the 100x ones? Quantifying this thing gets absurd quickly.
I'm unsure of the origin of this myth, and I'm not keen on looking into it much anyway - I feel like during my pursuit of tracing this thing back to its roots I would just unearth even more layers of cringe. Unfortunately, people keep pushing the narrative further despite its outlandish nature for a simple reason: it's appealing. What programmer out there wouldn't want to be part of an exclusive "10x club"? Content creators capitalize on this and promise that watching their videos will answer your burning question: "how do I become a 10x developer?". Which is a bit of a shame, because many of these content creators were, or still are, developers themselves, and have to realize the bogus nature of this.
Youtubers push the narrative by telling stories of devs who've accomplished seemingly superhuman engineering feats and talk as if the developers behind them are imbued with some mystical hard to attain skillset. These stories usually leave out the parts that talk about the countless hours of coding, trial and error, and learning the developers invested into perfecting their craft before they were able to pull off large-scale projects like the ones talked about in the videos.
Years ago, I built a digital signage application for a client that was synchronized across several of their office locations around New England. They wanted something that could be maintained by Java developers. Up until that point, I hadn't written a single line of code in Java. I familiarized myself with Java and had a prototype done in a little less than 2 months. It pulled data from a SQL server, featured images, played videos (utilizing VLC via JNI), and had a JSP-based control panel HR and Marketing leaders used to manage and refresh content. I recall that it was between 20,000 and 30,000 lines of code - not including the code in 3rd party libraries I used like JFreeChart and FTPClient in Apache Commons.
If my story was dramatized into a 10x dev motivational video, the title would be: "Programmer who never coded before learns Java and builds digital signange app from scratch in 8 weeks". The video would embellish and exaggerate every detail about the development process - all the while ignoring important details about my programming journey: like the more than 2 decades of experience I had coding and all the knowledge I was able to recycle and carry over into the digital signage app project. Not only did I have some intermediate experience with C++ experience (so Java syntax was easier to pick up due to similarities between the two languages), but also the development methodologies, tools, and time management habits I had adopted through the years were extremely helpful in forming a strong foundation for me to build off of.
The biggest problem with this 10x mentality? It can lead to a polarizing mindset.
Devs can be led to believe that they either "have it" or they "don't". They may think exceptional programmers have some "X factor" that enables them to pull off the development feats they do. If they think they "don't have it" they might come to the conclusion that they should just give up before they even try. It's beneficial and can even be a good motivating factor to aspire to being an amazing programmer, but you're going to get exhausted if you try to meet that expectation too quickly (especially for devs starting out in programming).
On the other extreme side of the spectrum, someone might recognize in themselves a natural affinity to programming and assume they possess the magic "10x" trait - and develop an attitude of laziness and complacency: in their mind - there's nothing more they need to work at or improve to get better at. Not only this - but when people make this their entire identify they get frustrated when their "elite status" gets challenged.
I remember growing up there was a kid in my hometown that by all accounts certainly would have been what most people today would consider 10x: even as early as elementary school he was pretty good at C and Python. Once high school rolled around, some other programmers started to surpass him. This frustrated him, and he decided the best course of action was to move to another continent. Not another town or another state, but another continent. He believed (for some reason) that he wouldn't get challenged as much where he was going.
According to people from his inner circle, the relocation apparently didn't mitigate the issue for him. I guess he found himself going up against even greater competition at his new home, and went back to school with the new goal of being a "literary scholar" - a new field he was sure that, this time - he would definitely be better than the majority of his peers at. This might have been a rare coping mechanism... and in a way, sadly also a little comical, but its basically a disaster story about the "10x" mentality running amuck before the 10x term was even a thing.
It's impossible to find... or be, a "10x dev" because it's impossible to exactly measure programming skills in some sort of numerical fashion. There are, however, exceptional developers - devs who are extremely productive and know how to get stuff done.
Exceptional developers are creative and resourceful. They don't let a lack of resources or manpower get in the way: when they don't have what they need - they build what they need. If they're hindered by the tools or processes that were implemented before them, they'll code new scripts and tools themselves to speed those processes up.
It's not a dev who has all the answers - it's someone who knows how to find all the answers. Whenever I've helped to screen developers in hiring processes, I personally never cared about candidates that stumbled a bit remembering the proper syntax during a coding assessment - we all have the occasional mental block. What I did care about was their ability to ask good questions and synthesize creative solutions, even if it resulted in pseudocode that didn't compile.
Extremely productive coders are those who think before diving into coding - they've adopted a "work smarter, not harder" approach to problem solving. They've completed enough projects to know that its better to spend a little more time upfront mapping things out, white-boarding components, and doing their best to foresee and tackle edge cases before they're even encountered in the testing phases.
Highly productive developers have also perfected a balance between impatience and patience. They'll persevere longer than most to solve a problem - but also know when its time to pivot to a new strategy when one particular path to solving a problem isn't yielding fruitful results.
Stop asking yourself, "How do I become a 10x developer?". Focus on making valuable contributions and get better and better at shipping them in an efficient manner. Learn and diversify your skill set and find new ways to solve problems. Tune out the noise and stop concerning yourself with trying to live up to fairy-tail expectations. Be competitive, but compete against yourself. Set the bar higher for yourself with each project.
If you're waiting to hire a "10x" developer - you should forget about it because they simply don't exist. Every so often an organization will get lucky and stumble upon someone they deem worthy of the "10x" title and craft an interview template to detect more purple squirrels. Ironically, instead of finding more gifted developers, they'll just find more people who are good at gaming and passing those specific tests.
Hard-working, talented, productive, and resourceful developers, do exist, and they're everywhere - you just have to know the right ways to find them. The majority of modern day interview processes aren't conducted in a way conducive to finding such talented developers. But, well.... that's a topic that deserves a separate post on its own.