I started my working life as a freelance cartoonist and illustrator. In my mid-twenties, I made a career transition — which could be its own blog post — and I’ve been a professional programmer since February 2010 which is ~12 years. Given that I work ~1,800 hours per year on average, that means that I’ve spent at least 21,600 hours of my life programming (if not more).
Inspired by Reflections on a decade of coding by Jamie Brandon, I took some time to reflect on my career so far. In this post, I’ve collected a few thoughts about my career and programming.
Take a moment to enjoy all that you’ve learned and where you’re at right now. Maybe you’re not where you want to be but don’t forget how far you’ve come. This will be a long journey with a detour or four. Unfortunately, there are no shortcuts on the road to true expertise.
To illustrate my point, I’ve created a chart that captures my own journey towards becoming proficient in a single domain: full-stack web development. Even with a decade plus of experience, I still have gaps in my knowledge and skills. But regardless, it’s still satisfying to look back and see all of the technologies I’ve used.
For some people like myself, this can be difficult to accept because it requires vulnerability and asking for help. Whether you’re a CEO or just starting out, a mentor can be beneficial at any level. But if you need convincing, peer-reviewed studies [1] [2] have shown that the effects of one-to-one tutoring can be dramatic, with students improving performance by two standard deviations.
This phenomenon is known as The 2 Sigma Problem and it was first discovered by educational psychologist Benjamin Bloom in 1984. I’ve included a figure from Bloom’s original paper [1] which shows the achievement distribution for students under conventional, mastery learning, and tutorial instruction. This figure clearly shows the powerful effect of one-to-one tutoring.
Anecdotally, my own career has played out like a A/B test on the effectiveness of mentorship. I’ve had periods in my career where I have and have not had mentorship. The periods where I’ve had mentorship were explosive in terms of personal growth. In contrast, the periods where I didn’t have any mentorship my career stagnated and my skills atrophied badly.
For another interesting anecdote, I recommend reading Ben Kuhn’s post on the unreasonable effectiveness of one-on-ones.
You may or may not agree, but I think it’s hard to predict which technologies will ultimately prevail in the long-run. I’ve been on both sides and in the moment it feels like a completely rational choice but you won’t really know until years later if you made the right decision or not.
For example, I joined a small startup in 2015 to lead frontend development. We were comparing React and Angular to rewrite an existing dashboard. We decided to go with Angular because it was more popular at the time, the previous dashboard was written in Angular and I had years of Angular experience. But it wasn’t until years later that React would surpass Angular in popularity as evidenced by the chart below.
On the other hand, when I started my career PHP was at the peak of its popularity. At the time, I was trying to decide between pursuing PHP or JavaScript. I ended up choosing JavaScript because I wanted to focus on frontend development. This turned out to be a great bet because JavaScript is everywhere now from frontend to backend. Whereas PHP has declined immensely in popularity over the last decade.
Overall, I’ve really enjoyed my first decade programming. I’m looking forward to the next decade where I plan to learn more about statistics, business, management and leadership. Jumping way ahead into the future, I hope to one day build what Will Larson describes as a forty-year career.