6 ms·
The concept of the 10x programmer seems to have been drifted from its original meaning. It isn't that there's a coder that is 10x better than a good coder. It
by gilbetron 7y ago
The concept of the 10x programmer seems to have been drifted from its original meaning. It isn't that there's a coder that is 10x better than a good coder. It is that a lot of people are really bad at their jobs, and a coder that thinks and learns about problems can be far better than those people. It comes from terrible "corporate drone" software developers in the 80s and 90s - the ones that would takes weeks to developer simple routines. Bring in someone that loves software dev, and they appear magical.
Today, with Google and Stack Overflow, that gap has diminished, but there is definitely people still way better than "average" developers. However, if you have someone that keeps their skills sharp and their problem solving desire sharper, you won't fine anyone 10x - maybe 2 or 3x, at best.
- starpilot 7y agoYeah, I can understand the "10x programmer" back when fizzbuzz was still being asked of CS graduates. Not anymore.
- WrtCdEvrydy 7y agoTo be honest, I didn't know that one... I just did basic double division the first time I saw it (into a float and compared it against an int casted back to a float). Someone in the interview room asked my if I remembered modulo and I was like 'oh yea, it gives you the remainder'
- karatestomp 7y agoThat operator's one I've used more on puzzles than in real life, where I've used it few enough times in 15ish years that I could count them on one hand. I think it only sticks in my mind because, for whatever reason, it was taught early and with some emphasis in a Perl book I read when I was starting out. If not for that I could well fail to come up with a reasonably "correct" solution to FizzBuzz.
- khrbrt 7y agoThat's honestly more impressive for creativity sake! FizzBuzz is just an example of the general problem of "given a set of things, do something to a subset of those things" which comes up often in real world settings. If you knew enough to set up a loop and apply some conditional inside of it, then you passed better than some of the programmers I've worked with.
- headmelted 7y agoAgreed. I've never encountered someone that I think is genuinely a 10x programmer. I've worked with a few people that thought I was one, which I'm most certainly not, and I've explained that to them. I've encountered a lot of what I would call .2x programmers though. As you've said, there are a lot of people that are really bad at the job. It's not a slight either - there are a lot of people doing this job that really don't care for it at all. It's hard to be good at a job you don't enjoy. Especially if life forces you to do it 40+ hours per week.
- eteos 7y agoIf youve encountered a lot of 0.2x, then the 2x developer is the 10x developer you are looking for!
- tekkk 7y agoI myself have noticed that some people just have natural cognitive abilities that far surpass any regular person's abilities, and I guess that's generally a prerequisite for making any new ground-breaking discoveries or libraries. But still, one person can only know/do as much as one person can, and while having very great skills in some narrow domain, other people (or here programmers) might be better versed in other skills than this "10x" person. Thus the 10x depends very much on the task. What I have come to appreciate more over the years is the ability to communicate and make understandable code that other people can build upon. I think it's our greatest strength to lean on the collective ability of the group instead of depending on some person's individual skill. And in the end the "10x" is merely a subjective measure, that very much depends upon the people you are comparing to. With a team of 10x programmers wouldn't everyone be then only 1x?
- saagarjha 7y ago> I've never encountered someone that I think is genuinely a 10x programmer. I have. (Interestingly, some of these people knew this and had a surprising lack of modesty about it as well…) Usually I think it boils down to being able to have the experience to consistently guess right on things, come up with new ideas, and not get tangled in the weeds: most of them are smart, but not so smart that you’re just lost when talking to them.
- logicallee 7y agoIt's pretty obvious that there are coders who can do the work of - all of the work of, and better than - a team of 50 talented programmers. For example when Linus wrote git he singlehandedly outprogrammed every team of version control vendors. He was a 50x programmer. (If not more.) This is a real literal example without exaggeration.
- gilbetron 7y agoThat's not an example of a 50x programmer, though. That's coming up with a truly great idea. If there is a new device that needs a driver for Linux, I can guarantee that Linus can't implement it 50x faster than a talented Linux driver developer. I think even Linus himself would agree. He's not a magical creature capable of 50x faster software development, over, say, Junio Hamano. As Linus himself said, "Junio really should get pretty much all the credit for Git—I started it, and I’ll take credit for the design, but as a project, Junio is the person who has maintained it and made it be such a pleasant tool to use.” This is precisely where the 10x Myth comes from. Linus is not 10x a talented developer, productivity-wise. He is 1000x the value of some talented developers, because he figures out great things to make. But the "10x developer" is about productivity.
- Gunax 7y agoI think at this point we are debating the semantics of '10x programmer'. I would say that coming up with good designs and using proper algorithms is what makes people 10x. I suppose I am saying that if Linus/Junio/whoever can make git in 6 months whereas a regular dev would take 5 years, then he is a 10x--it doesn't matter why he is 10x faster.
- ellius 7y agoIt really isn't that surprising either. People want to write off the notion that some people are massively better than others at solving problems, but it's completely obvious that's the case. Of course there are insane outliers like Claude Shannon or John von Neumann, but those were real people that existed, and it stands to reason there are people at smaller multipliers who are still much better than average.
- shepardrtc 7y ago> It comes from terrible "corporate drone" software developers in the 80s and 90s - the ones that would takes weeks to developer simple routines They still very much exist. My previous job was at a bank and these people filled it.
- WJW 7y agoCan confirm. Last week a PM was gushing to me it "only" took a week to implement a feature that was not much more than an extra if statement. This is not in a regulated industry either, just run of the mill web stuff.
- starpilot 7y agoI do tech at a non-tech company. Colleague has been doing Python for about 6 months. He can't do for-loops. His brain just doesn't get the concept (among others), I've never seen anything like it. Other guys make general computing mistakes like trying to type into a command prompt while another window is in focus, then messaging me saying "there was an error."
- Aeolun 7y ago> There was an error When I get these kinds of messages I just want to strangle the person on the other end. Cool, an error. What did you do to try and fix it? Or was your first step to contact me?! (hint: it is)
- hnews_account_1 7y agoThis is not at all comparable to that insane example you just gave, but a lot of people are just tool users in non tech companies. I know because I've seen it in finance. They're absolutely brilliant in their statistical concepts, but their programming skills leave a lot to be desired for because they don't have the background. For instance, when you move from C++ to Python, you kinda realise after a month or so that normal loops won't cut it for stuff like numpy arrays etc due to the huge overhead. I realised this personally because I knew how quick C++ was and I wondered why the same code in Python was so massively slow, and I read up online to understand it. Similarly in matlab, for loops are very fast but still inefficient. So now when I write code, I use inbuilt libraries as much as possible and in matlab, I make everything into a matrix operation so it is blazingly fast once I scale it to a million data points. My colleagues have no idea what that shit is. They'll know every step of a complicated algorithm and implement it simply using loops.
- api 7y ago> It comes from terrible "corporate drone" software developers in the 80s and 90s These definitely still exist.
- deleted 7y ago[deleted]
- PragmaticPulp 7y ago> It comes from terrible "corporate drone" software developers in the 80s and 90s - the ones that would takes weeks to developer simple routines. Ironically, a lot of the 0.1X engineers I've worked with in the 2010s were the most technically competent. Obsession with cutting-edge tools and being technically correct over shipping quickly can sink a person's productivity. They're the people leading the charge to rewrite the front-end in Vue after we already rewrote it in React when Angular fell out of style. Or rewriting the backend in Rust because Golang isn't trendy any more. Or refactoring the backend for months to increase test coverage from 93% to 95%. My personal indicator of a 10X programmer is someone who knows when and how to trade off technical debt against speed of execution. A brilliant engineer with all of the knowledge in the world can still sink a team by working on the wrong things all the time.
- meowface 7y ago>A brilliant engineer with all of the knowledge in the world can still sink a team by working on the wrong things all the time. From HN comments, I get the impression that this is a common problem at companies like Uber. Lots of smart engineers with great technical talent, but they spend all their time making pet apps and services which satiate their interest in and excitement towards programming/engineering, but which have not much direct relation to the actual product or any other ultimate business objectives. If there is any relation, it's indirection upon indirection. I imagine this is probably because the core product is so narrowly-focused and basically "done" that they have to look for any other way to spend their time and energy without getting bored and demotivated. I would guess this happens at a lot of companies with single, simple (from the user's perspective), narrowly-focused products, like Twitter.
- ClumsyPilot 7y agoI think that's often overlooked, good judgement does matter, and probably comes with experience.
- DonHopkins 7y agoI once worked with a -2X engineer, whose code was so bad that it took twice as long for a 1X engineer to undo the damage he wrought.
- dangus 7y agoThe other factor is a lack of personal life boundaries. The 10x engineers that I’ve interacted with can be found working on nights and weekends because they enjoy it and have nothing better to do. Working those nights and weekends without coworker interruption also means that they get to learn more things freely rather than being interrupted. As a result they tend to be highly productive, but I’d argue that it could be seen as unfair to the rest of the employees who want to live a balanced life.
- Aeolun 7y agoI don't think that is unfair. It’s perfectly acceptable to be a 3x developer. What bothers me is the people that are happy to be a <1 developer. Or even a <0 developer, whose benefit to the team is net negative.
- rat9988 7y ago>What bothers me is the people that are happy to be a <1 developer. We can't all be above average. So we are either all 1 developper, or some of us are bound to be less.
- Aeolun 7y agoFair enough, but given the current ecosystem <1 still means something. If it ever gets to the point where everyone is floating somewhere between 0.9 and 1.1, I’ll revise my statement.
- kvb 7y agoBut we can all aspire to be a >1 developer, even if we're not one currently. I don't necessarily think that contentment with being below average is universally bad (maybe it's perfectly rational given one's preferences for leisure vs. work, for example), but I'd hope that most <1 developers are juniors who hope to improve over time.
- blub 7y agoIt's unfair if they're normal employees, but fine if they're contractors/have their own company. When they're spending all their working hours on one topic they're taking a huge personal sacrifice which is invisible to their employer while at the same time raising the expectations towards their colleagues. If there's for example two such maniacs in a team, the rest can say goodbye to promotions and raises even if they're actually just as good but don't sacrifice their life at the altar of programming.
- Justsignedup 7y agoTo add: The most effective developers I see are those who ask the right questions. They may have lesser skills than other developers, they may be younger, less experienced, not as smart, etc. However they always produce more. Not because they can type faster, or algo better, but because they know how to leverage every aspect of their team from knowledge sharing, to knowing when to ask about refining requirements, etc. They think about the whole problem, not just the slice given to them. Of course there is always a spot for people who are smart enough to algo the shit out of anything, just not as team leads.
- duaoebg 7y agoI'm easily 10x a good programmer, probably more. It's all I do, it's all I'll ever do. I'm not a balanced person and I'm ok with that.
- corporateslave5 7y agoYeah I can commiserate. Aside from going out here and there, social outings, I’m pretty much always programming or reading about programming. I have zero other hobbies and don’t want any.