One of the most frequently asked questions I hear from junior programmers (no matter their age) is: What should I focus on now to build the best career I can? There are multiple options, including creating a startup, getting a PhD, contributing to open source, working for Google, and many others. In my opinion, the most common mistake is trying to get rich fast. Obviously, money matters and is the ultimate metric of career success, but trying to get it too early is nothing more than gambling with your life at stake. Instead, I suggest focusing on winning some “medals,” which can later be converted to cash, not the other way around.
When your career is young (no matter your age), people with money, whether employers or investors, are very hesitant to trust you with it. Even if your skills are strong or your pitch looks promising, the list of achievements on your CV is still pretty short or simply empty. In their eyes, you are a junior and therefore, very unreliable.
You may get rich from this position of zero reliability, but it will mostly be a matter of luck. Having no leverage, you will lose a very valuable resource—your time. Initially, jumping from company to company, you might get a 25% raise every year, but in a few years, the growth will slow down, and eventually, you will become a middle-level programmer with almost no chances of getting truly rich. You will be an old sergeant under the command of a much younger colonel. You don’t want this to happen.
A much better alternative for a junior is being a hero while young. Earn some medals: prove your exceptional value and become a member of the elite. Here is a non-complete list of medals you can put on your CV as a software engineer (the most respected at the top):
- ACM or IEEE award winner
- ICPC finalist or winner
- SPLASH best paper award winner
- Creator of a 20K+ stars GitHub project (not “awesome-“)
- Author of a book published by O’Reilly
- PhD (preferably from MIT or Stanford)
- Java Champion
- Author of 25+ merged pull requests into the Linux kernel
- 3000+ rating on Codeforces
- Winner of $100K at Kaggle
- Oracle/IBM/Microsoft certificate holder
- 1K+ stars GitHub project
- 50K+ StackOverflow reputation
- A-class conference org-team member
- Industry conference speaker
- InfoQ, DZone, or Habr author
- Local workshop organizer
Some of these medals may take more than five years to earn. Of course, you must make some money while working on them. The money may be, and will be, smaller than what your friends are getting. Don’t pay attention to this. Eventually, you will get even. Big time.
BTW, I borrowed the idea of “medals” from Alexander Panov, the founder of Neiry, who I had a chance to video-interview recently (watch the video, he says what I’m saying in this blog post, but without as many details).