TL;DR: Is a computer science degree worth it? For me, partially. For you? You tell me.
In August 2018, I enrolled in college to get my computer science degree. However, I wasn’t your typical CS student. First off, I was almost 30 and already had a college degree from nine years earlier. Secondly, I was already a professional software developer with a full-time job.
The vast majority of the other students in my classes were looking either to break into the technology field or to leverage the degree for a better job. But I wasn’t trying to do either of those. So why did I even go back to school if I was already a software engineer? That’s a question I heard a lot. And rightfully so. It seems like a waste of time and money. Or at least it did to the people I told.
There were a number of reasons I chose to get a CS degree, such as improving my computer science and algorithm fundamentals — those areas aren’t my strongest. But there was one primary reason that motivated me to go back to school: to see what all the hype was about.
You see, I’ve written about my journey into tech as a self-taught developer a couple of times. I’ve heard people claim that a CS degree is the only way to become a real software engineer. While those people are in the minority, they were loud enough to make me scratch my head and wonder if they knew something that I didn’t.
“If you don’t have a software engineering degree you’re not a real software engineer. … You only know how to do some code.”
Despite the rise of free or cheap online resources, was it still worth forking over an arm and a leg for a college degree? Was it still the best way to become a software engineer?
Fortunately, I was in a position to answer that question myself. I had an employer that offered reimbursement for college courses, and I found a university with an online CS program that I could do part-time outside of work hours. So I decided to conduct an experiment. I would earn my CS degree and finally see for myself if it is really worth it.
But what does being “worth it” mean? Everyone has their own definition. For my experiment, I decided a CS degree would be worth it if it both offered more job opportunities and would have prepared me for my job better than my self-taught route did.
Fast forward one and a half years to April 2020, and my experiment has concluded. I am now a computer science graduate with the diploma to prove it.
As for the results of my experiment? That’s what the rest of this article will be focused on.
As a side note: Take all of this with a grain of salt. This experiment was meant for entertainment rather than as peer-reviewed analysis, and my findings pertain only to myself. I hope my experience offers some enlightenment, though.
A Degree Still Matters (to Some People)
Photo by Clem Onojeghuo on Unsplash
One of the parameters of my experiment was to determine whether having a degree would result in job opportunities. It didn’t take long to find the answer.
When I first enrolled in the CS program, one of the first things I did was I updated my website, resume, and LinkedIn. Hey, I was excited and wanted everyone to know about it. I’m allowed to be a bit vain from time to time.
Within a couple of weeks of updating my LinkedIn, there was a noticeable uptick in InMails from recruiters. Not only that, they outright referenced my degree in their messages.
An email I got from a recruiter
But that itself wasn’t very convincing. So to test whether recruiters would notice the CS degree, I re-uploaded my resume to Hired. I had created a Hired profile six months earlier, though the results had been pretty dismal. I was curious to see if I would fare better this time around.
I did. By a lot.
Six months prior, I had only gotten a couple of hits, all of which tried to negotiate me down from the salary I was seeking. With the updated resume, I got eight hits within a couple of days, all of which accepted my suggested salary (which I had increased).
Now, I doubt the new section on my resume stating “computer science degree (2020)” was to thank for all of this newfound interest. I did have six months more work experience, after all. But I do think it played some role, as many job listings these days have a line saying “computer science degree (or related experience).” My degree made for a nice tick in that checkbox.
Photo by Glenn Carstens-Peters on Unsplash
I can’t say I was surprised by the new attention. A CS degree can signify to recruiters and hiring managers that you have been vetted by an accredited institution and have a basic understanding of software engineering that they have come to expect for entry-level engineers.
A self-taught engineer, on the other hand, is a wildcard. Since they don’t have prior experience, it’s difficult to know if they are ready for a job without diving into their portfolio. But most recruiters don’t know how to do that or don’t have the time.
It’s worth pointing out that not every recruiter or hiring manager will care about a computer science degree. I got a job without one and many companies are eliminating the degree requirement from their job listings. However, from what I’ve seen, having one is definitely a boon to your resume, especially early in your career.
A Degree Is Not Job Training
Photo by JESHOOTS.COM on Unsplash
The second portion of my experiment was to assess whether a CS degree would’ve prepared me for my job better than my self-education did. I thought this would be a close call.
I grew up in Seattle, home to Microsoft, Amazon, and one of the most prestigious computer science programs at the University of Washington. Every software engineer I knew had a CS degree and most companies wouldn’t hire anyone without one. I grew up thinking that a CS degree, and college in general, was the best training to get a job.
However, going through college twice now has made me realize that this couldn’t be further from the truth. A computer science degree is not job training. The curriculum is broad, shallow, and covers a wide array of subjects.
Speaking from experience, I took courses covering calculus, discrete math, operating systems, computer architecture, data structures and algorithms, network security, project management, artificial intelligence, machine learning, and much more. Not only that, but I learned about three different programming languages over the span of a year and a half.
While all of those subjects are important to learn about over the course of a software engineer career, it’s a lot upfront. It’s tough to master a specific skill or language when the course material jumps from subject to subject every month or so.
And mastery is important because employers want expertise. They want people who can perform well and provide value in a given role as soon as possible, be it back-end, front-end, data science, etc. If you’re a candidate who is kind of knowledgeable in several different skills and languages, you’re more likely to be passed over for someone with a more focused proficiency.
Let me be clear. I’m not saying college is bad. College was designed as a gateway to higher learning and is fantastic at propelling prospective students into careers in research and academia.
However, too many people confuse a degree for direct job training. For someone who wants a job in web development and isn’t interested in learning how Linux avoids POSIX thread deadlocking, a computer science degree isn’t what they’re looking for.
In the past, a CS degree was enough to get a job, but times are changing. The job market gets more and more competitive every year, and employers’ standards for entry-level engineers keep growing higher.
From what I’ve seen, the computer science curriculum itself is not enough to prepare students for jobs. Oftentimes, they have to supplement their learning with side-projects, open source, and, if they’re lucky, internships. And the students who don’t, fall behind.
This explains why more and more CS students are attending coding boot camps and why more and more new graduates are emailing me for help finding a job.
So Was It Worth It?
Photo by Brendan Church on Unsplash
Based on the criteria of my experiment, the answer to whether my CS degree was worth it is: kind of.
I have more recruiters popping into my inbox than I did before I got my shiny diploma. However, in regards to whether it would’ve trained me for my job better than my self-teaching did, the answer is resounding no.
There were certainly courses that were relevant to my day-to-day work, but even more that weren’t. And when it comes to moving into a new career, whether it’s your first career or your fifth, any time spent learning information you won’t use is an opportunity cost.
However, that’s not to say that my CS degree was worthless. In terms of supplemental education on top of my self-taught background, it was perfect. It expanded my knowledge of the computer science field and solidified my fundamentals. For example, while I don’t directly use cgroups and namespaces in my job, I do use container systems like Docker. Learning how an operating system uses cgroups and namespaces taught me a lot about how containers operate under the hood.
Despite all the articles titled “Self-Taught vs. CS Degree” and “How I Got a Job Without a CS Degree,” it doesn’t have to be one or the other. After all, there are gaps in both approaches. It’s all about finding balance.
Photo by Christophe Hautier on Unsplash
For those of you studying for your computer science degree, make sure to hone your programming skills with side projects. And for you self-taught developers, take time to learn the computer science fundamentals. You don’t need to earn a degree as I did; you can simply teach yourself CS.
But this article isn’t to offer career advice. In fact, take everyone’s opinion on education with a hefty level of skepticism. While I have my own preferences, that doesn’t mean they’ll work for you. It’s all about trade-offs and finding the ones that work for you.
There is no right or wrong way to learn, just your way.
Top comments (10)
I got to agree with the same impression as you had. Since I took my degree because it's more marketable and easier access to my potential employers due to the network it provides. I do not really think it's for everyone unless you plan to climb up the career ladder having one is good. As being a academia has never been my aspiration but to just use it as a sort of "testimonial" to get my foot in the door.
WGU is an interesting test case, not least because of the Clayton Christensen connection (see christenseninstitute.org/publicati... for more about this). One wonders how a degree from expensive high-reputation places, say, Waterloo, CMU, or Stanford would compare. The scale of cost/reward would be challenging to evaluate in any case.
I don't really know much about the Clayton Christensen connection, but yeah I also wonder if my feelings would change if I were to have gone to a high profile university like Stanford. I didn't have the money or time to invest into going into a more prestigious university, unfortunately.
I completed my computer science degree back in 2005, at the time, we were taught C, Fortran, Oracle SQL, Networking. And, to be honest, none of them did the job for me in my career. What did the trick for me the real world scenarios that I came across during my internship.. So, to say if the CS degree helps, I would say, not much for me..
You received your CS diploma after 1 and a half years. That is interesting compared to what kind of system we have in Romania. The university program that we have here takes either 3 or 4 years - this is only for the bachelor degree. In addition, you can continue and get your master degree in 2 years and after that PhD takes an additional 3 years. From this point of view, what you have in the USA seems very short. I am not sure how detailed you can learn CS in such a short time.
I started working 5 years ago when I was a fresh graduate. I admit, I started by participating in an internship after which I got employed by the same company that organized the internship.
My impressions where the same as yours. Not much I learned at the faculty were I able to use at the internship or in the first few months after getting employed.
Here's my opinion after working for 5 years and having the "Senior developer" in my job title: at university you learn the basics, which helps you understand concepts in CS. How threads are scheduled, networking (TCP, UDP), OOP, how microservices work, what it takes to program in Assembly 8086, what are the common patterns, etc. At first I said that these things don't seem to be very useful, but man I was wrong. If you are ambitious (but rubbish - Top Gear fan here) you will be able to connect what you do daily at your job with what you have learned at university. This is one of the things junior developers lack (beside experience of course).
My recommendation is to do at least the bachelor program, but don't do it for the diploma. Do it for the knowledge you get.
The reason I was able to complete the program in 1.5 years was because I already had a previous college degree, so I was able to transfer many of my credits over for the general education courses (calculus, english, etc).
Also, the University I was enrolled in allowed me test out of classes that I already knew. For example, the I was able to test out of Intro to Scripting and other intro courses. So that's why I was able to complete faster than 4 years.
I can’t tell how much I appreciate this article! It parallels my current situation directly. In fact WGU is the university I am considering! I too have a job as an engineer in the industry and I am just not entirely sure it’s worth it. Your article articulates exactly why I feel that way. One thing I’m curious about with regards to your journey is the role accountability plays into it? Did you find yourself more accountable when a university was recording your learning progress as opposed to when you were self taught? My struggle is certain things such as math, algebra and calc I have a hard time being interested in and I’m wondering if being accountable will incline one to “eat your vegetables” as it were. Anyways, thanks for the article!
Yeah having that progress bar and end date is definitely helpful. When you're learning on your own, there isn't really a concept of being "finished". With a college degree, there is that graduation date, though the learning obviously doesn't end there.
Also actually paying for the degree is extra motivation. There's the feeling of sunk cost that you've already paid for it and you've already gotten so far so might as well finish it. That can help stay accountable.
Yeah, you nailed it.
good article, agree. but i don;t see any of those, Bill Gates didn;t finish collage people around here...