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 ...
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 ...
For further actions, you may consider blocking this person and/or reporting abuse
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.
What about other positions in machine learning for example ... Does the same rule imply?
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".
reposted from Brandon Rohrer's LinkedIn.
not really sure. I've never been on the hiring side for anything other than "data scientist". That was PHD required.
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!
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 ...
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:
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.
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.
Thank you
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.
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/
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.
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.
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.
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.
MIT's?
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.
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
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!
Yeah, the laws for Freiberufler are rather unfair.
Thank you. That was helpful.
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
That's not really the case. Being a successful entrepreneur has nothing to do with CS degrees I believe ...
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!
Thank you
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.
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.
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.
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.
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
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).
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.
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.
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.
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.
What about other non CS degrees? My degree is "Teaching Informatics". Does that count?
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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 ?
I don't think it's a requirement, your work(git repos, portfolio etc..) should speak for itself.
I think it's usually required for foreigners to get a job abroad or get VISA to work abroad, which is what I need !