

Discover more from Code Like An Investor
Don't become an expert: invest instead
Moving into a mindset for long-term success as a software engineer
Think about the last video training library you saw. It likely had tags like “Beginner”, “Intermediate”, and “Expert.” While these labels can help you find resources that are at your level, I have always been bothered by them. Outside of video training libraries, I have seen people assert they are an “expert” just to get a job or a project. And then at the other end of the spectrum, I have seen people downplay their skills in the hopes you will buy into the technology they are selling.
This may seem innocuous on the surface. However, I assure you it is anything but. The moment you adopt “beginner”, “intermediate”, or “expert” as a part of your identity, you are trapped.
The implicit promise that is made when you adopt a specific framework or language is that if you just become an expert in this, you will have steady work in it for a good long time. While this sounds like you are taking an active role in your career, it is ultimately resignation.
Once you pick up the basics of a framework, you fill in the rest of the gaps by googling your way into becoming an “expert.” When it comes time to find a new job, you now have years of experience in this framework, but that might not land the role you really want.
I used to have the “become an expert” mindset. I spent many years trying to master PHP and a framework written in it. Then I found myself stuck: expertise in the framework just led to more work in that framework and nothing else. I wound up spending nearly a decade in it, which is an eternity in Internet years! I could have moved on more quickly if I had stopped to ask really important questions like these:
What problem is this framework trying to solve? Do I want to solve that problem?
What is this framework offering me now versus what it offered me originally?
Is there something else that can deliver value and quality more quickly?
Am I leading the work I’m doing or is this framework leading me?
Am I truly enjoying this or am I just comfortable with where I am now?
For the most part, I stuck with the tool I knew. I would occasionally learn newer JavaScript and CSS techniques for specific projects, but they all got tied back to building expertise in the framework. I spent years as a freelancer doing related websites and web applications because it was what my clients wanted.
I might have ultimately been happier learning a different language, like Python. That would have allowed me to take on projects involving geographical information and spatial analysis, which I would have personally found interesting. However, I never did so because maintaining and expanding my current expertise was the top priority.
I eventually did move away from freelancing and into full-time jobs. At one of them, I picked up Ruby on Rails, because the project I was working on was based on it. After a while, I found myself in a familiar situation: I knew enough about Rails to be productive, but Rails was leading me more than I was leading the work. I wanted to move on to something new. So this time, instead of trying to double down on Rails expertise, I decided to try a new mindset.
I started a side project to do some experimentation. Through this project, I found myself evaluating different frontend frameworks. Once I tried a few of them, I finally settled on React. React was the #1 choice for frontend development at the time: it had great documentation and wide adoption.
After playing around with React more, I soon had a working project I was ready to share on LinkedIn. Posting this led to interviews for jobs where both Rails and React were being used together. Ultimately, I was offered Senior level engineering positions and accepted one of them.
If I had tried to push for React on the project at my old job, I would have received significant pushback. Most of the JavaScript was already in place, there had already been a failed attempt at implementing Angular, and there was understandably very little appetite for doing rewrites. Besides technology stack issues, I would also still have been quarters or even years away from getting promoted. Instead, by evaluating the environment around me, I correctly determined that learning React was an investment that was going to get me a return. I was able to both get a promotion and work with newer technology I was interested in.
Programming languages, frameworks, and methodologies are here to serve you, not the other way around. Take charge by coding like an investor! While it’s important to learn the stack used at your job, It’s also very easy to get stuck in the expertise trap. Don’t do that! Instead, invest time in learning tools that will yield a return.