What's the difference between an MS and a Ph.D.?

Steven Swanson

A Ph.D. is about extending the boundary of human knowledge. A master degrees is about learning more about the current state-of-the-art in a particular area of CS.

What is a Ph.D.?

A Ph.D. provides the skills and an opportunity to develop new knowledge about computer science and communicate that knowledge to others. As you complete a Ph.D., you will create something fundamentally new (or as researches say , “novel”) that the world has never seen before. And you will share what you’ve learned with the world by writing research papers and presenting your work to others.

The process or creating new knowledge is called “research” and research is the focus of a Ph.D.

Why would I get one?

You should get a Ph.D. if all of these are true:

  1. You love computer science.
  2. You are viscerally excited about extending the reach of our collective understanding of computers.
  3. You want to work on hard, open-ended problems that no one has solved before.
  4. It supports your career plans.

I can’t overstate the importance of loving computer science. Getting a Ph.D. is arduous and it takes a long time. If you don’t love computer science or don’t really want to get a Ph.D., it is unlikely you will succeed or be happy as you try.

You don’t need to be genius or an exceptional student to get a Ph.D. Mostly, you need to want to get a Ph.D. and be willing to dedicate time to do so.

You should not get a Ph.D. for the money: Starting salaries with a Ph.D. are 27% higher with a Ph.D. than with a Masters, but you’ll spend an additional 2-5 years in school earning quite a bit less than you would with an MS degree.

What will I learn?

Getting a Ph.D. in CS will teach you how to extend humankind’s understanding of computing. In addition, you will learn a wide range of technical, organizational, and communication skills. This education goes far beyond a masters degree in both breadth and depth.

Topics will include:

  1. Identifying and articulating gaps in humankind’s understanding of computing (i.e., research questions).
  2. Developing, exploring, and evaluating approaches to filling those gaps (i.e., answering research questions).
  3. Becoming a world expert in a small corner of computer science (e.g., by solving problems no one has solved before).
  4. Communicating what you have done and why it is important in both the written word (i.e., writing research papers) and verbally (i.e., by giving talks.)
  5. A deeper understanding of core computer science concepts (i.e., you’ll take some courses).

The first two items may sound grandiose, but they are accurate: If you complete a Ph.D. program, you will accomplish both of these to some degree, since they are the core of what being a successful researcher entails. If you go on from your Ph.D. to be a researcher, solving unsolved problems will be your day-to-day job.

Getting a Ph.D. will also make you a better implementor (item 3), and a better communicator (item 4). These are skills of great practical value in and out of academia, but they are, unfortunately, generally outside the scope of undergraduate and masters programs.

Item 5, is the only significant commonality between getting a Ph.D. and a masters degree: The course work for the two degrees is generally similar, but course work is a very small part of getting Ph.D.

I’d Actually Extend Human Knowledge? Really?

Yes, really. Doing successful research means writing research papers, and papers don’t get published without a meaningful novel contribution, which is a new piece of knowledge that the paper presents.

You will write several research papers while a Ph.D. student (in collaboration with your advisor), hence you will make several novel contributions to knowledge.

Matt Might has a great explanation of this in pictures.

What Do I Do After I Graduate?

Any of a great many things, including a few jobs that almost always require a Ph.D.: being a professor and being a professional researcher in industry.

Ph.D.s are qualified for a wide range of tech jobs, including all of those that you could get with a masters degree. However, you’ll have more experience than someone with a fresh master’s degree, better communication skills, a deeper knowledge of computing, and a better ability to see the big picture.

NC State has some published some data about where their Ph.D.s get jobs. Duke has some data too. I would expect numbers to be similar for other good Ph.D. programs.

I’ve heard some concerns that getting a Ph.D. might make you over-qualified for some positions. I suppose that might be true, but two things:

  1. Once you have a Ph.D., you’d probably be bored by those jobs.
  2. Ph.D.s are in high demand and the unemployment rate among new Ph.D.s is extremely low (2019 Taulbee survey, Table D4), so it’s very, very likely you’ll find a job.

Who is Qualified to Get A Ph.D.?

Good (not necessarily great) students in CS or (even tangentially) related fields who love computer science and who have enough discipline to work for a long time on a problem that interests them.

You do not need to be genius to do research, and the vast majority of CS Ph.D.s are not geniuses. You need to be curious, interested, and determined.

How do I get one?

The core of a Ph.D. degree is learning to do research by doing research. Over the course of 4-7 years, you will work on a variety of research projects and write a number of research papers in close collaboration with your Ph.D. advisor and possibly other Ph.D. students.

During the first couple of years, you will also take roughly the same courses you take to get an MS degree, but these are not your main focus. They just provide the understanding of current CS knowledge necessary for your to generate new CS knowledge.

Of critical importance: You don’t have to pay to get a Ph.D.

What is a Master Degree?

The goal of a masters degree is to acquire both broader and deeper (in your focus area) knowledge of CS. You will explore the core of CS in more detail, and will learn more of the current state-of-the-art.

Why would I get one?

A masters degree can be a good choice if you enjoy school, want to learn more CS, and would like to earn more money when you graduate: On average, MS graduates earn about 19% more than those with an undergraduate degree. You will also be considered for jobs that requires the more specialized knowledge and skills you acquire with an MS.

What will I learn?

You will learn more computer science both in terms of breadth and depth. The curriculum for a masters degree usually includes both more advanced versions of courses you took as an undergrad (e.g., operating systems, theory, graphics, compilers) and even more advanced courses in a focus area (e.g., systems, databases, graphics).

If the program includes a thesis component, you will also get some experience doing writing about and presenting your work. A thesis may even include some original research.

Who is Qualified to Get A Masters?

To a first approximation, anyone who does passably well in their undergraduate program. There are many, many masters programs and many will admit almost anyone who’s willing to pay tuition.

How do I get one?

Master’s degrees are, in many ways a natural continuation and deepening of your undergraduate education in CS. The structure is similar: You take courses with homeworks and exams. In most programs, once you take enough courses, you get a masters degree. Some programs allow (as an option) or require you to produce a masters thesis – a write up a small research or implementation project that demonstrates your depth of knowledge in a particular area.

Masters degrees typically take two years to complete, and 94% of students pay for their the MS degree themselves.

Which One Should I choose?

You should choose the one that is best aligned with your goals and interests. If you meet the criteria I outlined above for getting a Ph.D., a Ph.D. is probably a good option. If you don’t meet them, get a masters degree (or a job).

If you think you might want a Ph.D. but aren’t sure (or you’re worried about the commitment), there’s an easy third option: Apply to Ph.D. programs and then, if it’s not for you, leave with a masters degree after two years. You’ll have a masters degree and been in the same place career-wise as if you’d just gotten the MS.

Other Perspectives

The illustrated guide to a Ph.D.

Ask Your Question!

If you have a question about this topic (or anything else about getting a Ph.D. in CS), ask below. We will answer!