making technical recruiting suck less

How different is a B.S. in Computer Science from an M.S. when it comes to recruiting?

Recently, someone on Quora asked what the difference was between a BS and an MS in computer science from a recruiting perspective. My answer ended up with > 200 upvotes, so I’m reproducing it below:

In my experience, an MS degree has been one of the strongest indicators of poor technical interview performance.

There are multiple confounding factors at play here. In my analysis, I didn’t bother to separate out an MS degree that comes out of a combined BS/MS program (e.g. MIT’s prestigious MEng) from an MS degree from Bumfuckshitsville, Indiana. I also didn’t separate an MS in CS from an MS in some other, related field (e.g. “Information Systems Management”, more on that below). With perhaps the exception of the combined BS/MS programs from top schools (which tend to have stringent undergrad performance criteria), though, I’d be surprised if separating this stuff out made too much of a difference. Whereas MS degrees used to be a means for departments to begin vetting future PhD students, I believe that the purpose has, in some ways, shifted to be a cash cow for the university in question. Stanford’s admissions bar for an MS CS degree is significantly lower than their undergrad admissions bar. Schools like CMU do things like open a satellite Silicon Valley campus where they offer an MS in “Information Systems Management” (which to naive hiring managers sounds impressive until they interview a few people with this degree) and rake in all the moneys.

Part of the problem is that CS fundamentals instruction tends to happen in undergrad computer science courses. If your undergrad degree was in some other field, you can get through an MS in CS without ever taking an algorithms or data structures class. Or you could take a graduate-level algorithms class where the grading curve is going to be different because a good portion of your classmates have never done any programming either. A lot of MS courses I’ve seen on people’s resumes seem to involve taking some machine learning toolkit and using it out-of-the-box on some data set. Is this interesting? It can be. Does it show that you know how to make hard, unexpected design decisions or write code that’s not brittle? Probably not.

The other thing is, if you already have an undergrad CS degree, employers may wonder why you chose to go back to school rather than working (unless you’re going into academia, which is an entirely different animal and out of scope here). A possible line of reasoning might be, “Hey, if this person were really good, he’d be working already instead of waiting out the recession or whatever.”

So, let’s say that you weren’t in a position to get into a top undergraduate program. One tempting option is to try to get an MS from a top computer science school to legitimize yourself on paper. If you actually are passionate about programming, I would urge you not to do that[1]. Although you will look more legit on paper, many startups are catching on to how useless an MS degree can be. Until the market catches up, an MS will probably get you an extra $10K in your base salary. However, keep in mind that you’ve just taken 2 years out of your life and paid some amount of money (how much you pay depends on whether you can TA while studying). Instead of going back to school, take a few months to build something really cool. Teach yourself things. Take Udacity and Coursera classes and potentially use their career placement services. Work with a recruiter whose recommendation will help you get a first round interview even if you don’t have a pedigree. Once you start working, raises you get will quickly make the initial 10K boost pretty insignificant (especially given the opportunity cost and potential tuition expenses).

So, to answer the question: BS >>> MS (if they’re from the same school, assuming you have to choose one or the other)

[1] There are exceptions. If you don’t really love programming but want a coding gig for the stability/income, this could be a good option. Also, if you’re a foreign student looking to turn your MS into a work visa, this could be a good option as well (though you’ll want to distinguish yourself somehow from all the other foreign students trying to do the same thing).

I would advise doing neither. Instead, I would do the following. (This is long because someone else asked me this on Quora, so I’m ripping off my answer 🙂 )

– Drink from the MOOC firehose. Take as many Udacity, Coursera, and potentially edX classes as you can. Do the problem sets. Participate in the forums. Build something to apply all the stuff you learned to show you’re serious about programming and not just auditing classes.

– Take some programming courses at your local university without officially enrolling. When I was in junor high and high school, I was able to take 4 CS classes at the University of Wisconsin with Special Student status. It was awesome.

– Get an internship or junior dev role somewhere. If you’ve done at least a few of the things above and are persistent, you will find one. Ping me if you want help with this.

– Never stop learning stuff. You’ll probably discover over time that you have gaping holes in your knowledge of computer science. Some of those holes won’t matter day-to-day. Some will. Some will indirectly make you a better programmer once you fill them in. For instance, you can get by without a Compilers course, but having that knowledge will probably serve you well when you try to figure out why some code you wrote is slow. You can get by without an Operating Systems course, but having that knowledge will probably make you better if you ever have to work on some hardcore multithreaded code.

Thank you so much for your response! That was very thorough and informative. I already have taken a few MOOC courses actually.

