The Power of Experience
There is no substitute for learning by doing, so learn to weigh the value of experience the next time an opportunity presents itself.
Everyone recognizes the value of experience, yet we are more hesitant than we think when it comes to actually investing in it. One of the most common questions asked online when someone is starting out in a new field like software development is what to read, or what to watch, which is obviously not the best way to get started.
Last year I onboarded 2 junior engineers on my team and I did not give them a 2 year study program, instead I gave them real life tasks and projects that needed to get done. Of course you provide support, regular checkpoints, and it’s important to have learning time as well to build your foundational knowledge, but most of the time you need to be “doing” the thing you want to get better at.
This is true not only when you start, but also when you want to grow in your role. For individual contributors who want to move into a senior or staff role, this means stepping up and taking the lead on the next project at hand. Yes, it’s scary: what if you mess up? (spoiler: you won’t) and yes, it’s deeply ungrateful: you’ll have to spend a lot of energy aligning different teams and maybe some time doing things you don’t like, such as project management and reporting.
However, you will gain immense value for yourself by stepping up, in addition to showing ownership (which might help in the next promotion round!). You will likely force yourself to operate on a higher level of abstraction, and learn in more detail how different teams and services work, so you can come up with an even better system design next time.
The same goes for learning about devops and software reliability engineering. While you can read about interesting cases on engineering blogs and read incident post-mortems, nothing will make you better at this stuff than… actually being on-call! I know it’s not for everyone and that it’s a burden in itself as I’ve been on-call for the last 5 years, but I can’t overstate the value of the experience I’ve gained from it.
Being on-call makes you better at understanding system interactions, debugging systems and software, and writing software that is both more reliable and more observable by planning for failures and debuggability. As you assess and remediate customer impact, you also better understand the relationship between the software you write and release and the product that makes your company money.
So the next time an opportunity presents itself, remember to weigh the value of experience!