DEV Community

Do you think a CS degree is a requirement for get a job?

Muhammad Habib Jawady on February 03, 2018

Hello dev.to() members. I was wondering wether you consider getting a CS degree as a requirement for those looking for a job in fields like web/mobile development ...

Collapse
 
andrewlucker profile image
Andrew Lucker

Strictly speaking: no. But it does significantly improve your chances of getting through the different steps in the hiring process. Also some places do require CS degrees, but they are a minority.

Collapse
 
hbibzdeploy profile image
Muhammad Habib Jawady

What about other positions in machine learning for example ... Does the same rule imply?

Collapse
 
6temes profile image
Daniel

AI is still in the field of "science" rather than "engineering", so the way to find a job right now is to have a PHD in something related. At least in my company, AI people spend more time reading papers than actually building anything useful. ;)

This will change in the next 5 years, as NN and related technologies will become more "mainstream".

Collapse
 
andrewlucker profile image
Andrew Lucker

reposted from Brandon Rohrer's LinkedIn.

Brandon Rohrer

Collapse
 
andrewlucker profile image
Andrew Lucker

not really sure. I've never been on the hiring side for anything other than "data scientist". That was PHD required.

Collapse
 
ben profile image
Ben Halpern

I personally don't put a lot of stock in the CS degree (and don't have one), but it certainly helps in general.

I wouldn't go out of my way to get a degree just for the degree, but I'm sure there's a lot to learn along the way as you do it!

Collapse
 
hbibzdeploy profile image
Muhammad Habib Jawady

Well I live in Tunisia and the educational system in my opinion is just a waste of time ... And I can't wrap my head about what I should do ...

Collapse
 
craser profile image
Grumpy and

I agree with Ben-- if the classes are not on the same level as universities elsewhere, then skip it. But understand that this puts an initial hurdle in front of every job you apply to: they're going to want you to prove you have your coding fundamentals in order. (The exception is freelance work.)

I have a CS degree, and I've been a professional dev for ~18 years, and I typically get questions about:

  • recursion
  • basic data structures (queue, stack, hash table, and I was once asked about skip lists.)
  • tree traversals (depth-first & breadth-first)
  • graph traversals (Dijkstra & variations)
  • sorting (mostly partition & pivot variations)

And for Java-related jobs (and even some JavaScript stuff) I get questions about design patterns (See Gamma, et al.) and Interfaces vs. Abstract classes, etc.

If you don't have a degree, many interviewers will want to cover this stuff in depth with you to make sure you know it. Yes, this is slightly silly: I literally can't remember the last time I had to actually implement a sorting algorithm at work. On the other hand, you know they'll ask about it, so don't let the silliness get in the way of your career.

The other things you gain by taking classes/attending university are not in the syllabus. I found that every class taught me at least one or two things that were not actual course requirements. (Sometimes it'll hone your testing skills. Sometimes the biggest take-away is how to deal with a Professor who's an asshole.)

And honestly, I had no clue what I wanted to do with my career until I went to university. I started out studying music, then switched to computer science without even really knowing what kind of coding I'd find interesting, and then I saw Mosaic...

I guess what I'm saying is that if the classes are cheap, and you have the time, university is not a bad way to meet cool people, learn unexpected stuff, and find direction. All of that is orthogonal to what's in the course description or the quality of the instruction.

Collapse
 
ben profile image
Ben Halpern

In that case, I'd skip it and work on your personal brand. I think you're off to a good start by sharing knowledge here. Keep building (IMO one good personal project is better than many) and create a pleasing portfolio and overall web presence and you'll be on easy street as long as you keep improving as a coder. And you will keep improving if you go deep on a project.

That's just my thought, but if you want more specific, more opinionated advice, let me know.

Thread Thread
 
hbibzdeploy profile image
Muhammad Habib Jawady

Thank you

Collapse
 
bluebell_lester profile image
Bluebell Lester

Get a degree and work simultaneously, if the university is not strict with attendance. This is what people in my country generally do.
My course had a lot classes that are not immediately applicable to the work I do but they gave me a lot of perspective, so I do think a degree makes a more well-rounded software engineer.

Collapse
 
johnlukeg profile image
John Luke Garofalo • Edited

A lot of American Universities are beginning to offer completely equivalent online degrees at a really cheap price to promote sustainability, diversity, and cheaper education. For instance, I'm in my second semester of Georgia Tech's Online Master's of Computer Science program. For around $6000, you can obtain a master's degree from a top 10 institution for Computer Science. The low price and the fact that you never have to step foot on campus makes it a very plausible opportunity for students who live outside of the US. The program is very progressive so classes are around relevant topics like AI, Machine Learning, & more. I highly recommend it! omscs.gatech.edu/

Collapse
 
kayis profile image
K

They think education is cheap and good, everyone can get it, so why not simply let the universities filter out people and take what's left.

