In the age of technology that we live in, the Computer Science industry is booming. It is becoming a more and more desired field because of the number of opportunities, pay, benefits, etc. However, everyday programming jobs across the world are going vacant because we can't find enough qualified candidates to fill them.
In some ways, this shouldn't be too surprising. If you think about it, every company needs some sort of software. Even if their product isn't specifically software, they still need a website, mobile app, backend data, etc., but there are still only so many developers.
Every company needs some sort of software, and developers are needed to build that software.
Because of that, people across the world are trying to figure out how to break into the industry. Well, there are three different ways to do just that.
- get a formal Computer Science degree
- attend a programming Bootcamp
- find enough resources to teach yourself
My Background
Let me start by saying that this is a special topic for me because I have experience in each category.
- Computer Science degree from Vanderbilt University
- spent countless hours self-teaching through YouTube videos, Udemy courses, and building side projects
- taught a Bootcamp in Memphis
I have a formal CS degree, but I believe I learned significantly more from YouTube videos, Udemy courses, and building side projects than I ever did in school.
Having been involved in the education and tech communities for the past 7+ years, I have met a lot of people at different stages of a career transition and given out lots of advice along the way. Here's my take on the pros and cons of these three different ways to get started in tech.
Computer Science Degree
As I said, I have a formal CS degree. Though I wouldn't trade my overall college experience for anything, the CS curriculum wasn't the most practical. We spent a lot of time learning the theory behind programming and, honestly, building things that already exist (Arrays, LinkedLists, etc.).
When I graduated from college, I had never used source control/Git, had barely worked with a terminal, and had never learned the basics of developing or hosting a website
I think my degree helped give me a deeper foundation in programming concepts (think Data Structures and Algorithms) than people typically get during a Bootcamp. On the other hand, I believe the knowledge that students learn in Bootcamps is much more practical. I would guess that most Bootcamp graduates are more prepared to commit code than I was coming out of college.
I would guess that most Bootcamp graduates are more prepared to commit code than I was coming out of college.
There are two major negatives with getting a formal degree. It takes 2-4 years to complete a degree, and some people don't have that much time. Additionally, universities can be extremely expensive. I was incredibly lucky to have received full financial aid and didn't have to pay a dime. Depending on your budget, you could consider cheaper options like in-state schools and community colleges.
Here's one thing I can definitively say about having a formal degree. It makes it MUCH MUCH easier to get interviews. Although many companies are recognizing the fact that there are talented developers without degrees, unfortunately, many companies still require them.
All in all, my four years of college were some of the best of my life, but for much more than the classes I took. I got to build relationships with and learn from so many different people from so many different locations and cultures. I certainly wouldn't have done it any differently, but it's not the best option for everyone.
Pros
- the college experience can be incredible
- it is much easier to get an interview and your first job
- well-defined progression through programming concepts
- ability to network students, faculty, and surrounding employers
Cons
- programming material is typically more theoretical and less practical
- can take 2-4 years to complete
- can be extremely expensive
Programming Bootcamp
Bootcamps have been on a significant rise as more and more people are looking to transition into careers in tech. In many ways, it has become the de facto way to completely change careers without going back to school. It has worked for thousands of programmers (maybe millions?), and it's a more than viable option.
One of the initial benefits of a Bootcamp is the fact that are tons of them in different forms. For the most part, you can probably find one that fits your budget, time commitment, etc. Here are a few things that vary.
- cost (free, pay upfront, pay upon graduation, etc.)
- time commitment (full-time, parttime, during the day, at night, etc.)
- in person vs online
- curriculum
While the plethora of options can be beneficial, it can also be difficult to choose the right Bootcamp for the same reasons.
While the plethora of options can be beneficial, it can also be difficult to choose the right Bootcamp for the same reasons. When trying to decide on a Bootcamp here's a few things to consider.
- who is the instructor
- what have past graduates said
- what is the graduation and placement rate
- what is the curriculum
As I mentioned above, I believe the curriculum in Bootcamps is more practical than most CS degrees. Because of this, if a student masters the concepts presented to him/her throughout the Bootcamp, they are arguably more prepared to hit the ground running in their first role.
However, I do feel that Bootcamps typically move too fast. It's incredibly difficult to internalize all the topics that are taught in a Bootcamp simply because you have such little time. These programs are expedited for a reason (to get you a job ASAP), but that comes at a risk. I highly encourage all Bootcamp graduates to continue to study, learn, and build every day to be as prepared for their first role as possible.
Because of the expedited time frame, Bootcamps are a pretty intensive commitment. If a student finishes a Bootcamp, you can bet that that person is incredibly passionate, motivated, and dedicated. Here are a few reasons why I think this is beneficial.
- they specifically want to be in the field
- have proven the ability to learn quickly
- they are highly motivated to change careers
Pros
- lots of different options
- much quicker turnaround than college
- material is often more practical than college curriculum
- assistance from Bootcamp in finding jobs
- focuses on modern skillsets that companies are actively looking for
Cons
- can be hard to gauge the quality
- the pace is incredibly fast and it's easy to lack a full understanding of core concepts
- can be expensive
- might require leaving a job
Self-taught
The last option on this list is to simply dig in and learn all the things you need to know on your own. This is a pretty daunting task for most people especially for those who aren't already extremely motivated, but there are certainly some benefits.
There is an amazing amount of free content available in the world. I mean just go to YouTube and search "JavaScript" and see how many videos you find. You can also find amazing paid content from instructors online (I have a list of Udemy courses I can recommend for $10) with prices of anywhere from $10-\$100.
The availability of free and low-cost resources is one of the major benefits of self-teaching, but there is also a downside. With so much content available, many people just don't know where to start. Without the structure of a formal curriculum, it's easy to get overwhelmed quickly. Because of this, I recommend building relationships with people in the tech community that you can ask for guidance along the way. By the way, if you're reading this and want to ask me for advice, please don't hesitate to do so!
Outside of the cost, flexibility is probably the next major benefit. With self-teaching, you don't have to commute to a classroom. You don't have to give up your job. You can work learning into your everyday life. Again, this is incredibly difficult to do if you are not already hyper-focused. No one is going to be pushing you along. You have to do that yourself.
I would consider being self-taught to be the most difficult route to landing a job in tech. One of the ways that you combat this is to ensure that you have a solid portfolio. Make sure that you have at least 3 solid projects that demonstrate your skills as a developer. I would recommend having at least one fullstack project that shows your abilities on the frontend and backend. This will help open up more opportunities for you as you apply. Just remember, your projects might be the only thing an employer has to gauge your abilities.
Pros
- cheap (ex. YouTube is free and Udemy courses go on sale for $10)
- self-paced, work when you can (you don't have to leave your job)
- follow your interests
Cons
- lack of formal structure or progression path
- lack of instructor for real-time learning/feedback
- harder to get interviews without a degree or Bootcamp on your resume
Wrap Up
My goal is to help where I can with people that are looking to transition careers. I love being a part of the process because people are truly inspiring for me. That's why this article was so much fun.
I'm curious, what are your thoughts on the breakdown above? Do you agree? Disagree? Anything else you would add? What background do you have? Comment below or find me on twitter @jamesqquick.