So you’ve stumbled onto this article about becoming a software engineer… let me guess? Perhaps you fall into one of the following categories:
- You are already a software engineer.
- You are in the process of becoming a software engineer.
- You have decided you want to become an engineer and are weighing your options as to how you should go about achieving that goal.
- You are considering becoming an engineer but are unsure where to go from here.
- You are curious about “coding bootcamps” and want to learn more about them.
No matter where you fit in that spectrum, or even if none of the above describe you, I believe there is something in this post that will be beneficial to you. And no matter where you are in this process, I was at one point in your shoes!
To give some background, I completed a coding bootcamp last year, worked there as a teaching assistant for three months, and I am now a Full Stack Software Engineer at Xaxis. Like many readers of this article, my background was not in tech. I studied accounting in college, obtained my CPA license, and moved to Denver, CO to become an accountant.
By the time I opened my first spreadsheet and fired up my second monitor to start auditing, the idea of switching careers, attending a coding bootcamp, and becoming a software engineer had already piqued my interest! This was my first “real job” following college, so I made sure to work hard and give it my all, but I began gathering information and considering whether a transition to software engineering was possible.
A logic-driven approach in action
Those who know me well can attest to the fact that I approach almost every decision in my life from a logic-driven perspective. Last week, I went out for ice cream and used the following thought process to decide to buy a quart of ice cream to take home instead of a single-serve cone.
I enjoy the to-go, prepackaged ice cream from this ice cream shop almost as much as I enjoy the fresh ice cream. Essentially, I decided I would rather pay significantly less for ice cream that I enjoy almost as much. This example may seem silly, but I’m trying to show that I approach both trivial and non-trivial decisions from a perspective rooted in numbers-driven logic.
To evaluate a more consequential decision, I employed a logic-driven approach to decide whether I should attend coding bootcamp in Denver, in New York or in San Francisco. I was living in Denver and I had family in San Francisco, so I decided I could construct a narrative to potential employers that I wanted to live in either of those cities. However, I had no connections to New York so I thought it would be tough to construct a narrative during the job search that living in New York was my dream. By attending coding bootcamp in New York instead of Denver or San Francisco I was able to apply for jobs in three cities instead of two, essentially doubling the total number of openings for which I was qualified.
I applied a logic-driven approach to every other step of this process as well and I want to dive into a bit more detail on the mental models I used while determining my best route to become a software engineer.
Qualitative factors I considered
Before getting to some quantitative aspects of my decision to become a software engineer I think it is important to touch on the overarching impetus behind my career change.
I wanted to be involved in tech
Way back in high school, I decided to become a business major because I had always enjoyed business, and as I completed my undergraduate degree it became clear to me that the most exciting businesses were centered around software and technology.
I wanted to be more challenged
Accounting was challenging at times, but my specific position as an external auditor often involved repeating the same processes over and over again for different clients. Auditing the income statement of a small manufacturer is very similar to auditing the income statement of a camera store. You sample a portion of revenue and expense transactions, then audit them to confirm their validity.
The day-to-day tasks of a software engineer sounded interesting
I often saw or heard software engineering described as solving small, interconnected puzzles, such as the one below, and this sounded like fun to me. By this point I knew using logic to analyze the different approaches to solving a problem was one of my biggest strengths, so becoming an engineer and using my critical thinking skills to solve problems every day sounded very appealing to me.
I wanted to do something more fun/exciting than accounting.
Obviously “fun” can mean very different things to different people so I’ll drill down a bit on what that meant to me.
For a long time I have been intrigued by the intersection of technology and business. The ability of a company to scale quickly from 1,000 customers/users to 1,000,000 customers/users is uniquely enabled by technology. The growth and business strategy of a promising software or SaaS company such as Airbnb or Flexport is incredibly interesting. Helping Airbnb implement and tweak their product offering and features for their expansion into new countries, is an example of one thing you might do as a software engineer. This sounded both challenging and fun.
The most challenging thing I ever did as an accountant happened to be the most boring: recalculating defined-benefit pension calculations from the 1970’s in order to ensure their accuracy. It was time for a change of pace.
I wanted to expand the number of interesting directions I could take my career
As an accountant your career trajectory is fairly established. You work hard as an auditor, learn as much as possible, transition to a role working for a private company, and then work your way up the accounting ladder. There are some turns you can take along the way, such as into a finance-heavy position, however broadly speaking it will likely involve using either finance or accounting skills in Excel for the majority of your career.
Software engineering is not like that. The number of directions you can take your career as a software engineer is part of what made it so appealing to me.
Quantitative factors I considered
Now I want to touch on some of the quantitative factors I considered.
What Bootcamp Should I Attend?
Besides deciding whether you want to attend a coding bootcamp, this is the most consequential decision you will make on your path to becoming a software engineer. Unfortunately the quality of coding bootcamps across the country varies greatly and a number of bootcamps, such as once-prominent schools Dev Bootcamp and The Iron Yard, have closed.
I’ve included this question first in order to frame the rest of the analysis specifically using Hack Reactor outcomes data in order to keep things simple, but I encourage you to analyze data for all bootcamps in the industry.
How Much Money Will I Make Compared to My Current Career as an Accountant?
Many of you reading this have seen articles online or on Twitter about bootcamp grads landing software engineering jobs with salaries well into six-figures. Early Breaking Into Startups guest Haseeb Quereshi’s story about landing a $250,000 offer from Airbnb may be my favorite example of this. Like you may be now, I also was skeptical of these articles at first. Studying something for just three months prior to being hired for $100,000+ sounds too good to be true.
Further, without quantifiable, verifiable outcomes data it was hard for me to justify essentially throwing away my four-year college degree, throwing away my CPA license and giving up my middle-class, decently-paying accounting job. That’s where the Council on Integrity in Results Reporting (CIRR) comes in.
To analyze whether I’d make more money as an engineer, and if so how much more I would make, I analyzed the CIRR salaries and outcomes data. After picking through the data it was clear to me that people were in fact getting hired as engineers out of coding bootcamps and obtaining salaries north of $100,000/year.
Potentially making more than twice as much as I did as an accountant, to do something I think I would enjoy much more than accounting, that opens up many more opportunities than accounting? Sign me up.
Will I Get a Job?
This was the most important factor I considered when deciding when I wanted to make the jump to software engineering. If I was going to quit my job, potentially move across the country and pay New York City or San Francisco rent prices for 6-12 months without a steady source of income I wanted to be essentially certain that I was going to land a job.
So I once again turned to publicly available CIRR outcomes data. During the early days of coding bootcamps there was some inconsistency in the way bootcamps were reporting their outcomes. Was a student employed as a part-time teaching assistant for the bootcamp they attended “employed in-field” following graduation? I would argue no. Prior to the CIRR there was no standard definition for “employed in-field” but now there is.
As of the end of 2017, roughly 75% of coding bootcamp grads in New York, San Francisco and Denver were employed as engineers within six months of completing the bootcamp.
These numbers have since changed, so if you are considering a coding bootcamp I would strongly encourage you to dig through CIRR or other audited outcomes data for the bootcamp(s) you’re considering, and perhaps even dig through the broader industry-wide data in order to gain an understanding on the trends in the industry.
I evaluated my decision regarding the city in which I wanted to attend a coding bootcamp from three main perspectives: the number of job opportunities that would be available upon graduation (which I detailed earlier), the expected annual software engineering income and annual expense to live in a given city, and the quality of the coding schools located in each city.
I turned to CIRR data to estimate potential earnings in each city and combined those with estimated cost of living expenses in order to determine which city would result in the highest cost-adjusted annual income. As a young, single person who is willing to have roommates I estimated that moving to New York or San Francisco would cost me roughly $10,000 in additional expenses per year.
Using the simple framework outlined above it was clear that New York or San Francisco would result in an equal or higher annual salary, even after adjusting for cost of living. I encourage you to apply the same type analysis to the city in which you currently live, as well as any other cities in which you would consider living.
Given the above analysis of salary and expenses data I was able to narrow my decision to San Francisco or New York. I eventually decided on New York because of the analysis I mentioned earlier regarding the ability to apply in all three markets.
What is the Expected Value (EV) of Attending a Coding Bootcamp
Using estimated salary data and estimated raises as both an accountant and a software engineer I was able to estimate how transitioning from accounting to software engineering would affect my five-year income potential.
These software engineering income numbers may seem outlandish on the surface, particularly the $25,000 raise after two years, however a number of sources for salary data, such as LinkedIn, Glassdoor, Hired, and levels.fyi all validate that these estimates are actually on the conservative end. Anecdotally, these estimates proved to be too conservative, as my entry-level salary was closer to the Year 5 estimate than the Year 1 estimate.
Just as I did with the CIRR data, I would encourage you to explore salary data for the city in which you live in in order to put together an estimate of how becoming a software engineer would affect your income potential.
Wrapping it all up
I’ve bounced back and forth from factors I considered in 2017, when I was deciding whether I wanted to become a software engineer, to present day, so I would remiss if I didn’t let you know how it’s worked out thus far.
Finally, for those out there struggling through what seems like impenetrable roadblocks and dead ends, I am currently pushing myself outside of work to learn python, so I am right there with you! Stick with it I promise it is worth it!
In the meantime I hope you were able to get a sense for how approaching decisions from a perspective rooted in logic and data can allow you to take a step back and evaluate things fully in order to make the most informed decision possible.