Nowadays, everyone wants to be what we call a "10x developer." However, this term is often misunderstood and overvalued.
In essence, a productive ...
For further actions, you may consider blocking this person and/or reporting abuse
So just use more tools to become a 10x dev? π
Don't get me wrong using the best tools for the job is important, but if you want to be 10x effective then the following are crucial as well:
I see a lot of under-engineering in code, over simplification without a view for the future and an understanding of the final goal. YAGNI - you ARE going to need it.... Most good choices are about understanding what is needed in architecture and what is not. 10x is about this for me. A senior attitude not a junior. A focus on the result not the process. Functionality over linting. Users over developers. Execution over elegance.
Very well put.
"My code looks like shit but it works. Leave me alone."
I was suggesting a balance, one that favours functionality over form. If your code looks like shit and is unmaintainable then you've broken multiple of the rules I listed.
A lot of time a "good" developer, that some refer to as 10x, is versatile and dynamic in the setting, tools, contexts and project groups you put him/her in. What separates these people are primarily problem solving skills, understanding of needs, requirements and context and an ability to not just implement but to discuss options and reason the way to the best solution.
A 10x developer could be spending more time in notepad or a whiteboard than anything else just to hash out, illustrate, orient and pivot theoretically with the team and THEN build the right thing one. What you moreover refer to as a "fast developer" in this article is a solo code monkey who will likely be good at building MVPs quickly but his time will ve spend getting it working instead of having a solid plan and goal that is anchored and therefore having a good understanding of what issues all the tools must solve, making it easier and faster to stack it up to a solution. Think first, communicate with tech and non-tech, and versatility is what I look for in new colleagues.
I agree with Bill Eager when he argues in The True 10x Engineer:
BTW in A Tale of Two Kitchens - Hypermodernizing Your Python Code Base I give very similar advice, as you do in this article
I get what you were going for. This is a quality article with some very good suggestions on how to become a better, or a more productive developer, but the title is somewhat clickbaity. :)
The original "10x developer" is largely a myth, and even if it wasn't you definitely shouldn't be striving to be one. If you were able to write 10x more code than anyone else and not lose on quality or your own sanity you wouldn't be working as a regular dev anyway.
Your advice is sound, though, especially using existing tools/components/libraries when you can instead of reinventing the wheel. I would be cautions about using AI in office environment though, as your company might be against that for security/privacy reasons.
I said at the beginning of the article that the term is often misunderstood and overvalued. I am not saying that with my tips you will create 10 more projects than a regular dev but IMHO they will definitely help you write clean code, save you a lot of time, and be more productive.
About AI, yes you're absolutely right some big companies like Google forbid using AI for security reasons.
And for using existing components/libraries you should be careful and use tried, tested secure/maintainable, and scalable solutions.
Thank you for your great comment.
There are also licenses to take into account. I haven't kept up with the latest versions, but AI could generate exact copies of e.g. GPL licensed code which cannot be used in proprietary codebases.
Is it likely to lead to a lawsuit? No. And it is probably very much a gray and unexplored area. But when coding by hand we have to ensure we don't violate licenses and copyright. Just because AI is doing the work we can't throw any considerations out the window.
Few more:
Always degrade junior developers even if they are telling you the right thing tell them that you have 20 years of experience.
Share rules that you don't follow yourself like Propagate that array methods are slow always use old school loops but use array methods all the time.
Call it interpolation instead of template literals.
Lol. I've come to realize people who call template literals interpolation usually come from a CS background. Java to be specific.
Maybe, but I guess they come from University of Flex π
This is about typing 10x faster.
That's the wrong goal IMHO
A highly productive developer is often referred to as a "10x dev."
In my opinion, productivity can be boosted through tools like extensions, Emmet, and AI, which facilitate faster typing.
However, mastering Git, automating repetitive tasks, and adhering to the principle of not over-engineering or writing clean code are essential concepts that contribute not only to your typing but also to being a good developer or engineer.
Thank you for your constructive criticism.
I understand and I'm not saying all of this doesn't matter.
But consider the amount of coding it requires to yet another bank with its thousands pages of regulations to implement and that no-body really needs.
Imagine you actually do all this coding 10x better than the average programmer.
Compare that to working on creating "git" in its early stage.
Imagine for example that you would have insisted in making "git" and its syntax more straightforward, the tool easier to learn. Imagine that you would have done this work just at average speed.
I would argue that in the second case you would have worked in something with drastically more impact than in the first case.
The second developer would have been much more efficient than the first who wouldn't have been more productive, but still, it doesn't matter that much in the grand scheme of things.
In the second case you worked on the right things in the right team.
That's when you are really 10x.
Yes, for banks, for example, you can't use external libraries or speed up the process of writing code, or it will be a mess. You have tools, and you should know when to use them.
Itβs not just about writing code; itβs about being the engineer who picks the perfect plan for success.
What does success mean though ?
I think that doing the right things is more important than doing things right (or fast).
I think being a 10x engineer has nothing to do with his ability to churn out more code, but everything to do with enabling whole teams to work more efficiently.
Agreed, it's about delivering 10x more functionality to the user. This is about architecting to succeed and providing an environment where the whole team can flourish. An architect who can deliver a framework where everyone is productive can 10x everyone in the team not just themselves.
Nice article here, Abdessamad.
I really like the fact of not over-engineering. Over-engineering often cause more harm than good.
P.S: I'm writing an article on over-engineering, including pitfalls and ways to mitigate it.
People should develop their skills how they want, but thereβs no need for us to chase a billionaireβs propaganda or to work more for the same (or less) money.
Thereβs no such thing as a 10x developer, and we shouldnβt be working so hard to compete with one another for the distinction of having poured 10 times more blood into the gears of capitalism.
Perhaps this is more about the individual, rather than the corporation? I agree that no one should punish themselves for someone else's benefit. It's hard to be recognised though if you choose to be average. It's hard to succeed if you don't take a risk.
I donβt find your argument compelling. Not only do I take issue with the characterization of βchoosingβ to be average, but this cult of the individual is a pernicious trend.
Thereβs no such thing as a 10x developer, and anybody competing with others in the pursuit this fiction is only playing into the myths of the billionaires, to the detriment of the community around them.
We can strive to be our best selves without wanting our bosses to compare others to ourselves unfavorably.
One thing I don't see mentioned here that's important is making sure the things you work on add as much real value as possible. If you do 100 things nobody cares about and others do 10, still nobody cares. If you do 10 things people actually care about and others do 1 thing of real value then people will notice.
Agreed on most of your points, except that I think "Don't Over-Engineer" might encourage people to write over 1000 code inside one single file - I see that a lot.
Abstraction is developers' basic skill to avoid code redundancy and improve consistency. And how "over" is "over"? It can be very difficult to tell.
And here are some other points:
Cheers βΊοΈ
Hey, great tips! I'll find myself going deeper in some suggestions. Thanks!
Now that you read this, you can call yourself 10X developer.
If it were that easy! π€£
Being good comes with experience. π
You canβt learn / read it. You have to experience it, over and over again. Expose yourself to the topics you donβt understand yet, get out of your comfort zone and never stop learning.
Just like βget-rich-quickβ schemes, becoming 10X overnight, wonβt work.
I think this is a good article, but its mostly focused on being more efficient, the tools and practices would make a developer more efficient, so its definitely good advice.
But it might not make you a 10x developer, firstly if 10x is just speed then sure, you can be faster at churning through code, but doesn't mean that you'll create sustainable solutions because this things are not related to any tooling you might use.
So maybe the term 10x dev is a bit misleading, it should just mean a more efficient developer, and by more efficient I mean that its a developer that doesn't lose time on things that can be automated, or uses more of the available tools to create solutions faster.
And for higher levels of developers we already have a name, its Engineer!
I tried copilot and I actually spent more time explaining it what I want than if I did it myself. Even if it wrote something I still have to verify it or tweak it, meaning, that I still had to spend time understanding what was written there. It's like working with a junior developer requiring constant supervision and assistance.
prettifier is an extension that in average makes the code less readable (compared to if you manually try to style it as readable as you possible can yourself) so even if it make the code consistent, do it make the total time reading the code longer. And because reading code is done 100x more than writing, is it bad.
Very neat and nicely written, Thanks for this bunch of helpful instructions it's helps alot and also I use some of your instructions and it makes me more productive than before.
The term "10x developer" typically refers to someone who is exceptionally productive and skilled, capable of producing ten times the output of an average developer. Achieving this level of proficiency requires a combination of technical expertise, effective work habits, and continuous learning. Here are some steps you can take to strive towards becoming a 10x developer:
Master Your Craft: Deeply understand the programming languages, frameworks, and tools relevant to your field. Continuously learn and stay updated with the latest industry trends and best practices.
Focus on Problem Solving: Develop strong problem-solving skills. Understand the core concepts of computer science and how to apply them effectively to solve complex problems efficiently.
Write Clean and Maintainable Code: Strive to write code that is easy to understand, maintain, and scalable. Follow coding standards, use design patterns, and refactor code regularly to improve its quality.
Continuous Learning and Improvement: Embrace a growth mindset and dedicate time regularly to learn new technologies, tools, and methodologies. Stay curious and explore different aspects of software development.
Effective Time Management: Improve your time management skills to maximize productivity. Use techniques like time blocking, setting priorities, and eliminating distractions to focus on high-value tasks.
Collaboration and Communication Skills: Being a great developer also involves being an effective communicator and collaborator. Work on your interpersonal skills, communicate clearly, and be open to feedback.
Version Control and Development Tools: Familiarize yourself with version control systems like Git and utilize development tools that enhance productivity, such as IDEs, debugging tools, and automation scripts.
Testing and Debugging: Learn various testing methodologies and techniques. Be proficient in debugging to identify and fix issues efficiently.
Soft Skills Development: Enhance your soft skills, including teamwork, problem-solving, critical thinking, and leadership. These skills complement technical expertise and contribute to overall effectiveness.
Stay Passionate and Curious: Passion drives excellence. Stay enthusiastic about your work and continually seek to explore and innovate in your field.
Remember that becoming a 10x developer is a journey that requires continuous learning, practice, and dedication. It's essential to focus on both technical and soft skills while also maintaining a balance between personal and professional development. Strive for excellence but also recognize that consistent improvement over time is crucial.
Thanks for reading,
Dgi Host
Clean code. Nothing can turn a 10x developer into a 1/10x developer faster than having to program in a messy morass of technical debt.
AI, following the principle of not over-engineering, automating repetitive tasks, and using existing Components and Libraries can help you tremendously in writing clean code.
Love it π€©
Your article points out many ways that developers can improve.
But it also highlights the core misconception of what 10x actually means.
In particular, it doesn't mean they can type 10x faster. Using emmet is not required to be 10x. Using IDE shortcuts is not required to be 10x.
I've known a couple of 10x developers who don't even touch type and who refuse to use an advanced IDE. They still get work done way faster, and with higher quality, than the average developer.
Read The Mythical Man Month. It's where the idea of "10x" developer was originally popularized based on earlier studies, though Fred Brooks refers to them as the "surgeon" developer.
Note that the book was written in the 70s, before IDEs even existed in their modern states.
And also note that the studies showed zero correlation between experience and being 10x. Zero.
Which means you either are or aren't 10x. There's no way to "become" a 10x developer.
Your recommendations are good for improving any developer who isn't following them. But to claim that it will make someone 10x implies you've never actually worked with a 10x developer, or you'd know that the difference is not at all about typing speed.
didn't know bout emmet till now. Thank you and will definitely try this out π
Glad I could help!
nice
this article was amanzing.
Nice Article I will try to Integrate these concepts into my daily Goals.
You can't become one you are one. You can only get better at being one
I though we all agreed the only ones using the term 10X are PMs and managers in general, all developers know it is a scam, the same as rockstar and unicorn.
A 10x developer is someone who is terrified of poverty, has been brutally abused and has a family they must raise. Given this, everything else follows.
I started reading this post to get better then realized this is covering half of what I'm already doing. Greatπ₯
Man!π You post sparked a community riot.
Maybe just use a different title next time. oam!
thanks! good suggestions
Thank you for writing this! I work in a gov environment so a lot of my normal resources are not available. I will test these out and see if I can improve my situation at work!
Glad I could help!