I do have another question though. I know you said that your post was coming from the perspective of a tech start-ups. But what about someone looking to get a software engineering role in a large tech corporation that deals in commercial software? I’m talking about companies like Microsoft, Oracle, etc. Most of these companies require a degree in computer science. Most of them list ‘Bachelors in computer science or equivalent’.

So in the event that a degree is absolutely required, which would you recommend? A second bachelors or a MS in CS? Does a MS degree generally count as a substitute for a BS in CS degree. In other words does it satisfy the ‘Bachelors in computer or equivalent’ criteria?

You brought up several good points about the weaknesses of MS degrees vs BS degrees. For example a lot of fundamental courses (Data Structures and Algorithms) are taken at the undergraduate level. Do you think large corporations (again using MSFT and oracle as the example) also hold similar reservations towards people with an MS in CS and no BS in CS? If one were to make up the undergraduate data structures and algorithms course while pursuing an MS, would this help?

And just one more question. How do you think second bachelor degrees are viewed in general? Will it make an individual look indecisive?

Thank you very much, I look forward to hearing your thoughts and opinion!

Hey Adam, these are great questions. Shoot me an email if you’d like. I’d be delighted to chat about this stuff at length, but I’d want to know a bit more about your situation and motivations before dispensing advice. I’d want to understand what your longterm goals are and how working at a large company fits in to that (there’s nothing inherently wrong with that being a goal, but it’s specific enough to where I’d want to get some context).

Thank u for ur article it is great!!!
I actually have the same questions about it.
If I have no previous CS degree (I have studied bachelor if accounting) if I want to make a transition into CS , should I take a second undergraduate degree or a master if CS?

Hey Adam I’m sure you’ve dealt with this already in the past 2.5 years, but just for anyone else reading this facing a similar conundrum…. I’ve been a tech recruiter for 10 years now and I can tell you that Aline is pretty spot-on with her advice to you.

Here’s the deal:
You could go back to school and get your BS in CS, even at a good school the question comes about from employers: “why would I hire someone like this over a recent grad?” That’s a tough question to answer, and if you’re thinking of words like “wisdom” and “Maturity” – that’s all well and good, but a very tough sell….

A better solution is to do as Aline suggested – take a lot of courses – I suggest Coursera personally, but Udacity is also great. Stanford, MIT, etc. also offer online CS classes. On top of them, there are also some reputable coding schools that can offer you some good foundations and intros into the coding world – I highly suggest App Academy and Codecademy – but will warn you to be careful – not all “bootcamps” are created equally.

Lastly – I will tell you that most hiring, particularly at the junior level isn’t done based on pure technical know-how. It’s done based on personality / culture fit as well as passion/drive.

If you know the types of companies (or industries) you want to get into, I would HIGHLY suggest you start attending as many meetups and conferences as possible. Be personable. Introduce yourself to people and have something relevant to talk about (often derived from research on your own which Aline mentions in her last point)

The tech industry is difficult to break into in a meaningful way without a BS in CS, but it’s not by any means impossible.

Good luck to you and feel free to message me with any other questions!

I’m currently a student majoring in Computer Science. I was wondering how often it is for people with a B.S. like myself, to go out and find a job and work for a few years and then come back to do a Master’s. Is this practice common? Would this work against me? I am leaning towards that path as I am graduating school soon (next June) and while I am focused on looking for a job at that point, I don’t want to rule out coming back to learn more in school.

For most international students, this isn’t really a choice. A BS is not sufficient for us to work in the US. Higher degrees are pretty much required to be considered on the same level as a domestic candidate.

I would get an MS but have the employer pay for it. As a Junior Developer you can often take advantage of employers tuition reimbursement program. Yes you will have the challenge of working and doing school but you should be able to do it in about 3 years part time. If they like you you should be able to get a promotion then when you get your Master you should be due for another promotion. While this does commit yourself to the company for quite a few years you get a free or drastically reduced MS, and experience in the field. So after you are free from your initial company you should be able to compete against those who didn’t get the MS.

Or you could take a graduate-level algorithms class where the grading curve is going to be different because a good portion of your classmates have never done any programming either. A lot of MS courses I’ve seen on people’s resumes seem to involve taking some machine learning toolkit and using it out-of-the-box on some data set. togel singapura

Or you could take a graduate-level algorithms class where the grading curve is going to be different because a good portion of your classmates have never done any programming either. A lot of MS courses I’ve seen on people’s resumes seem to involve taking some machine learning toolkit and using it out-of-the-box on some data set.togel online

