Software engineering is a high demand job nowadays. There are currently about 1.5 million jobs for software engineers, and they are projected to grow by an astonishing 22% from 2019 to 2029. That means by 2029, about 33 million jobs will be added. It’s a stable job to have, and it can come with great perks: the compensation is great, you can get unlimited PTO, reimbursement for phone bills, and WiFi bills. You can see why more and more people are pursuing a career in this space.
Recently, coding bootcamps have sprung up and have gained a huge attraction due to their affordability and flexibility. Since 2013, coding bootcamps have grown by 11 times, with around 23,000 people graduating by the end of 2019. More and more people are attending them to jumpstart their careers as software developers. However, are these coding bootcamps more effective and more cost-efficient than academic institutions? Can they truly get anyone a software engineering job?
In my freelancing experience, I have worked with over 100 clients, which include those who have gone to coding bootcamps and those who have to colleges. I have seen both sides, so my opinion is not biased.
So, here’s the TL;DR
If money is tight, I suggest going to a coding bootcamp or an online program associated with an accredited university. Otherwise, go to a university to receive formal instruction because you will develop a more thorough understanding of computer science. This will pay off in the long term. This is because you will learn to think for yourself when tackling challenging problems and be exposed to various applications of computer science. These skills will be helpful in career promotions.
If you do decide on a coding bootcamp, please supplement it with extra reading material that focuses on data structures and algorithms. In addition, I would recommend taking extra courses on platforms like Coursera that specialize in topics, such as machine learning, databases, threading, etc.
University — The traditional, old schooled way
Universities — the number one advantage is the resources and breadth of the courses offered. You can have conversations with professors about how they are leveraging computer science to tackle real-life problems. A lot of these professors are pursuing cutting-edge research, and you can get hands-on experience in that research if you join his/her lab. When I was in undergraduate and graduate school, I joined a ubiquitous computing research lab, and it was really cool to see how to leverage computer science to mitigate issues in healthcare. I was able to get valuable experience that I could not get anywhere else.
Computer science is not learning the syntax of languages. That’s the easy part. The hard part is understanding the fundamental concepts and theories and learning how to apply them in various settings. The breadth of courses offered at universities allows you to gain a well-rounded understanding of computer science as you can deep dive into several aspects of it. In a university, you can take classes in fields that range from machine learning to database design to robotics to system security, etc. There is no coding bootcamp out there that will do this!
Coding bootcamps are designed to give you practical training to help you get a job as an entry level engineer. They are not designed to teach you the theoretical and higher-level concepts.
The second advantage is that you get an accredited degree. This plays a huge role in the resume screening of job interviews. A good chunk of software engineering jobs requires you to have an undergraduate degree. However, there is a trend that more and more companies are shifting away from this requirement and just instead focusing on project and work experience.
The third advantage is the career network. A lot of these universities will have established company connections, and as a result, these companies tend to recruit heavily from that school. For instance, Workday, Google, and Facebook recruited heavily from my school. Most schools have an event called “Career Fair” in which hundreds of companies come to the school to recruit for that particular day. In some cases, interviews are done the very next day.
Okay, that sounds awesome …. What’s the catch here?
Going to these universities is a big investment! If you’re going for a 4-year undergraduate school, this is how much you would have to pay total:
So, the range is between $87,800 to $199,500 USD depending on what type of school you go to. Loans may be needed to help pay your tuition, which may require several years to pay off. As a result, it may be difficult to increase your savings and net worth rapidly while trying to pay the loans off.
What about graduate school?
Now, there are some people who have already received a Bachelor’s degree specialized in non-tech but want to pursue software engineering. For those people who are considering graduate school, I recommend that a PhD is not necessary to get into the industry. A Master’s will do just fine, and this is how much it would cost annually:
Now, one thing to consider is that there are some schools that grant you a Master’s degree after 1 year or after 2 years. Thus, depending on the program, tuition can range from $30,000 to $60,000 USD for a public university and $40,000 to $80,000 USD for a private university.
The difference between the 1-year program and 2-year program is that the 2-year program places more emphasis on a research project and that the course schedule is not as heavily packed as the 1-year program.
This is still a lot of money! Any other alternatives for me to get an accredited degree?
Yes, there is! Recently, MOOCs (Massive Open Online Course) have become extremely popular in sites such as Udacity or Coursera. Some universities have started to partner up with these platforms. A famous example is Georgia Tech’s online program for Master of Science in Computer Science. That program costs a total of $7,000 USD. If not being on campus and not being able to interact with professors on a 1:1 basis are acceptable for you, then this may be a suitable option for you.
Bootcamp — Nontraditional Way
Bootcamps are so cheap compared to a 4-year university; that’s why they are so popular. They tend to cost anywhere from $5000 to $20,000 USD. Now, if you cannot pay that initially or you are nervous that you cannot land a job after graduating from bootcamp, bootcamps have another payment plan called deferred tuition. Deferred tuition allows you to pay no upfront cost or little cost, and once you land a job after bootcamp, a fixed amount from your salary will be used toward paying off the bootcamp.
The second advantage is that bootcamps are also shorter, as they can last from 8 to 12 weeks. Instead of graduating in years from universities, you graduate in weeks. The time investment is low compared to going through the traditional way.
Fantastic! Cheap and short! But then what’s the issue here?
Attaining a job right after bootcamp is not an easy task. A Stack Overflow study revealed that around 9% of graduates never found a software engineering job. 22% of graduates said it took about a month or longer to get a job, and 7% said it took 6 months or longer.
Why is this happening?
The focus of bootcamps is teaching their students skills to land an entry-level software engineering job. So they will teach them the full-stack languages (HTML, CSS, Javascript) and teach them backend (Python, Java, MongoDB). Because of the focus on these languages, these students tend to have a weak foundation in computer science fundamentals, which I have noticed countless times.
Their understanding of data structures and algorithms is super weak.
Bootcamp graduates struggle in evaluating time complexity of a coding problem. They do not know how to perform recursion or graph traversals. They are not comfortable tackling coding challenges. Why this is an issue is, unfortunately, companies like Facebook, Google, Amazon, Twitter, etc ask these types of questions for phone interviews and onsite interviews. For these competitive companies, the level of technical questions asked on these topics ranges from medium to hard difficulty.
I have witnessed numerous clients that graduate from bootcamps fail coding interviews.I would say more than 70% of my clients who are bootcamp graduates have failed or would have failed these Facebook-rigor interviews.
Now what’s unfortunate is that some of these bootcamp graduates find out the tough way through constant rejections at these super competitive companies. They then enroll in another coding bootcamp designed to help with interview prep, which can cost around $5,000.
So what ended up maybe being a $10,000 investment now becomes a $15,000 investment.
Not all software engineering interviews are as hard as Facebook’s. Startups and smaller companies tend to have a lower bar for hiring engineers. However, if you are trying to aim for competitive companies, then my recommendation to overcome this weakness is to find supplemental reading materials and videos that focus on algorithms and data structures.
There is no one right way of learning how to become a software engineer since each person has different needs. It also depends on what kind of software engineer you want to come. If you want to aim for a front-end position versus a backend position, then that will require you to focus less on higher-level software engineering concepts and focus more on web frameworks and technologies.
Learning to become an excellent software engineer is a journey. To this very day, I am still learning new concepts. Your journey doesn’t stop at coding bootcamp or university.
This article was written by Yen Huang and originally published on Towards Data Science. Yen is a software engineer at Twitter. He works on the Messaging team, maintaining and improving pubsub systems. He has worked with numerous clients on ramping up their technical skills for jobs with over 400 client sessions. If you need help with resume or interview prep, email him at his business email doseofcode1@gmail.com. Also, follow Huang on Instagram.
Get the TNW newsletter
Get the most important tech news in your inbox each week.