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

Note: This post can now be found in Forbes!

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).

Note: This post was adapted from an answer I wrote on Quora.

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

  1. Adam

    What about someone who didn’t study CS in their undergrad and wants to break into a software engineering role? Would you advise a second bachelor’s in CS or an MS in CS?

    • aline

      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.

      – Follow smart people’s advice who were in the same position. How I Taught Myself to Code in 8 Weeks is particularly excellent:

      – Read this blog post(includes a great list of resources and topics):

      – 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.

      • Adam

        Hi Aline,

        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!

        • aline

          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).

  2. Shanks

    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.

  3. james

    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.

  4. Dave

    @james I have not found that to be the case at *all*, in fact, I see almost *no* foreign candidates with anything higher than a BS.

  5. Kevin

    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.

  6. Yehoshua Kahan

    Is there any difference in job-readiness and likelihood of being hired between a B.S. in compsci and a B.A. in compsci? Thanks.


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>