I've come across a lot of discussion lately about the best path to becoming a developer. Unfortunately, often this is focused on disparaging one path over another. For instance, I've seen comments that bootcamps are a waste of time and money and I've seen similar talk about obtaining a CS degree from a university.
This fits an unfortunate pattern common in the developer community whereby some people deem that there is one "right" solution to a problem. Each of these paths has pros and cons and which one is right for you depends largely on your goals (both short and long term), your finances, your time and your interests. There is no wrong way, in my opinion, but there may be options that better meet your specific needs.
It's important to consider that each individual's motivations for becoming a developer are not the same. For example, Evans Data found that, on average, women are more likely to be motivated to "develop my skills and challenge myself" while men are more likely to cite wanting the skills to support a startup or new business. Both are legitimate motivations, but can impact an individual approach to education.
In this post, I'm going to lay out the three most common educational paths to becoming a developer in a broad sense and try to give an even-handed look at the pros and cons of each, from my point of view.
College Degree
A college degree with a major in computer science or a similar topic of study is the most traditional path to becoming a developer.
Pros
- Many jobs require a degree - Do you have to have a degree to become a developer? No. But there are still many positions at companies that have a baseline requirement that you have a degree - often specifying a BS in computer science or related field of study. Many notable companies have dropped this requirement, but even when it isn't a requirement, it is often listed as "preferred."
- A well-rounded education - The thing about a college degree is that it is about more than just coding. This may seem like a waste of time when you are young, but, in my opinion, has benefits that last well into your career. Speaking from experience, you may not know where your career will lend you and some of the skills you'll learn and interests you may develop in college can be beneficial in the long run (for example, studying history and creative writing in college built up my writing skills that have led to career opportunities later in my career).
Cons
- It's the most expensive option - According to the College Board, the average yearly tuition in the US for 2018-19 was $10,230, meaning a degree will cost over $40k over 4 years. It's important to note that about 3/4 of students receive grants and scholarships that mean that they don't pay the full tuition, but it is still likely to be very expensive and this cost may be out of the range of possibility for you.
- It takes a long time - Sure, you can finish in less than 4 years, but 4 years is the norm. If you are working already to support yourself or your family, this will only extend the amount of time it will take to complete a degree as a part-time student.
Keep in mind that an alternative path here is to study an unrelated field but still get a job as a developer - I have met many developers with non-CS degrees in the industry (myself included). However, you'll likely have to combine your degree with one of the other paths below.
Bootcamp
Bootcamps are a relatively new concept in developer education, with some of the first ones being founded in 2011-2012. While there is no accepted definition of a bootcamp, they generally last anywhere between 2 and 6 months (the average is about 14 weeks).
Pros
- They are the quickest option - Even a lengthy bootcamp at six-months would be significantly shorter than a college degree. It is also very likely shorter than the amount of time you'd have to invest in a self-taught program, if only because you follow a designed curriculum and generally attend full-time, plus you leave with some form of certificate while being self-taught will require you invest time in proving your qualifications in other ways (building a portfolio perhaps).
- The focus on code - Because they are designed to move quickly, bootcamps are very focused on getting you hands-on coding early and often. Most programs work on projects that students can then present as portfolio items when they leave complete the program.
Cons
- They are expensive - According to the 2018 Coding Bootcamp Market Size Study, the average price of a bootcamp is $11,906 (with the average length being 14.3 weeks, that's well over $800 per week). While significantly cheaper than a college degree in terms of overall cost, a bootcamp certificate arguably has significantly less value, especially over the longer term.
- Job placement can be difficult - Recent surveys indicate that, while a majority or graduates (56.8%) have employment within 12 weeks, only about 75% of those without a college degree end up employed in the end (while other numbers are higher, I use that as a point of comparison since we are speaking of Bootcamps as college degree replacement). I will note that most major bootcamp programs offer job placement assistance of some kind.
There are over 100 different bootcamp programs around the country. Given the cost and time investment, it is worth doing your research on each program's success rate in terms of job placement and curriculum.
Self-taught
Self-taught is a broad category since it covers everything from online classes to books to any number of alternative learning methods one can find.
Pros
- This is the least expensive option - The cost obviously depends on your choice of learning path. It can be anywhere from $0 if you take advantage of a variety of free online learning options to several hundred dollars to subscribe to courses at Udemy, CodeAcademy or Pluralsight, to name a few popular options (based on a yearly subscription or multiple courses).
- You are in control - If you are the dedicated, self-motivated type of person, then the lack of a specific curriculum or time to completion can actually be a big benefit. The "curriculum" is up to you and can focus on your specific areas of interest. How long it takes is really just a matter of your time and dedication, which can be made to fit into a schedule that still accommodates work and/or family.
Cons
- No placement assistance - What does it take to meet the qualifications necessary to get a job as a developer when you are self-taught? There are no clear guidelines and they are likely to change depending on the company. This is complicated by the fact that you are on your own in terms of job placement while colleges/universities and bootcamps have resources and recruiting partnerships to help you in your job search.
- You are in control - As much as this is a pro, it can also be a con. What's the curriculum? Up to you. How much time do you need to spend? Up to you. How long will it take? That's unclear. If you struggle with motivation or finding the time to complete training and courses independently, you may never gain the momentum necessary to get you to the point that you are ready to start your career.
It's probably worth mentioning that the self-taught option is something that can be combined with any of the other options, especially as the costs are low. In fact, it should become part of any developers continuing education throughout there career, regardless of how many years you spend in development.
Share Your Experiences
While I did share some research, much of this is based upon my own opinion and experiences and are purposefully generalized. Your own perspective and experience may be different. I'd love to hear about your education journey towards becoming a developer - share in the comments!