Someone once asked me, what does it take to become a prominent developer? A 10X Engineer? You know some who are “extraordinary”. What do you mean by extraordinary? I’ve always had some thoughts (all of us do) around it, but my understanding and opinion of it is now much more concrete. Actually, this applies not only to being a developer, but to any other career or profession that you’re in.
I believe there is a big problem with polarisation in the industry. We only look at the further right of the bell curve. We disregard that there are average and less than average people.
Because of technology, it’s very easy to get swayed by social media about “the extraordinary people”, the top 1% of the 1% of the population who are romanticise about being great.
You see someone who is extremely bright and started programming with his dad’s Commodore 64 at age 4, and you feel bad that you didn’t start learning to program at an age of 4 + N days. Someone developed a lot of programs and exited with millions at a young age, while you were pre-occupied with something else (like playing video games with friends). A young chief executive of a multi-national company in his 20s. The list goes on. If you’re not “like them” or “better”, then you’re “just” average. There is nothing wrong with being an average.
Unfortunately, a lot of companies set these unrealistic standards in order to hire only the “top 5% of the world” but maybe you can intern with them (with a minimum wage or no pay at all) and if you “wear multiple hats” and work hard enough (90+ hours per week), maybe you’ll be extraordinary too, just like them. Maybe if you attend these conferences, read 100+ technology books, use only command lines and no mouse; you’ll be extraordinary too.
You buy into the false belief that there is a hero waiting inside you to unleash. A lot of the self-help industry and HR culture are really selling these “feel good” trainings like pancakes. I believe that you don’t have to be extraordinary at work to be a good person. You shouldn’t let some random book or article tell you if you’re not good just because you don’t know set SMART goals every week in your job or career. Are you actually fun to work with? Do people around you get inspired and learn from you?
Some metrics are BS anyway. How do you actually measure an extraordinary developer or software engineer in the first place? Sometimes this also gets very weird when you join a company with a weird performance review process.
We fall into the “vanity metrics” trap where we want to find some numbers to compare to measure performance. Some common and unjustified vanity metrics I experienced:
- The number of line of codes you’ve written.
- The number of unit tests that passed. I can write hundreds of “not so meaningful” tests.
- The ratio of pass/fail builds.
- The number of commits.
- Time spent “online” or in the office.
We sometimes base it from someone who is “above” the rest.
- Someone has a higher salary than you.
- Someone gets awarded with a diamond plaque and you’re not.
- Someone has a “Chief,”, “Head of,” “Senior Lead Manager Global Distinguished Architect Black Belt,” title in their profiles and you’re still stuck with “Associate Junior Assistant Team Lead Secondment,”.
You shouldn’t be jealous of that person. That person is unique. He or she is not you. Unless you want to be that person as a “wholesale” and not just some selective things about him or her, then you need to get rid of that jealousy. Here’s a good quote from Naval.
You can’t cherry-pick the things you envy so much about the other person. You would have to take a 180-degree swap with that person. You would have to take her age, her family history, her struggles, her failures, her medical conditions, her pains, her parents, her friends, everything. And lose everything you have built and leave everyone you love behind. And unless you are totally comfortable with that swap, you shouldn’t be envious.
At any company, you don’t always work with “extraordinary people” and not all the people in the world are “extraordinary”. We design and create applications so that “ordinary” people can use them and potentially make their lives meaningful, and they become more productive at work. The actual value of your work is about the outcome it creates and not how complex the technology you use.
However, a huge disclaimer, that there is a big difference in being average and those side of the fences of “not even trying”, “complacent”, “come-what-may”, “the Mr excuse I can’t finish this module in 5 years”. You know what I mean – don’t you? Don’t be that person. The key message here is aspire to be a better developer, better than who you were in the past; but don’t feel bad if you are not extraordinary.
Couple of years ago, I was “that guy”, you know, the guy who would look down at people because they’re not technical enough, they don’t spend extreme hours learning technology X, those who are not “as good as me”, and a myriad of other imaginary ceilings. I thought I was great, but I was actually part of the problem.
There is more to life than code. At least for 99.99% of us. If you’re part of that 0.001%, for as long as you’re happy and healthy – that’s OK too. Don’t feel guilty if you don’t have the perfect green in GitHub activities. Don’t feel sad if you don’t wake up at 5:30 AM. Things change, your interests and priorities change – and that’s ok. Maybe you’re really into programming today, 5 years later you decide that you want to be a bee farmer, that’s fine. Live your own life.
If you’re currently struggling with your career or life right now, message me. I’m willing to listen.