I don’t believe you have sufficient data to make the claims you are making. The end result is that you are overfitting the data that you have (which is one of the curses in Statistics). I just read this article and I couldn’t disagree more. As someone who has BSC in CS and came to the states to get an MSc in CS (at a top school) I feel that I gained so much out of the program and that it turned me into a much better software engineer. The criteria for going to an MSC shouldn’t be passing the interviews. It should be whether or not you gaol in skills that make you a better professional. Measuring the efficiency of an MSC degree in terms of interview passing rate is like measuring measuring intelligence in terms of getting a high score on the jeopardy TV show.

I don’t believe you have sufficient data to make the claims you are making. The end result is that you are overfitting the data that you have (which is one of the curses in Statistics). I just read this article and I couldn’t disagree more. As someone who has a BSC in CS and came to the states to get an MSc in CS (at a top school) I feel that I gained so much out of the program and that it turned me into a much better software engineer. The criteria for going to an MSC shouldn’t be passing the interviews. It should be whether or not you gain skills that make you a better professional. Measuring the efficiency of an MSC degree in terms of interview passing rate is like measuring intelligence in terms of getting a high score on the jeopardy TV show.

I think it depends on your situation. My second B.S. was in Computer Science, because I somehow morphed from Marketing Analyst to a coder. I took night classes at a famous university for an M.S. in IS, but I took the classes that I wanted in my career path. When I started the M.S., I was entry/junior level, but when I was complete, I was senior level. I noticed I had a much higher level understanding of IT, than my coworkers that were rushing through certifications. I am glad I took my path. The M.S. was pretty much the mentor I never had. Since I took it at night, over a 4 year period, it cost me about 15k. I think it was worth it and I do make more and able to save more than most other IT people in my organization.

Thanks for this post.I completed my bachelor’s degree in Electronics and after that I got a job as C,C++ developer in a good company but i was not satisfied with my work and my passion is to pursue a job in parallel programming and computer vision.For this I have taken GRE and planned to do Master’s but due to financial situation i couldnt go for master’s.I have 2 questions to ask:
1.There are very very less courses in Parallel Programming and Computer Vision in Udacity and Coursera.I am unable to find much online courses in these topics, so how can I change my domian.??
2.I saw many good companies in India are preferring students with Master’s degree for Computer Vision and Parallel Programming jobs so in this case how can i justify my technical skills…?

The analysis seems very biased towards your occupation (“work with a recruiter…”) and consequently your conclusions.
No serious company would take a research scientist or a good programmer just because he took MOOCs. Putting Coursera/Udacity on your CV is a testimony being too lazy to work for a real degree and put an effort and dedication, and work on real problems and publish papers. M.Sc. provides you extra abilities and experience, especially research wise, that no 4 month part time MOOC could ever provide. MOOCs are a good choice when there is no other option and they give the ability to everyone to catch up with new subject every now and then, but they are certainly no substitution to a Uni degree.
Also, your score vs. years of experience graph doesn’t show any tendency against years of experience.
If you look at all top companies, they recruit people by they degrees and you won’t find any B.Sc. at their research group. MOOCs are not even considered as the slightest factor in their decision (and it’s even a bit emberesing to see that). No great programmer would even consider putting that as a way to convince his interviewer that he has some experience because of that.
Degrees are also a measure of persistence, dedication, hard work under pressure, research, work in collaboration and competitive environment and also being screened and evaluated more thoroughly. The more you get of it, the better you may become.
I urge everyone to not depend on MOOCs as a mean to get a good job/profession and to keep on learning towards advanced degrees.

I think earning a MSCS or BSCS does make a difference in the eyes of employers.Otherwise, all we would not see all those universities offering masters and bachelors in CS. In this age of technology, people catch up really fast, and i don’t think these are market inefficiencies. Degrees are values more than courses and Bootcamps in my opinion. Though, Udacity and some other institutions offer job guarantees for their graduates, which also tells us that it is not Impossible to work in computer tech without a Bachelors or masters of CS in your resume. Personally, i do think studying under professors for 2 or more years of CS does make a person more knowledgeable about computers rather than online certifications as professors have real world expertise-not just books based Knowledge – which is often impractical in real world.

Although i haven’t found a CLEAR ANSWER to one other question posted here.—- A second Bachelors in CS is better or a direct MSCS is a better option for someone line me with Bachelors in plastics engineering tech, and an MBA,,— and of course a MISERABL, Unsatisfying life for making this wrong decision, and sticking with it for multiple years, hoping things will be fine in the end.