I’ve seen this question too many times on Quora.com. It is admirable to strive to be the absolute best that you can be. However, you have to be “good” before you can become “The Best!”.
How does one become “good”?
Well, the first thing one needs to do is learn how to manage stress. I’ve seen so many people cave to stress and with coders it is especially noticeable. Great code quickly descends into the depths of Hell because a deadline got pushed one day; Tests shrink and bugs spread faster than the Spanish Flu.
Stress directly affects the logical side of your brain. Your body floods with negative chemicals, all of which eat at you and pull your focus away from where it should be. If you can’t properly manage your stress then you will never achieve greatness. You’ll burn out long before you ever even see the finish line.
One should also know how to complete a task while understanding the different ways of attack and when to use them. The “right way” to do something is all too often situational. You need to understand what the problem is and the right solution that solves it while considering time, efficiency, and/or scalability. Those three terms are tricky because you will often have to sacrifice a little of one to boost the other two. Understanding the value of each of those is key to being “good”.
The last and most important part:
The chances are high that you will have a team of other developers around you or that you will produce software which one day may be touched by other developers. Hopefully, some of these are newer to the craft and in dire need of your assistance. Mentor them! You’re no longer living in your head with code, but sharing it verbally with others. Questions may come up that force you to search deeper for better explanations, thus causing your own knowledge and understanding of the subject matter to grow. You’ll tire of having to explain your code and start writing more readable code that is easier for your team to cypher. This is a win win situation as it cuts down on maintenance/debug times later on down the road. You free yourself up later to continue working on new things as those with less skill are able to understand what is going on in code you’ve already written. There are countless benefits on this topic alone, but it is late and I’m tired.
If you’re already doing these things then you’re leaps and bounds ahead of many out there already. You’ve achieved “greatness”. You’ll never be “The Best!” because you’ll never accept yourself as so. Why? There are too many other challenges out there waiting for you to conquer. There will always be doors available to kick in.
If you’re truly chasing greatness then it’ll always be in your rear view.