If youāve been programming for a while, a question that has most likely crossed your mind is: Am I a good developer?
Before we go on, let me share a little secret with you⦠Every developer, even senior devs, have insecurities when it comes to programming. Few individuals like to share that information. Mainly because confidenceāand even arroganceāhas become a developer stereotype for some stupid reason.
However, I wonāt BS you. The more experience I have as a coder, the more I realize how much more there is to learn and how far I still have to go.
With all of that being said, today I want to discuss the topic of defining the tipping point for developers. This is essentially the point at which a dev goes from a beginner to a pro.
Since this topic is a bit abstract, itās not possible to point to a specific moment in time and say:
āHere it is, this is when it all clicks and makes sense.ā
Thereās no single moment when programming mastery occursāitās different for every individual.
I remember when I was originally learning programming. Understanding the syntax and context did not come easy for me. It seemed like I spent 99% of my time looking things up and copying and pasting code just to get my programs running.
Needless to say, my confidence as a programmer was very low in the beginning. I kept being plagued by nagging doubts, such as:
And the negative thoughts continued from thereā¦
If youāre a new developer, maybe some of this sounds familiar to you. Or maybe I simply lacked confidence. Either way, I trudged along, trying everything I could think of to improve:
So what finally pushed me over the edge to become a professional developer? None of those things⦠and all of those things.
I persevered through project after project and consumed every training resource I could find. And then, something amazing started to happen:
Everything started to make sense.
I still remember my first development tipping point. I was sitting in a coffee shop working on a web application. A few hours went by, and I suddenly realized:
I had just spent the entire afternoon building a project and hadnāt looked up a single code snippet.
It wasnāt like I programmed the space stationāthe project was incredibly basic. However, it was one of the most exciting moments of my life.
Even though my confidence had increased, the thought of anyone seeing my code was terrifying. But I had started freelancing, and a client (who was also a developer) asked me to pair program with him.
He had run into a bug and wanted to share his screen so we could work through the problem together.
Honestly, I was scared to death. I had never coded in front of anyone before, and the thought of doing it with this client nearly gave me a panic attack.
However, I didnāt really have a choice, so I started the session. And after a few minutes of nervousness, I started to relax.
To my surprise, not only did I not make a fool of myself, but I actually figured out the bug in his code and got the feature working.
So what was my secret to getting over the hump and going from a beginner to a professional developer?
Unfortunately, there is no easy recipe. However, there is a process that is guaranteed to work. And this process isnāt specific to programmingāit applies to any profession, whether you want to be a developer or a professional athlete:
Hard and smart work.
In The Tipping Point by Malcolm Gladwell, the author provides case studies on what it takes to achieve mastery in a specific field.
Gladwell suggests that it takes around 10,000 hours for an individual to become a true master of their craft.
Iām not sure I fully believe in the 10,000-hour rule. There are too many variablesālearning a skill depends on quality just as much as quantity. For example:
However, one thing is undeniable:
The key to mastery is hard work.
Iām sorry if you were hoping for a quick fix. But I can tell you from experience that there are no shortcuts to becoming a developer.
To become a great developer, you need to learn:
Becoming a great developer is not an easy road. But the good news is that you are 100% in control of how skilled you will become.