Collapse
 
drminnaar profile image
Douglas Minnaar

I agree with many in that it really does depend. It depends on your location, the type of job, and you as an individual. I recently had lunch with one of my previous professors that taught me Java from first to third year. She was interested to know if I found my degree useful. And honestly, I only really found her subject of Java to be useful :D. I have worked in companies where they would not even look at you if you don't have a degree. I'm totally against that viewpoint. I have worked with people that have masters degrees and found them to be quite useless. And then I have worked with people that are self-taught with no formal training but were quite brilliant. In fact I have generally found that individuals with degrees can become lazy as they like to fall back on the fact that they have a degree. A degree is also what you as an individual make of it. I think that if one only follows the curriculum of a degree, you could find yourself feeling completely overwhelmed when you get into the real world. The way I see it is that one always wants to do things that make you stand out from the rest. A degree is one way to achieve that but it's not the only way.

Collapse
 
perrydbucs profile image
Perry Donham

My job requires a CS degree (I'm a CS professor) :)

It feels like 4-year degrees are becoming the new high-school diploma in the US. There's such a heavy push for everyone to go to college that the degree is being devalued, especially for liberal-arts grads.

If you are just looking for a dev job, and don't have any long-term plans to move beyond that, I think a CS degree is overkill, since it's so easy these days to demonstrate competence in coding.

On the other hand, the four-year degree is so much more than learning technical skills; completing a professional degree program (engineering, sciences, etc) says something about your character and talent that can differentiate you from someone who is self-taught.

Collapse
 
maxwell_dev profile image
Max Antonucci

If you have to choose between experience and a CS degree, go with experience. In both my jobs few developers had a formal education in CS. Those who did tended to be in more senior positions, but that's the only formal difference I've seen.

I would encourage getting familiar with at least the basics, which can help. There's a Crash Course Computer Science series on YouTube I would recommend as an easier starting point.

Collapse
 
hbibzdeploy profile image
Muhammad Habib Jawady

MIT's?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

It depends on the market and company. Here in Germany big companies love their degrees. Startups tend to care less everywhere.

There's a big caveat to not having a degree, you must nonetheless know the material covered by a decent degree.

In a technical interview you must be able to answer technical questions. This includes how a computer works (memory, ram, CPUs, threading, etc.) as well as basic complexity theory, and also process questions (such as issues and source control). I expect knowledge about software architecture and experience in basic distributed systems (think cloud deployment).

It's not really relevant to me that your degree may not have covered that material. I want you to know it before I'd hire you.

What a degree does tell me is that you're capable of following instructions and capable of learning. For somebody without experience this could be helpful to get the initial interview, and can provide some talking points.

Collapse
 
hrmny profile image
Leah

In Germany they really care about degrees and it bothers me, you earn more if you have one regardless of what you actually know and can do

Collapse
 
kayis profile image
K

Yes.

If you are a freelancer, even the state looks at this.

You wanna be "freiberufler" and not pay corporate taxes? Well, better sell some "higher value services"! How do you proove this? Simple, get a degree and we believe you, otherwise? good luck!

Thread Thread
 
mortoray profile image
edA‑qa mort‑ora‑y

Yeah, the laws for Freiberufler are rather unfair.

Collapse
 
hbibzdeploy profile image
Muhammad Habib Jawady

Thank you. That was helpful.

Collapse
 
ahlemchebbi profile image
ChebbiAhlem

of course yes , and if u re studying CS degree , u can make ur own job , so u re not obliged to wait for someone to give u a job

Collapse
 
hbibzdeploy profile image
Muhammad Habib Jawady

That's not really the case. Being a successful entrepreneur has nothing to do with CS degrees I believe ...

Collapse
 
djtai profile image
David Taitingfong

The short answer is no - and that's not even just for web/mobile development. You don't need a CS degree even if you wanted to do VR/AR development, be a Back-end/Front-End/Full Stack developer, etc...the list goes on.

From my understanding, the trend is shifting to be "it's nice if you have a degree, but what can you do OR what have you done?" - and I say this as a CS student myself.

Now if you ask me why I'm getting my degree then, well that's simply because I have hopes of getting my Masters or PhD and getting my Bachelor's first is a step in that direction.

Whatever you decide to do, just be sure to give it your best and know that there's a community out there (ahemdevtoahem) always willing to assist you in any way they can. Best of luck to you!

Collapse
 
hbibzdeploy profile image
Muhammad Habib Jawady

Thank you

Collapse
 
mattbidewell profile image
Matthew Bidewell

I have a CS degree. IT IS NOT NEEDED!* (*Terms and conditions may apply)

What I've found is that most jobs say they require a CS degree however if you apply without one and have relevant experience, you will most likely make it to the first round of the interview process.

However, if you wish to be given a learning plan to follow or what to dive into the deep science side of the Software Engineering then it would HELP to have a degree.

Note, it varies country to country. Personally, I'm from the UK.

Collapse
 
twigman08 profile image
Chad Smith

It depends on the company, but in general no.
In general if it came down to two people, one who has a degree but not quite all the experience, and someone who doesn't have a degree but checks all the check marks and had a good interview, they will go after the person without the degree.

Though with that said if they BOTH checked all the check marks and everything was equal, the one with the degree might end up getting the opportunity first.

When I'm interviewing someone I look to see if they are getting or have a degree as I think it shows dedication which is great to see, but it plays the smallest of roles in me wanting you hired.

Collapse
 
aleksikauppila profile image
Aleksi Kauppila

No. You don't need a CS degree for web/mobile development. One of the great aspects in programming is that you can easily demonstrate your skill and knowledge by putting up a website and share your Github/Bitbucket/whatever profile. It's not about what you know, it's what you can prove.

Collapse
 
jvarness profile image
Jake Varness

Not strictly speaking. There many companies that hire people as software developers without CS degrees. Will you get paid as much as someone who doesn't have the degree? I think that might be up for debate.

There's no reason that you couldn't get a full-time position somewhere if you took the time to learn the skills that employers are looking for.

Collapse
 
camkida1 profile image
Camilo • Edited

If you live in a third world country and you want to work remote or being relocated to work for a company they will probably ask for some kind of degree or "academic validation"

source: my experience as a third world country citizen

Collapse
 
vinaypai profile image
Vinay Pai • Edited

There are plenty of people without CS degrees working as developers, so the most literal answer to your question is no, it's not a requirement. A more nuanced answer as with most things in life is "it depends".

If you're talking about a simple web or mobile app, frontend development etc. a CS degree may not be necessary or even particularly helpful. Someone with domain expertise might be a better fit if they have demonstrated development ability. If you're building a complicated distributed system operating at vast scale you might benefit from someone with most CS knowledge.

Look at it this way, if you're building a one-story log cabin, someone with a civil engineering degree may not be as good as a carpenter who has spent his life building things and has a good intuitive understanding of things and knows how to put things together. If you're building a skyscraper you certainly need a few civil engineers on your team (along with a whole bunch of other specializations).

Collapse
 
wernercd profile image
Chris Werner • Edited

Depends: Some companies/careers absolutely DEMAND a Degree. Programmer, DBA, Network Admin, etc. Big companies - hospitals, government, etc - often REQUIRE a degree. No degree and you don't get past HR.

I've only gotten a 2 year AA and have been blocked in some respects because I don't have a 4 year or higher.

On the other hand, now that I have 8+ years of REAL WORLD Job experience... I can leverage that with most companies to get interviews. I work as a programmer for a big bank and make 50/hour.

Collapse
 
michiels profile image
Michiel Sikkes

At Firmhouse we don’t look at degrees. We’d like to see evidence of what you can produce, either because you already had a developing role at another company or if you’re already working on open source projects or have side projects to show.

Collapse
 
ozzyaaron profile image
Aaron Todd • Edited

If you can get one, get one. It will open doors later you might not expect to want to open.

For instance it is quite difficult to get a work visa to most countries without a degree in the field you want to work in unless you have a significant amount of experience, letters, etc. With a degree and a job offer it is a piece of cake.

In a similar vein there will be positions where they quite rightly will not hire someone without valid qualifications in the field due to legal and insurance reasons.

In my experience these are the most fun areas of computing and you will be essentially locked out for at least 5 years and perhaps forever.

You probably would find it difficult to get into research positions and a lot of the more fun areas of computing. You can see it easily when watching talks or even reading posts on dev.to that many people are talking about things you learn in basic CS as if it is revolutionary! :P

There are a lot of people without the degree running around saying they aren't necessary, and they aren't strictly necessary, but it will make your life easier.

Furthermore just with experience hiring/dealing with developers with and without degrees in Eng/Math/CS I've found it difficult to pull other developers along when dealing with difficult problems. Just basic idea that you learn and forget in CS are things that will hold you back later in your career if you end up working on truly interesting problems.

If you are happy to do basic web dev and stuff I think bootcamps and so on are probably okay but if you want to have a full career with a plethora of options I would seek a degree in CS/Eng.

Collapse
 
6temes profile image
Daniel

Something important that I think nobody said before:

A degree in CS is a requirement to get a Work Visa in most of countries. So, if you want to be able to work abroad, it may be a good idea to go to college in order to get a degree.

Collapse
 
gladuz profile image
Jamshid Tursunboyev

What about other non CS degrees? My degree is "Teaching Informatics". Does that count?

Collapse
 
6temes profile image
Daniel

I guess that this depends from country to country. But according to my experience the visa requirements are not really specific on the kind of degree that you need to get.

In Japan, where I live, they are extremely interested in bringing talent from abroad, so any degree of any STEM related career and an offer from a Japanese company, will probably allow you to get a 5 years working visa. If you have a PHD, some published papers, you are young and your company offers you a good salary, you can easily fast-track for permanent visa.

Collapse
 
danhomola profile image
Dan Homola • Edited

As others have said it is not a requirement, but in my experience I have an easier time talking about programming (and software engineering in general) with people who have a CS degree from a relevant college (at least where I live, there are colleges that offer a CS degree but the quality is sub-par to say the least).

This is because during the studies you learn a certain "dictionary" and a certain way of thinking that I believe is very hard to learn by yourself. That being said, I know several great developers who either dropped out of college or did not attend at all.

Collapse
 
vladirien profile image
Val Fourchon

Depends on the location. In France, it will be harder but possible especially in small companies / startups if you have relevant experience.
However, don't expect your paycheck to be high compared to those who have a degree for the same job (in fact the gap can be quite significant).

Collapse
 
fnh profile image
Fabian Holzer

I think it depends heavily on the company culture and on the local market situation. The lack of formal education might be a reason for not getting past the first screening of your application by the HR department of a bigger company, while a small or medium sized company might be much more interested which practical skills you can put on the table.

Collapse
 
willamesoares profile image
Will Soares

Well, it can be a requirement when you want to get a higher income or grow your job opportunities larger than what you usually have in the tech field.

I can tell you for sure that a CS Degree is not a proof of knowledge or expertise in the area, at all. I know tons of developers who completed just the high school and are incredible problem solvers and are well acquainted with CS related algorithms and concepts.

Collapse
 
drakso profile image
Drakso

It depends where you live and where you get your CS degree. There are countries where degree is valued and it would be nice to have. Other countries just look for experience and skill and if you don't have what the company needs it doesn't matter if you have 10 CS degrees. Also colleges that have low funding are usually struggling to stay on top of new developments in the industry since technology is moving incredibly fast, so if you get a degree there you would get some all round CS skills but not enough to actually land a decent job. So before deciding do a little research or ask for advice from someone with experience from your area.

Collapse
 
itachiuchiha profile image
Itachi Uchiha

I was graduated from the associate degree. Today my second year in this job after graduation.

Your question has an answer depends on your country. I live in Turkey. So, my country has 128 universities. Maybe, the world knows only third.

Different things, graduation from USA and Tunisia.

If I were graduate from MIT or similar universities I can say I learned too many things.

If you are thinking about front-end developer or backend developer, I can say you don't need a diploma.

My country people say this sentence: "Too many information does not harmful".

You should think CS degree. Absolutely you'll like that.

Collapse
 
mariokandut profile image
Mario

I can only confirm what others already have said. No, a CS degree is not required. Build stuff, be curious and love what you are doing. You can double check this: When you've found a job as a dev and like mondays or at least leave with a smile from work, you have done the right thing.

Collapse
 
miku86 profile image
miku86

It's all about opportunity costs.

4y-CS degree OR 4y-hands-on experience in this field?
I would choose the latter.

Especially because you have to learn a specific skill when you actually need to know it to solve a problem, not only to know it for the sake of knowing it or to ace a test.

Collapse
 
ryselis profile image
Karolis Ryselis

I am a lecturer and a PhD student at Kaunas University of Technology in Lithuania. I am not aware of what the education is like in other countries, but these are the points based on my experience. We have a bachelor study program Software Systems and Master degree program Software Systems Engineering. Those two help a lot if you are willing to learn yourself. There are guys who don't take it seriously, get their diploma, have low grades and learn few things if any. If taken seriously, it forces you to learn new things and you have access to people with experience in their fields which is always helpful. It is ideal if you study Software Systems and have a part time job, around 20 hours per week, you can then apply and, most importantly, share and discuss your newly acquired knowledge. There are different study programs, but others are better suited for different positions, e.g., analysts, hardware engineers, designers.

Collapse
 
jfrankcarr profile image
Frank Carr

It depends a lot on the company and location/country.

In my job market (Atlanta, GA US), it has increased a lot as a requirement over the past few years. It's become routine for resume parsing algorithms to screen out applicants who don't have a narrow selection of degrees.

Collapse
 
hbibzdeploy profile image
Muhammad Habib Jawady

Is it fair? I mean let's take system administration for example... Will a drop out who devoted himself to online courses and practicing have more exp or a graduate who has only theoretical knowledge and no actual practical exp ?

Collapse
 
alexantoniades profile image
Alexander Antoniades

I don't think it's a requirement, your work(git repos, portfolio etc..) should speak for itself.

Collapse
 
shuzootani profile image
shuzo • Edited

I think it's usually required for foreigners to get a job abroad or get VISA to work abroad, which is what I need !