If you want to become a software engineer in 2021, the good news is that there are now a lot of different ways to get there.
You have three main options when it comes to education. The costs vary widely, but all are popular approaches used by thousands of people to kickstart their careers in tech each year.
A 4-year degree in Computer Science is the most expensive route at around $98,853 just for tuition and fees. An intensive coding bootcamp is a newer option, costing $13,584 on average. Self-teaching via books and online courses can range from $0 a few hundred dollars (depending on which resources you use).
Beyond the price tag, the differences in time commitment and quality of education also contribute to the overall value of these different options. Let's take a look at the unique benefits of each, from most to least expensive, to see which would be the best fit for your situation:
High cost: Computer Science degree
Going to—or possibly back to—college. This is the traditional 'official' route into a career in software.
You don't have to study computer science specifically (computer engineering, software engineering or electrical engineering are all common related technical fields), but CS is still considered the most typical major.
Total U.S. costs for college (including tuition and living expenses) vary, but these numbers can give you some idea of what to expect:
- $87,800 for a public 4-year institution (in state)
- $153,320 for a public 4-year institution (out of state)
- $199,500 for a private nonprofit 4-year institution
However, these averages assume you finish within 4 years. Only 39% of students actually do. In fact, nearly 60% of undergraduate students take 6 years to complete a 4-year degree. Fortunately, most students also receive some sort of financial aid that can help ease the total price of tuition.
The benefits of getting a computer science degree
A thorough, theory-heavy education which will give you a solid foundation in computing concepts, and prepare you well for interviews at all the largest modern tech companies (think Google, Facebook, etc.), is the main goal of this route.
Although it's becoming less of a requirement to have this degree on your resume, there are still situations where it could help you. Many companies unfortunately do still seek out candidates with this type of traditional education over others.
Should you get a computer science degree?
In the U.S. at least, a formal education is only likely to be available for a small number of people relative to the number of people who would like to become software engineers.
If you're of college age and are deciding on a major, or are just considering college anyway, this option will prepare you well for a career as a software engineer.
But going back to school is not an option for most older career changers, whether it's financial barriers, or work or family commitments making this choice simply out of reach.
Alternatives to a traditional computer science degree
If you're set on the idea of a structured academic education (and the potential pedigree of a CS degree on your resume), but can't commit to the on-campus experience, there are now online degrees which can be done part time.
They still require 3-6 years to complete, but are much more possible to fit around your current lifestyle—not to mention easier on your finances.
This Bachelor of Computer Science online degree from the University of London costs £10,592-£15,889 (depending on your location).
If this is still out of your price range, or you just don't want years of formal study, read on for some much quicker alternatives.
Moderate cost: coding bootcamp
A newer route into software development that has become hugely popular in recent years is the coding bootcamp. These are intensive programs designed to teach you the skills to become employable as a software engineer or web developer in a short amount of time (usually just 3-12 months).
Tuition costs range from $10,000-$20,000, but the total costs are often higher because you have to factor in not being able to work for the duration of the program—and potentially also not working for several months after while you try to secure your first job in a new industry (which can be a challenge).
Bootcamps now exist in cities across the U.S. as well as online, plus in many more countries globally.
The benefits of coding bootcamps
The main appeal of bootcamps is the speed. After all, why would anyone go back to school for 4 years if you can get a similar job after only studying for 3 months, right?
The reality is not usually quite so easy.
Most students don't manage to get hired immediately, with some eventually abandoning their dreams of an engineering career altogether. But, even if it takes a few months longer than the bootcamp program, many graduates do find employment within a year of graduating.
You might also like: How to get your first job after coding bootcamp
Other things you gain from a bootcamp are structure and curriculum, support and mentoring, and a network of peers which can be useful even years into the future.
Should you do a coding bootcamp?
Although clearly much cheaper and faster than a traditional 4-year degree, coding bootcamps are still not an option for a lot of people. Not everyone has access to thousands of dollars for the tuition, and not everyone is in a position to simply drop everything and devote 3+ months of their life to an intensive program.
If you think you could be in a position to make it work, you should still consider carefully whether a coding bootcamp is really worth it for you. After all, it's also possible to become a software engineer with no formal education at all—which can be even more cost effective.
Alternatives to a coding bootcamp
If you like the idea of a structured curriculum and in-person mentorship, you could take some introductory programming classes at a local community college. These programs are not likely to be as frequently updated or tailored to the industry, but can be a good, low-commitment way of learning the fundamentals of programming.
Low cost: self-taught
The final option: teaching yourself. Thanks to the many educational platforms and resources available today, it's now possible to get a quality academic education for cheap or free.
From courses to books to tutorials to YouTube, there are plenty of places you can learn from online. If you build projects to create a portfolio to showcase your new skills as you go, you can eventually get a job this way.
To give you some idea of the range of options available when it comes to courses:
- Coursera offers courses, certificates, and degrees online from world-class universities and companies. You can audit most courses for free, but can pay for their longer, more in-depth courses and certificates.
- edX is a similarly academic platform with a mixture of free and paid courses.
- MIT OpenCourseWare is a web-based publication of virtually all MIT course content, permanently open and available to the world. So yes, you can even get an MIT education totally for free!
- Udemy has specific courses on many technical topics starting at around $10.
- Udacity offers most of their beginner courses for free, which are precursors to their nanodegrees. These are longer courses with a specific focus designed to be like cheaper online coding bootcamps (they also come with mentorship).
- Khan Academy has a lot of content aimed at children, but they do also have introductory computer programming courses—and they're all free too.
- freeCodeCamp is another popular (also free, in case you hadn't guessed) resource designed to provide a path to your first software developer job. They also have a YouTube channel if that's more your thing.
The benefits of being self-taught
This 'choose your own adventure' style of learning means you can pick resources that suit your particular learning style. Love reading? Learn from books. Prefer watching? Find a video course. Learn by doing? Build projects you find interesting.
You can also pick exactly the pace that works for you. With no minimum time commitment or pressure to finish by a certain date, you can learn in a way that fits around your lifestyle.
But you're probably wondering: can you really become a software engineer entirely for free? Technically, yes!
So why don't more people do it?
Learning to code is hard. It has a steep learning curve, and it's not for everyone. And going through it entirely on your own with no structure, mentorship or support is by far the most difficult way you can learn.
The more expensive paid courses often come with some kind of mentorship to help get you through the hard parts, but free resources don't provide this. Unfortunately, without structure and support, many people just don't make it past the hurdles.
Should you teach yourself to code?
Teaching yourself might be the most flexible (and cheapest) way to become a software engineer, but it does take a significant amount of determination, motivation and self-discipline to stick with it and not quit when things get tough.
If this sounds like you, go for it! You can always start with free introductory resources and consider a paid option later if you find yourself struggling.
Pro tip: You won't have any program to guide you on what to learn, so to avoid getting lost or wasting time, be sure to create your own structure.
I also highly recommend finding a person or community who understands what you're learning (they could even be learning too) just so you're not totally alone for those times you get stuck and feel like quitting.