Computer Science Degree vs. Coding Bootcamp Tradeoffs January 10, 2018
The difference between a computer science degree versus a coding bootcamp is something I often get asked about. I have put quite a bit of thought into it, since I have a second B.S. in Computer Science via OSU’s online professional CS program and have been teaching at Rithm for nearly 6 months.
Disclaimer: the opinions expressed in this blog are based on my experience with Rithm School and Oregon State University, respectively.
- + Math Foundations
- + Algorithms / data structures
- + Lower-level stuff (operating systems, compilers, architecture)
- + Resume fodder (credential)
- + More internship and entry-level job opportunities
- + Building web apps
- + Framework skills
- + Immersion
- + Cohort experience
- + Networking
- + Job support
- + Enter industry quickly
- + Sufficient intensity/ difficulty for dev jobs
- + Learn fundamental programming concepts and techniques
- - Behind the curve with technologies
- - Lacking in web dev
- - Huge time investment (several years)
- - Low engagement with fellow students and teachers
- - Less math / core CS / algorithms
- - Not enough time
- - No resume fodder / credential
- - Tooling, Configuration, Deployments: anything DevOps
- - Expensive, and Satisfaction not Guaranteed
Computer Science Degree
The greatest strength of a CS degree is the sheer amount of time you spend studying. Even the online OSU program that I did, which only requires 60 CS credits, cannot be completed in less than 1 year full time (four 11-week quarters with four classes each - not for the faint of heart). That’s a lot of coursework, and you get 10+ weeks of data structures in C, algorithms in Python, or discrete mathematics, for example.
CS degrees also tend to have greater breadth of topics. The idea is to make you into a computer scientist, or someone who understands how computers work from electrical circuit gates all the way to web markup. For instance, I had a class in computer architecture and a class in mobile web design (although the latter might be less common at typical CS programs).
One of the issues with academic computer science (and, by extension, academia in general), is that it is sometimes “out of touch” with industry, or at least lagging behind. Many academic CS programs consist almost entirely of Java or C/C++. There is nothing wrong with either of those languages, and they are some of the most widely-used in the world. However, many students might want to major in CS because of a desire to build web/mobile apps. Those same students may be disappointed when they realize there is minimal emphasis on web development in a traditional CS program, and basically no talk of frameworks such as React or Angular. In my web development class in 2014, the content was still mostly PHP. A friend of mine did not even get to take a web dev class in his CS program.
There also tends to be less social support for CS students than bootcamps. Introductory classes often consist of 100 or more students with 1 instructor and a handful of TAs at mid to large-sized universities. This can be daunting and disheartening to say the least, and it might even hurt your social networking potential.
Bootcamps are awesome at making students into app builders. Rithm School students start building JQuery apps immediately, then dive into various techniques of app-building with Python/Flask, Node/Express, React, and Redux. The tech stack is current and practical by design: you need to know what companies are using so you can get a job ASAP, and this alone can give you a large advantage over fresh college grads who can hardly build a todo app with JQuery.
Bootcamps are also great because of the cohort experience. The intensity is more bearable when you have people who are in the same boat as you and can become your friends / professional colleagues for all time. And at Rithm School we also keep the student:teacher ratio low (no more than approximately 4 students per 1 teacher), which can foster an environment of “mentorship” that many students find incredibly valuable.
Bootcamps are always bottlenecked by time. But brevity is a necessary evil for bootcamps to exist at all. It’s hard to make a viable program more than 20 weeks or so without burning everyone out or having them lose interest (including the teachers). That being said, it’s also an incredible advantage when you can get catapulted into a developer job that pays well without spending 2-4 years of your life transitioning careers.
The lack of time causes a few other negative side effects. For one, bootcamp grads don’t have time to learn as much sophisticated math, data structures, and algorithms as CS students. These concepts are just too complicated to master in such a short time. Likewise, there is not enough time to cover things like operating systems, networking, or machine learning which are typical university courses.
Ultimately, if you want a career in tech, either one of these paths can yield a successful outcome. Both CS grads and bootcamp grads will have certain knowledge gaps when they start their first job. Don’t just take my word for it - a 2016 blog post by recruiting company TripleByte reached similar conclusion. Regardless of that route you choose, a primary goal for that first job should be a role that will involve continued mentorship and growth.
Of course, I’m also biased, and if you’re curious, I think you should strongly consider learning more about Rithm. You can check out some of our curriculum here. If you like what you see, we’re happy to chat more about your career goals!
Written by Michael