Ask HN: How can I become a 10X engineer?
16 comments
The definition of 10x is 10x the worst engineer, not 10x the average. (From Peoplesoft). Anyway, that aside:
It depends what you are measuring, but if you can figure out what is making your team inefficient - could be a technical, human or commercial problem, and solve it, then you are 10x in my opinion. Typing faster on VIM isn't what it's about.
It depends what you are measuring, but if you can figure out what is making your team inefficient - could be a technical, human or commercial problem, and solve it, then you are 10x in my opinion. Typing faster on VIM isn't what it's about.
Well, you could find someone that doesn't do any engineering and compare yourself to them. That'll do it :)
I kid, but seriously forget the hype. The way you get better at anything by any amount is usually a bit at a time, and the tricks are the same: plan, practice and optimise.
If you don't know where you're lacking then you'll only ever get better incidentally, so try and know where you're lacking. If you don't know what you want to get better at then you'll only be growing relevantly incidentally, so have a plan.
With plan and self-awareness in hand it's just practice, optimise, rinse and repeat: this works for just about everything.
For my mentality (and this isn't universally preferable), if you have to compare yourself to others, then pick comparators that you're always worse than. If you beat your comparators quickly pick new ones. Don't ever be "the best" because if you actually believe it, you won't be it for long.
I kid, but seriously forget the hype. The way you get better at anything by any amount is usually a bit at a time, and the tricks are the same: plan, practice and optimise.
If you don't know where you're lacking then you'll only ever get better incidentally, so try and know where you're lacking. If you don't know what you want to get better at then you'll only be growing relevantly incidentally, so have a plan.
With plan and self-awareness in hand it's just practice, optimise, rinse and repeat: this works for just about everything.
For my mentality (and this isn't universally preferable), if you have to compare yourself to others, then pick comparators that you're always worse than. If you beat your comparators quickly pick new ones. Don't ever be "the best" because if you actually believe it, you won't be it for long.
Make 10 other people 2X as productive!
What's your reason for wanting this? Do you want to be higher paid, have more choice in the work you do, be in charge of others, or something else?
Odds are there's a much better way to achieve whatever your goal is.
Odds are there's a much better way to achieve whatever your goal is.
Instead of focusing on being 10×, I like focusing on producing the same amount of value, with only 10% of the effort. Mathematically the same, but much more approachable and meaningful goal.
That means avoiding unnecessary features, not wasting time on dead ends, not wasting time on speed when speed doesn't matter, and so on and so forth.
Long version: https://codewithoutrules.com/2016/08/25/the-01x-programmer/
That means avoiding unnecessary features, not wasting time on dead ends, not wasting time on speed when speed doesn't matter, and so on and so forth.
Long version: https://codewithoutrules.com/2016/08/25/the-01x-programmer/
10X at producing code or 10X at producing value for you clients/company?
not sure but I'd say minimum requirements: know assembler, know C, know SQL, know Relational Design, know Network engineering learn how to read an RFC, know how a browser works. learn hardware engineering, build an Arduino for example. Then pick a field and keep going.
edit: oh and learn some maths, linear algebra, numerical maths, some calculus to start with
edit: oh and learn some maths, linear algebra, numerical maths, some calculus to start with
practice like a pro athlete. the common belief that you need 10k hours to master something is imo, applicable to a 10x dev. when you hit 10k, if it's only during work hours you've likely mastered whatever mattered to your manager/org in that time frame, but that is not always transferrable or valuable to a new manager/org; practice is though.
practice creates experience, and if you have the resolve to push yourself out of your comfort zone and learn to master new areas, you should find yourself able to do things quicker than people that aren't familiar with the problem domains, easily attaining a 10x output while not creating problems.
practice creates experience, and if you have the resolve to push yourself out of your comfort zone and learn to master new areas, you should find yourself able to do things quicker than people that aren't familiar with the problem domains, easily attaining a 10x output while not creating problems.
just some thoughts
Obviously step 1) is mastering all the fundamentals of CS. Once you know all the fundamentals of CS, master your particular stack so deeply that you can use them at will like a toolbox for any situation that presents itself. try to learn as many proglamgs as possible as they all teach you different ways of thinking.
Assuming you have a decent handle on more advanced ds+a I would say if you want to be a 10x engineer, you have to put in the effort to become 10x better than your peers/mentors and it just requires being handed problems you don't know how to do and then using all of your mental focus and all of your energy to get it done as fast as possible while also ensuring that its the shortest bit of code that could conceivably satisfy its specification. You can imitate this by doing random coding challenges online. They are fairly difficult at first but over time you pick up the little trickery here and there that sometimes gets in the way of properly understanding what the problem is truly asking.
Have the hunger to go the extra mile even if you're tired and keep devouring every bit of information you can get your hands on, and constantly be resynthisizing the whole of what you know into a coherent set of facts based on evidence. Instead of lazily re-using the same patterns over and over question everything and determine from 1st principles whether something makes sense or not.
Output needs to be 10x more than the best "non-10x engineer" to really count.
Makes me wonder how many 10X engineers does Google [claim] to have?
Obviously step 1) is mastering all the fundamentals of CS. Once you know all the fundamentals of CS, master your particular stack so deeply that you can use them at will like a toolbox for any situation that presents itself. try to learn as many proglamgs as possible as they all teach you different ways of thinking.
Assuming you have a decent handle on more advanced ds+a I would say if you want to be a 10x engineer, you have to put in the effort to become 10x better than your peers/mentors and it just requires being handed problems you don't know how to do and then using all of your mental focus and all of your energy to get it done as fast as possible while also ensuring that its the shortest bit of code that could conceivably satisfy its specification. You can imitate this by doing random coding challenges online. They are fairly difficult at first but over time you pick up the little trickery here and there that sometimes gets in the way of properly understanding what the problem is truly asking.
Have the hunger to go the extra mile even if you're tired and keep devouring every bit of information you can get your hands on, and constantly be resynthisizing the whole of what you know into a coherent set of facts based on evidence. Instead of lazily re-using the same patterns over and over question everything and determine from 1st principles whether something makes sense or not.
Output needs to be 10x more than the best "non-10x engineer" to really count.
Makes me wonder how many 10X engineers does Google [claim] to have?
*proglangs
I met three 10X engineers in my life. They started early and therefore got a lot of practice in by the time they went to college (both professionally and with side projects).
You can watch a video from one of them here: https://news.ycombinator.com/item?id=18214738
You can watch a video from one of them here: https://news.ycombinator.com/item?id=18214738
Tackle the hardest problems and solve them.
or
Attach yourself to the areas that have the highest business impact and produce results...
or
Attach yourself to the areas that have the highest business impact and produce results...
You become a 10X engineer when you realize that the 10X engineer really doesn't exist. It's just a term that stack rankers love to use to defend their need to stack rank. Nothing but big egos. You don't need that noise.
A big part of it is being wise about what code should not be written. Either the KISS principle or just being very conscious about costs and benefits.
I asked the same question to myself a few days ago.
I believe in our connected world, we should share knowledges more faster.
For engineering and programming,
https://www.connectix.fr/
is launching really soon and aims to help developer to become better developer
If you want to be exceptional, worry about what you need to produce to make the business better, not what is important to you. That makes you more valuable than other engineers and makes you a 10x engineer. At least this is my experience and hence opinion.