Do You Need a Computer Science Degree?
In the field of computer science, there is (or maybe was?) this debate going around regarding whether a computer science degree is strictly necessary to work in the industry, whether itās imperative, or whether it can actually be detrimental (Iāve heard some people say that, yes).
So what is it?
In this rather short post, I will elaborate upon my opinion.
Some disclaimers before we get started: I have some experience working in the industry for a couple of years, but I am still very young (at the time of writing this, I am 21 years old). On top of that, I am currently working on acquiring a bachelorās degree in computer science (while working), so you can already gauge part of my opinion. I am - in fact - planning to get a masterās degree in computer science - or some related field - as well.
With that said, allow me to illustrate some of my thoughts regarding the topic.
Origin of the Belief
I suspect that the belief that studying computer science in formal education is redundant has its roots - and I am making an educated guess here - in the years of the COVID-19 pandemic. Slightly after that, actually.
During that time, programmers and - more generally - software developers were being hired left, right, and center. It was a goldrush for people getting into the field. During that (rather short) timeframe, you were able to get a certificate from some generic online education platform, which took you about six months of work, and you could get a high-paying job in the industry.
Let me tell you right now - and this is not an opinion, I would argue it is quite an objective fact: those times are over. That, in that form, does not exist anymore.
You cannot expect to be taken seriously with only a six-month-long course under your belt.
What I will say, though, is that in the field of computer science, the process of being hired is quite meritocratic compared to other fields, even though that is becoming less true with recent developments. So while it is true that it is very hard (not impossible!) to get a job via a six-month course, you can get a job if you are above average in skill and are somehow able to reliably demonstrate that skill. This can be achieved in the form of impressive personal projects. If you decide to go that route, do not program with AI, that would defeat the purpose. To find out about my opinion on the topic, check out this blog article of mine.
To be able to get a job this way, though, you have to be very skilled and knowledgeable. That is a completely legitimate high-risk, high-reward route one can take.
Another Bias Of Mine
I have yet another personal bias to disclose: I live in Europe. This is relevant, since it means that formal education for me is almost free (without accounting for accommodation and such). If I had to get into generational debt (/s) to study computer science, maybe my opinion would be different. In any case, that is not the reality that I live in, so keep that in mind.
The Route I Took
What I have been doing (which may or may not work out, I am not sure yet) is to work whilst studying. In complete honesty, this does not allow me to live the life of a typical university student. This arrangement has caused me a lot of stress and anxiety that I could have avoided. On the other hand, I was able to save up quite a bit of money. I am especially fortunate, as at the time of writing, I still live with my parents. That means that I have very near-zero expenses.
Of course, I recognize that not everybody will be able to get into a similar situation, but my point still stands: working whilst studying allows one to get the best of both worlds (regarding your resume). You can get a computer science degree and have years of work experience under your belt. Now, to be frank, I have been working as a web developer, which is arguably not the best to acquire domain-specific knowledge about programming (even though web development requires a whole different set of skills which are also important, depending on the professional path you want to go down). This was a job that I found, and I was quite lucky to get.
I am also very much aware that the job market has been quite brutal in recent times, and that finding a job can be easier said than done.
Another thing that has to be taken into account is that not everyone can afford to work during their studies. It depends on how much effort (in terms of time commitment) your university requires. Some people are naturally very inclined towards studying and learning the skills required to pass exams, while others are not, and ignoring this will only lead to a lot of pain down the line. If you struggle with exams and are not able to (relatively effortlessly) get good grades, maybe you should reconsider your options before going down this path.
Also, keep in mind that, one of the two activities (ideally, university) will have to be done remotely. More and more universities are not forcing students to physically attend lectures, but if yours does, I am afraid that you are out of luck. Having to physically go to university lectures makes it almost impossible to work, even if part-time.
In any case, I am not saying that one absolutely has to go down this route, but it is an option to consider and one that is often overlooked.
One Remark About University
One thing I have noticed about university is that it forces you to do hard things.
A thing that I believed - and that is technically true - is that university is not as essential as people make it out to be, since - especially in the context of computer science - all the relevant information can be found online for free.
Now, this idea would be valid if it wasnāt for the fact that we are not machines, and that it takes a lot of discipline to study everything that a university teaches you on your own. The fact that you have to pass exams and do projects forces you to study the boring stuff that you would otherwise have skipped.
Of course, if you are disciplined enough to study how database management systems organize data in memory and how to use different data structures as indices to speed up lookup time, then great; good for you. I am not.
Luckily, thanks to university I was forced to learn things like this, and I am glad I did, since on top of being interesting knowledge that I treasure, I am certain that it will at some point become very useful.
Maybe what I am trying to get at is that university kind of forces you to become a more well-rounded computer scientist rather than a domain expert that only knows about his specific field (assuming you exploit university to learn and do not cheat with the only objective of acquiring the degree itself).
Careful, Though
Make no mistake, university is probably not enough. The typical curriculum of computer science universities is usually not up-to-date regarding the latest developments in the field, and the technologies taught are often outdated.
On top of that, university focuses more on computer science and very theoretical topics. In the case in which you are tasked with the completion of some project, the requirements are usually already laid out for you and the scenario is ideal, such that you can apply exactly what you learned in the course.
This does not mean that university is useless, it just teaches you a different set of skills.
Perhaps a big mistake people are making when debating this topic is treating software development/engineering skills as being the same as computer science knowledge. University, for the most part, teaches one of the two.
To make sure that you are a well-rounded developer (or whatever you want to become), you have to study on your own. In that case, go down a certain path that interests you. Make games, web apps, mobile apps, operating systems, compilers, whatever it is. Keep up with the latest trends if that interests you.
You have to supplement the theoretical knowledge you acquire at university with practical skills that you learn by actually doing the thing you want to be doing in your future.
Resumes
A final thing I will say about this topic is that, unfortunately, it is the case that a computer science degree really does make your resume look better.
If your goal is to work as an employee in some company (and most people start this way), having a computer science degree on your resume will drastically increase your chances of finding a professional position, especially considering the fierce competition we are seeing in recent times in this field.
As I said, it is not at all impossible to find a job without a degree, in fact, that is what I did, but it is very hard.
For example, the way I found my job was by winning a hackathon and afterwards being approached by the founders of a startup who hired me as a mobile developer. They were probably inexperienced when it comes to the hiring process (and maybe kind of desperate to find someone who would work for them).
Since I did not care about job stability, and since they were located very close to where I lived, I gladly accepted.
I got insanely lucky. I would advise against basing your future on luck.
Conclusion
In conclusion, for most people, if you can afford it and your situation allows it, I would recommend to get a computer science degree.
Itās the boring answer, I know.
Maybe go for a bachelorās degree and once you do that, you will hopefully have figured out much more about what the next steps are. At least, that was how it went for me. By no means do I have all of my life figured out already, in fact I would say that I am quite anxious about whatās coming. What I can say though, is that I know about the next step. I want to get a masterās degree. Also, I would like to try to pivot away from web development. For now, I will work on my masterās degree.
If you are feeling lost, thatās alright. When I enrolled in university, I didnāt really know what I was doing either.
Thanks for reading.
As a reminder, if you would like to reach out to me, you can do so via my email: info@eliasebner.com