Navigating the software engineering career path
As with many careers, software engineers can gain on-the-job experience that leads to promotions, new roles, and leadership responsibilities over time. But in this line of work, the pathway toward these different opportunities isn’t always as clearly defined as it can be in other fields like academia, law, medicine, and beyond.
We routinely work with software engineers at every stage and every level – from those just starting out in our Software Engineering Immersive program, to our instructors who have decades of hands-on experience and leadership skills under their belts. Throughout, we’ve come to think about the software engineering career path as broken into four overall categories.
Software Engineer (Years 1-3): During this stage, software engineers are building software.
Senior Software Engineer (Years 4-6): Here, software engineers are building software and also coaching others.
Lead / Manager (Years 7-10+): At this stage, they’re likely to oversee teams responsible for the planning, execution, and success of complex software solutions.
Staff / CIO (Years 7-10+): And here, these professionals are likely building processes for teams, championing product thinking, and providing company-wide technical leadership.
These categories are useful, but for many, the bigger concern is how to move from one to the next. How do software engineers go from that first big job to their next opportunity? How can they ensure they’re building the skills and knowledge needed to progress in their careers no matter which role they’re currently in?
In order to understand why all of this remains so murky for so many, let’s talk about what holds software engineers back from achieving clarity.
Two main challenges to software engineering career growth
First and foremost, there’s a lack of training. A quick Google search leads to a slew of beginner programming courses on the market. Many of them are wonderful, robust options for those looking to kickstart their careers. But what about after that? What about learning options for those already working as software engineers? There’s a sudden, steep dropoff in career-oriented training available for professional software engineers looking to continue learning.
Oftentimes, company leadership is well aware of the technical training void. In fact, a recent survey indicates that 76% of CEOs are concerned about a lack of digital skills within their own workforces. But for a variety of reasons, that concern doesn’t always translate to direct, in-house learning opportunities. This dearth of training can leave software engineers without a clear understanding of what to do next and how to keep growing.
What issues do training and mentorship actually address?
A combination of forward-thinking training and professional mentorship can help software engineers who are facing new and increasingly difficult challenges on the job. When we talk with software engineers – those out there doing the work right now – we hear that this combination helps address three commons career growth pain points:
Understanding the why. Software engineers need continued learning throughout their careers in order to maintain a grasp on the necessary mental models for solving complex and evolving problems. If and when this learning halts, it’s increasingly difficult to overcome challenges and keep moving forward.
Advancing careers. Through it all, software engineers are looking to advance in their careers. They’re looking for relevant skills, knowledge, and networking opportunities for their evolving roles and professional goals.
Increased access to training, either on-the-job or via other professionally-led courses, in tandem with care and mentorship, can transform the software engineering career path from murky and muddled to clear and focused.