Launch School
Published in

Launch School

Avoiding the Career Transition Trap

The pitfalls of transitioning to a career as a Software Engineer, and how to avoid them

Since founding Launch School I’ve spoken with hundreds (thousands?) of people wanting to transition to a career in software-engineering. During many of these conversations I’ve encountered a particular myth; one that seems to be fairly widely believed.

The fallacy of the idealized journey

I call this myth ‘the fallacy of the idealized journey’, and it goes something like this: if you can transition from a non-tech job to an entry-level tech job, getting from there to a high-end tech job is easy.

In the context of the above image, people believe that getting from Step 1 to Step 2 is the hard part, and moving from Step 2 to Step 3 just happens naturally over time.

Fifteen or 20 years ago, there may have been some truth to the idea that you could ‘get your foot in the door’ and work your way up, but that path today isn’t so clear cut. Here’s the reality today: bad entry-level programming jobs generally don’t naturally lead to amazing programming jobs.

“The hardest part is not getting a job, it’s getting the RIGHT job.”

The fact is that there are a lot of bad programming jobs out there, and the majority of them don’t have particularly inspiring career trajectories. I’ll repeat that because a lot of career transitioners don’t realize this: most entry-level programming jobs are not desirable or amazing. An entry-level tech job is like a fast-food cooking job. You are unlikely to transition from that to a Michelin-starred chef. The high-end job requires a different path, possibly involving a stint at culinary school, and, as a minimum, requiring a solid grounding in fundamental cookery techniques.

There are a number of reasons why this myth is so widely believed. One is the appeal of its simplicity. This misconception sees the career trajectory as linear. In other words, as your technical skill increases, your pay/reward level increases to match it.

At a basic level this seems to make logical sense. Why wouldn’t things work like that? Unfortunately the reality is much more complex, as I’ll explain shortly.

The primary reason that this myth continues to circulate is rather more nefarious. There are many players in the tech-education sector who directly benefit from people believing this. Some predatory coding bootcamps teach you just enough to target those low-end entry-level jobs, based on the belief that you can then progress from there to a high-end job. What they’re selling you is the dream of the high-end job, at a price that reflects that, but only providing you with access to the low-end job. For many predatory education institutions, it’s a con.

The reality of tech career trajectories

The reality is that you can’t simply start at the bottom of the ladder and climb up. The reason for this is simple — there’s more than one ladder. There are multiple ‘ladders’ and multiple career trajectories. Here’s the really important thing: these trajectories are not all equal, and do not all lead to the same place.

That ‘linear’ skill-to-pay trajectory does exist, but only for certain types of job. Here’s a basic example:

In the above graphic, the career trajectories of the two roles start out in a similar way, but one of them then levels out.

The black line represents a job at an engineering-centric company, and specifically a role within that company that’s in a profit center (rather than a cost center). In other words, in these roles there is a direct correlation between the work you produce and the profit that the company makes. This correlation is reflected in your pay and reward package.

So what’s a red line? This could be a role in a company where core software engineering skills do not correlate with pay after some point. The X-axis here is strictly software engineering skills. For example, at many consultancies, consultants are billed out to clients. No matter how much your engineering skills grow, the ceiling for your salary levels out just below what the client is paying (otherwise, the consultancy would be losing money on you). This isn’t to say that consultancies are bad jobs, it’s only to point out that consultancies see a salary ceiling before some other engineering-centric companies.

So, the answer is to target jobs that follow that black line, right? Well, yes, but unfortunately it’s not quite that simple. There are many roles at many different types of companies. There’s also another important thing to consider. Depending on your skill and knowledge level, some of those roles (including the ones on the black line) may be just out of reach.

The confusing thing is that some of those ‘in reach’ roles may even have an acceptable starting salary compared to many non-tech jobs, but have a flat or limited career trajectory. It can be tempting to target one of those jobs, with the idea that you can then ‘jump across’ to one of the other trajectories. In reality, doing this is extremely difficult. This is the fallacy of the idealized journey that I discussed earlier.

For example, the “Product Manager” role may pay quite well even at the very beginning of one’s programming journey. However, as one levels up their engineering skills, a Product Manager’s salary may not reflect that improvement (assume for this example that the way to increase the Product Manager salary is associated with improving mostly non-engineering skills).

It can be misleading to think you’re on the Software Engineer salary curve, when in fact you’re on a much more horizontal salary curve. Many predatory education institutions bank on these misleading salary curves to confuse and conflate their graduate results.

Aim higher by leveling-up

My advice would be to avoid those entry-level jobs, and instead target the roles with the good career trajectories. But how do you do that if those roles are initially out of reach?

Put yourself in a position to reach those roles by first leveling-up your knowledge and skills by moving right on the Skill axis. Master programming fundamentals, and develop the software engineering skills and mindset that will allow you to target that black line.

Instead of targeting those entry-level jobs, and ending up on the wrong path, be ambitious and invest in yourself for the long term. Move yourself to the right of that Skill axis and hop on a better salary curve.

Comparing the two different paths, ‘the idealized journey’ seems appealing because it offers immediate results. Over the trajectory of an entire career though, those immediate results don’t translate to the best outcomes. The ‘leveling up journey’ takes a higher-level and longer term view; by leveling up your skills so that the better career trajectories are in reach, it ensures you are aiming for the right path from the start.

Launch School’s focus on the ‘leveling up journey’ is why we describe our program as ‘The Slow Path for Studious Learners to a Career in Software Development’. Our approach may not be the quickest at first, but over the long-term it’s the most effective way to hop on the most rewarding career trajectories.

*Special thanks to Karis Tobias for the drawings.

--

--

--

Publications of the Launch School Community

Recommended from Medium

Interning at the Mavericks is the best decision I’ve made for my career!

Coffee Chat: How do you start a community?

Your Job Search: Crushing The Technical Interview

A Hierarchy of Job Needs

Short, Painful, Worth It: My Brief Stint at Twitter

starting line at a running track

My Journey of Preparation for Technical Interviews

The World of Work Has Become Untenable for Young People — Here’s Why

Innovators listen differently — words have meaning — don’t they?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Chris Lee

Chris Lee

More from Medium

Lessons from Being a TA

7 Tech Companies You Didn’t Know were Founded by Women

Best Practices: RB101 through RB139

Junior Software Engineer