Pinpoint the code you’re looking for
Introducing CodeSee.log, data value search, and more
No matter your background/experience, it’s possible to go from a junior to senior software engineer.
When I first taught myself to code, I noticed a gap. Even though I’d been teaching myself to code for five years, I didn’t have the skills necessary to reach the next level. I was technical… but not technical enough.
It wasn’t just me who noticed this skill gap either. After years working to become a Product Manager at Google, I finally had the opportunity to interview for the role. However, after passing five internal interviews, I was told by the hiring manager that I would never pass the technical ladder transfer interviews. The job was given to someone else.
I wanted to be a better software engineer and product manager, so I got a (second) bachelor’s degree, this time in Computer Science. Because I’d been in the job market before this degree, I gained unique insight into how Computer Science is taught, as well as how those lessons directly translate into our roles as engineers.
Now that I have a Computer Science degree, have put in the hours as a technical product management executive, and have founded my own tool for developers, I understand what was preventing me from exceling. Although I’m happy about where I’ve landed, this knowledge shouldn’t be locked in a Computer Science degree.
Today, I’m sharing how you can learn to code smarter so that you can become a senior software engineer quickly. Even if you have a ways to go, this knowledge will help you become better than you were yesterday.
Why become a senior software engineer?
First off, what’s so great about becoming a senior software engineer? Why go through the trouble? In my experience, senior software engineers are trusted to solve harder problems and handle more complexity. Although this can be challenging, it also gives you the opportunity to build something that’s rewarding and impactful. It gives you a seat at the table.
Not only that, but being a senior software engineer gives you the chance to mentor and provide insights to others. Often, it may lead to managing your own group. And, let’s not forget about the senior software engineer salary. On average, senior software engineers make 92% more than junior ones, according to PayScale.
For me, becoming a senior leader changed the trajectory of my career. While I was completing my degree, I landed a senior role at eBay. Not only did I get the role I wanted, but I was also able to skip the junior level. In doing so, I instantly tripled my salary. In that first year, I took seven separate products from ideation to launch, giving me enough experience to get into even higher level roles.
How to become a senior software engineer quickly
If you want to advance in your engineering career, you shouldn’t have to go get a second degree. That’s a big (and expensive) commitment that requires years of your time. Becoming a senior software engineer quickly requires you to read, understand, and have a big picture understanding of programming languages.
How can you ensure you have an in-depth understanding of code? You’ll need to read a lot of code, get a lot of code reviews, and give a lot of code reviews. Spending time with code and gaining feedback from others will help you gain the depth of knowledge you need to move forward.
But giving and receiving code reviews isn’t enough to put you on the right track. Ultimately, you need to gain the ability to build large mental models. This all boils down to loading up more complex systems in your head.
Engineering requires us to hold abstract systems and concepts in our heads via a skill called spatial reasoning. Spatial reasoning is the ability to “generate, retain, retrieve, and transform well-structured visual images” (Lohman 1996). It’s what we do when we visualize shapes in our “mind’s eye.”
In engineering, we use spatial reasoning to create a mental picture or a mental model of how our systems should look. We hold it in our heads. You follow a function call from one file to another. You imagine how data at runtime flows through that picture you created. You transform that picture by flipping it and manipulating it daily.
To get to senior engineer, you need to hold larger and larger systems in your head. You need to add more and more to your mental model. You need to build up a database of things you have seen before.
This is what takes so much time, and it’s what you need to conquer to go from junior to senior engineer.
A few tips for building these models
Turns out, I have terrible spatial reasoning skills. This challenge is so visceral to me that I’ve built an entire company around it. CodeSee’s mission is to help developers and development teams master and maintain their understanding of large scale codebases.
Codesee.io helps dev teams all speak the same language. It takes these large scale systems that engineers have traditionally held in their heads, and it creates a visual map along with all of the data that PMs can understand and that shows how all the pieces fit together. This map shows everything from the line of code that gets run to the higher level system architecture.
Here are a few recommended tips for building mental models, all of which are built into the CodeSee platform.
No matter your background or experience, it’s possible to go from a junior to senior software engineer– just as long as you have a solid, big picture understanding of programming languages.
Introducing CodeSee.log, data value search, and more
When you see a callback & think: "Go to where the callback is executed" but you can’t? Now you can!