英文来源| Quora 翻译| 桃子@煎蛋网
What does it feel like to be an average programmer among very talented ones?
I am a very average programmer in my company. I'm surrounded by some real geniuses who can write hundreds of lines of efficient code effortlessly in an hour while I take much longer and still write code that needs to be fine-tuned. I have a feeling that they all think of me as a lesser being and think I'm not good enough behind my back.
Mattias Petter Johansson：
There is a saying among jazz musicians:"If you're not the worst musician in your band, you should immediately switch bands."
I work at Spotify. I feel like a piece of shit programmer almost every day. I didn't at my last workplace. So I left and started at Spotify.
When the time comes when I no longer feel like a piece of shit programmer here, I'll quit and move on to a place that can once again make me feel like piece of shit.
This strategy has worked out really well for me during my career.
I heard a phrase once, something like this: "There is no genius, only people who realize this fact".
Those talents around you are not born like that. Probably they started programming long before you. Remember to learn something new everyday, constantly summarize, reflect and improve. You will be one of them one day, and probably much better.
Remember to read a lot of books. Look for the best ones.
All you need is passion, perseverance and time.
Have you heard the saying "Always be the worst musician in a band"? Being the worst means you are gaining experience working with people better than you. It helps you to "level up" faster since you are directly learning from people you admire. I would say you are quite lucky to be surrounded by such people. Not many programmers have this privilege.
Here is some advice to use this opportunity to your advantage. Don't waste your time thinking about what they must be talking about you or your code behind your back. If you feel your code is sub-optimal, ask them for their review and be receptive to criticism since you asked for it. If they are able to point out mistakes or show an alternate method, compare it with your method and ask questions until you are convinced why theirs is obviously better.
Also observe how they practice programming and what makes them better than the average.