Jonathan Sumner Evans
Sumner Evans
Software Engineer at Automattic working on Beeper

Is Getting A Master's Degree in Computer Science Worth It?

Written by Human, Not by AI

“Master of Science in Computer Science”, it sounds so grand, doesn’t it? But is it worth it? I’m writing this post to give my perspective on whether or not getting a master’s degree is worth the effort and money. I’m assuming that you are currently in a computer science undergraduate program and are considering whether or not to continue on to get a computer science master’s degree. I want to be very clear, this post is my opinion only.

I will start by saying that I am very happy with my decision to get my master’s in computer science after getting my bachelor’s. Mines offers a 4+1 program which allows you to earn a master’s degree by attending for one extra year. For me, it was one of the best years of my life. I was able to attend and win multiple hackathons, compete in ICPC, organize and run the second annual CS@Mines High School Programming Competition, act as Chair of Mines ACM and Linux Help Guru for the Mines Linux Users Group, teach middle and high school students about computer science, and volunteer at Golden High School through the Tau Beta Pi Honor Society (where I was also the Service Chair for a year), among other things. I did all of this while being involved in many other activities and clubs including Mines Navs and intramural soccer. I also had a lot of fun learning about the topics in many of my courses. I especially benefited from taking Advanced Computer Architecture which gave me a greater appreciation for how computers work at a hardware level. Many of the courses deepened my understanding of core computer science concepts, and this has helped me to be able to provide context to students in my role as an adjunct at Mines. And on the social side, I did all of this while getting to hang out with some of my best friends, attend a bunch of Mines Football games, participate in the annual E-Days cardboard boat race, and do a lot of skiing.

However, I think that from an objective, pure-monetary perspective, I’m at best no worse off for having done my master’s degree than if I had stopped after undergrad. When accounting for the intangibles of the enjoyment factor and connections I made, I probably came out ahead, but I attribute very little of my career success to this point to having received additional education.

Three Reasons to Get a Master’s Degree

I think there are three main reasons for getting a master’s degree in computer science:

  1. Financial: you want to make more money.

    This is probably the most common reason people want to get an advanced computer science degree. Computer science is one of the fastest growing majors in the nation right now (although the demise of ZIRP might be cooling this off). Due to the large number of graduates, it’s also one of the most competitive. Because of this, people look for many ways to differentiate themselves from all the other graduates to get the higher-paying jobs. One way that people do this is by getting a master’s degree on addition to their undergraduate computer science or other engineering degree.

  2. Academic: you want to learn more to prepare yourself better for industry or further education.

    Others see the master’s degree as a way to grow academically. Whether their goal is to become an educator, continue on to a PhD program, become a researcher in industry or academia, or just generally expand their knowledge of the field, these people are motivated primarily because they enjoy learning.

  3. Social: you are not ready for the “real world” yet and want another year in school before having to be a real adult.

    Many of the people who pursue master’s degrees have a social motivation as well. Maybe they just want more of the “college experience”. Maybe they were able to do their undergraduate degree in less than the normal four years and want one extra year before having to get a real job. These people are generally motivated by one or both of the other reasons, but the social aspect may be the determining factor if they are on the fence.

In the rest of the article, I am going to examine each one of these reasons in turn and give you my honest opinion about the merits of that motivation, and provide you with some things to think about when weighing your options.

1. Financial

Many people enter computer science with the goal of finding a high-paying job right out of college. Many people continue on to get a master’s degree in computer science for the same reason. In this section, I’m going to answer this question: does getting a master’s degree improve my job offer potential enough to warrant the cost? or stated more simply is getting a master’s degree worth the money?.

Individuals with a master’s degree generally receive higher starting salaries and sometimes have increased employability, but this comes with opportunity costs and potentially additional debt.

1.1. Higher Salaries

Most schools that offer a master’s program tout higher starting salaries for master’s degree graduates than their undergraduate counterparts. In many cases, the difference in starting salary is $10k-20k higher for master’s graduates. So the first question is: are these numbers accurate? But the second, and maybe more important question, is why do these students get higher offers?.

As far as the accuracy of such numbers is concerned, I have no reason to question their accuracy. However, knowing that these numbers are published by the same organization which has a financial incentive for you to pay more money for another degree should at least give one slight pause with taking these numbers at face value. I doubt that schools are actively lying about these numbers, but I think they are failing to discuss the second question at all: why are the offers higher? I propose that the reason is not as straightforward as it may seem.

My thesis is that the primary reason that the starting salary is higher for graduates with master’s degrees is because the high-calibre students who enter such programs would already have received higher-than-average starting salaries if they had not attended graduate school.

Schools generally want to attribute the entirety of the starting salary increase to the additional education received in the master’s degree program. However, I think this is somewhat misleading as there is a great degree of selection bias to account for.

Consider the typical student who enters a graduate program. Most graduate programs require you to have a fairly high cumulative GPA in order to gain entrance into the graduate program. At Mines, for example, you must have received at least a 3.0 GPA in an undergraduate program to be accepted to the graduate program. Thus, the students who enter the program are at least decent students. Additionally, anyone who enters a graduate program will, at the very least, not hate school. (Most of my undergraduate friends just wanted out after four years and couldn’t imagine themselves doing another year.) Because of these factors, the students who enter graduate programs are already some of the best, most motivated students in their undergraduate classes; students that would probably get top offers right out of a four-year undergraduate degree.

In effect, the natural selection that occurs getting into the graduate program weeds out the below-average students (the ones who get mediocre offers and pull down class-averages) from the equation.

Anecdotally, I know plenty of top undergraduate students that have received offers that are equal to or better than offers accepted by some of the more average graduate students. I have also seen graduate students get very high offers after getting their master’s degree, but I am fairly confident they would have received a commensurate offer if they entered the job market right after receiving their bachelor’s.

1.2. Increased Employability

For some, getting a master’s degree may increase their employability. Holding a master’s degree does not generally open up positions which would otherwise be inaccessible. Real job differentiation doesn’t really occur until attaining a PhD, at which point high-level industry research positions as well as professorships become possible to attain.

The tech industry highly values experience over credentials. You will not be qualified for senior positions just because you have a master’s degree. You may start at Software Engineer instead of Associate Software Engineer, but for most competent engineers, such progression is expected within the first year anyway.

So, if a master’s degree doesn’t increase the set of positions that you are qualified for, does it increase the quality of attainable jobs? and does the increased quality of jobs compensate for the cost of a master’s degree?

I think that this is highly dependent on your situation, but I will categorize students into five broad categories, and discuss them in turn.

  • The 90th percentile of their undergraduate class

    If a student is already a top undergraduate student, they will be able to get highly competitive offers without a master’s degree. And if they are a top undergraduate student, they will likely be a top graduate student, so they will be able to get similarly highly competitive offers with a master’s degree as well.

    These students are probably not going to benefit from any increased employability as a result of their master’s degree.

  • The 60th-90th percentile of their undergraduate class

    These above-average undergraduate students generally are average graduate students. They would be able to get decent offers without a master’s degree. These students will probably be average graduate students, but will gain experience and possibly increase their chances of getting better offers after earning a master’s degree.

    From a financial standpoint, I think that these students gain the most from the increased employability that a master’s degree provides. These students are at a threshold where they are employable right after their undergraduate studies, but may not be considered by top companies for top offers. The top companies may wonder if it’s worth taking the risk on hiring them. A master’s degree may act as a “proof” that they are in fact a worthwhile investment, and companies will be more likely to take a risk and hire them.

    However, as we will explore in Section 1.3. Opportunity Cost, there are still likely more cost effective ways to increase lifetime earnings than getting a master’s degree.

  • The 40th-60th percentile of their undergraduate class

    These students are are average undergraduate students, and will be closer to the lower-bound threshold for being accepted into graduate programs. Depending on other factors, these students may be struggling to get offers with just their undergraduate degrees. These students will likely struggle with the increased rigour of a graduate program.

    For these students, getting a master’s degree as a way to become more employable will be a very stressful and expensive endeavour. And while they will probably succeed, there are easier ways to get good offers.

    These students will likely find that the additional line on their resume and extra piece of paper in a frame does not cause their job search to become more fruitful. It won’t hurt but it will likely not help to the extent necessary to make it worth the money and time expended in attaining the advanced degree.

    I will make one caveat here: there may be students who were capable of more during undergrad than they achieved (maybe they partied a little too much). Such students who make a true mindset change and really buckle down and focus on their studies to get a high GPA for their graduate studies may benefit from their master’s GPA overshadowing their undergraduate GPA. Companies are generally willing to overlook the fact that a student partied a little too hard during undergrad if they proved that they can apply themselves productively during graduate school. The key here, though, is that such students actually need to change their habits which is a task that is possibly more difficult than the actual studies.

  • The 0th-40th percentile of their undergraduate class

    These students are probably not being accepted into graduate programs anyway, but even if they are, they will have a similar or worse experience than those in the 40th-60th percentile, and may not even graduate which will cause them to waste a bunch of money on something they don’t even complete.

  • Students who major in a subject other than computer science

    Although this article is primarily aimed at students who are already in an undergraduate computer science program, I will mention here that students in other engineering or science fields may find that getting a master’s in computer science is very financially beneficial. This is because they will bring degrees in two separate fields to potential employers showing that they have demonstrated a level of competence in multiple fields. Additionally, many fields are looking for people with programming expertise in addition to having field-specific knowledge. In such fields, having a master’s in computer science is likely to be beneficial. However, these students should still weigh this with other options such as getting a double major, or a minor. Both of which will possibly be less expensive, and (depending on the field) result in equivalent outcomes.

In conclusion, getting a master’s degree is not a silver bullet that will make you a better computer scientist or software engineer. If you are struggling to get offers with just your undergraduate degree, you will likely continue to struggle to get offers once you have an extra line on your resume, and an extra piece of paper in a frame. If you are getting competitive offers with a bachelor’s, you’ll get competitive offers with a master’s as well.

If the only reason you want to get a master’s degree is to become more employable, don’t get a master’s degree. Work on being more employable!

Getting a master’s degree does not make you automatically more employable. There are much cheaper ways to become more employable including: networking, working on side-projects, networking, contributing to open source, networking, getting involved with computer-science related clubs, oh, and did I mention networking yet?

If your goal is to increase your employability, always consider options that don’t cost tens of thousands of dollars first.

1.3. Opportunity Cost

So far in this section, I’ve primarily been talking about the additional starting salary that you can achieve by holding a master’s degree. I’ve demonstrated that, except in a few scenarios, having the master’s degree is not going to be the driving factor behind higher starting offers. However, we need to take a step back and look at the picture more wholistically. Luckily, we have a tool for that: lifetime earnings.

In this section, I claim that, after adjusting for all other factors, the difference in lifetime earnings of those holding a master’s degree in computer science versus those holding only a bachelor’s degree in computer science is negligible. I will also argue that there are other factors which have significantly more influence on lifetime earnings (the primary one being luck).

We have already discussed one reason for this: selection bias. The top students are always going to get top jobs, regardless of how many degrees they’ve earned.

The second reason is opportunity costs. One must realize that the cost of getting a graduate degree is not just the cost of tuition and all other living costs associated with attending school (both of which are growing every year), it also includes the lost income that would have been gained by entering the workforce a year or more earlier!

Let’s explore this with a story of two students: John and Juan. Both graduate from the same undergraduate program with the exact same GPA. Both have the exact same student debt from their undergraduate program, both participated in the same clubs, did the same side projects, and networked with the exact same people. John decides to get a master’s degree, but Juan decides to enter the workforce immediately after undergrad.

John will spend $30k on tuition and living expenses to get his master’s degree in one year. Juan accepted an offer for $100k/yr cash compensation. Let’s assume that John will accept a position after his master’s degree paying $115k/yr cash compensation. Let’s assume that all benefits are the same, and no bonuses nor stock compensation are given. Let’s assume that both John and Juan are good employees and will receive a 5% raise each year they work. The following table shows the lifetime earnings of each (for simplicity we are assuming that investing has not been invented yet).


As you can see, it takes 12 years for John to catch up to Juan in lifetime earnings.

However, this model ignores factors such as job changes, bonuses, stock compensation, differences in benefits, etc. that might affect actual earnings. It also assumes that John pays off the student loan as soon as possible, and ignores interest payments on the debt. In fact, such factors introduce such variance into this model that it becomes effectively useless after a couple years.

In an industry where job changes are common every few years, ones ability to negotiate raises via changing jobs will be a much larger driver of lifetime earnings than an additional degree ever will be. Additionally, in an industry where company valuations are swayed more by the Federal Reserve Chair than actual underlying company performance, stock compensation introduces huge variance into expected lifetime earnings. Bonuses are also subject to macroeconomic conditions and company performance which is mostly outside of an individual software engineer’s control. Another major factor is benefits. In the model above, we were assuming that both John and Juan have the same benefits, however, this is almost certainly not going to be the case. Different healthcare plans have widely varying deductibles and benefits. Companies also provide a wide variety of different additional benefits from 401(k) match to free food in the office, from fertility assistance to continued education credits, and from employee stock purchase plans (ESPP) to travel to company retreats, all of which may be valued differently by different people in different life situations.

The above analysis is ignoring the additional payments that would be required for the $30k more of student debt, and also assumes the same cost-of-living. Tech hubs such as the Bay Area, Seattle, and New York have very high cost of living, and adjusting for cost-of-living, lifetime earnings outcome variance increases by another sizeable factor.

All of these factors require a great deal of luck, or at the very least, being in the right place at the right time. One opportune job change or stock grant can rapidly erase any income discrepancy. Due to the outsized influence of factors other than earning a master’s degree, I think that everything evens out within a decade.

I will speak from personal experience right now that I’ve probably made less than some of my peers who only got an undergraduate degree. This is because I’ve chosen to take a risk by working at a startup instead of a well established large tech company. I think that I’ve taken a slight pay cut from what I could be earning at a larger company, but I have a decent amount of equity and there is potential for a large windfall in the case of a favourable exit. (Update: the exit was favourable. I got a decent equity payout and a sizeable raise.) On the other hand, during the first two years of my career that I spent at The Trade Desk, the stock tripled, and I had both ESPP (a program which allows employees to defer salary to buy the stock at a discount) and stock grants. Both of these did very well during that period. This stock boom happened during the COVID lockdowns, which is obviously something that I had no control over.

If the only reason you are considering grad school is to make more money, don’t go to grad school. Get into the workforce now, and start climbing the ladder, making strategic job changes, and taking advantage of whatever additional compensation is provided.

1.4. Debt

The above section assumed that John was financing his master’s degree entirely with debt. However, many students will be able to find part-time work as a TA or in some other position to help reduce the amount of debt that they have to take out in order to complete the degree. Some students will also be fortunate enough to have funds from parents or grandparents to fund their master’s degree.

For individuals which are able to either cash-flow their living expenses or have them paid for by relatives or scholarships, the calculus starts to lean a bit more in the favour of getting a master’s degree, but the opportunity cost of loosing a year’s worth of salary due to not entering the workforce earlier still exists.

I only took two years to get my bachelor’s degree due to having completed the first two years worth of credits at Red Rocks Community College while I was still in high school. I was also fortunate to have enough funds from my grandparents and parents to fund another year of college.

I don’t know your exact situation, but I would be very cautious about assuming that taking out additional debt is definitely going to be worth it. It may be, but it may not be, and as discussed in the previous section, whether it is worth it or not is dependent on many other factors other than just a successful completion of a master’s degree.

1.5. Recession

In the previous sections, I have argued that the long-term outcomes of students who get their master’s degree and those who don’t equalize within a relatively short time-horizon. However, this is assuming that macroeconomic conditions are stable and equal. As we know from history, market corrections, inflationary periods, general economic downturns, and other macroeconomic factors can greatly affect job markets.

Studies show that graduating into a recession leads to lower lifetime earnings, and even other adverse effects. Due to this, if the economy hits a period of malaise right before you graduate with a bachelor’s degree, stalling graduating by a year or two might be worth it with the hope that the worst of the market correction is over by the time you graduate with a master’s degree.

I was fortunate to graduate into one of the longest bull markets in history, so I have no additional insights to provide as to whether or not you should do this, but I want to present this argument, as many of my younger peers (graduating from school soon) are trying to navigate this question.

1.6. Conclusion

Let’s revisit the questions I posed at the beginning of this section: Is getting a master’s degree worth the money?

Unfortunately, as with most sufficiently complex things, the answer is that it depends.

In broad strokes, getting a master’s degree is probably not an actively bad decision for reasonably good students, but it’s also not the huge booster that colleges claim it to be.

So, if the financial aspect is neutral at best, why would anyone go to grad school? That is the correct question to ask. In the next sections, I will discuss the other reasons for going to grad school. If one or both resonate with you, then grad school might be a great decision for you. However, if neither of them have any appeal to you, you are likely better off just entering the workforce right after your bachelor’s degree.

2. Academic

Many people want to go to grad school so that they increase their depth of knowledge in CS or prepare them for even higher studies such as a PhD. If that’s you, then a master’s degree might be a great choice! But first, let’s investigate the motivations for why you are considering increasing your depth of knowledge in CS.

I think that most people are motivated to get a higher degree by one or more of the following three reasons:

  1. The joy of learning: you just like learning, and don’t feel like your undergraduate studies sufficiently quenched your desire to learn.
  2. To become an educator: you want to teach others computer science (either at a middle/high school level or college level).
  3. Becoming an expert in a specific topic: you want to be a cutting-edge researcher in a topic that you find interesting in computer science.

We will discuss each in the next three sections. I’ll also provide some thoughts on whether it’s worth it academically for software engineers to pursue a master’s in computer science.

2.1. The Joy of Learning

Most undergraduate programs are designed to be breadth-first in the sense that you will learn the basics of most of the broad areas of computer science. This often means that undergraduates don’t have a very deep understanding of many (if any) topics. If you feel like you didn’t get enough depth, and you are not going to be academically complete without such depth, a master’s program is a great way to satisfy your learning goals.

This is especially the case if you find that there are one or two broad areas that you want to dive deeper on. Here are a few examples of what this might look like:

  • If you enjoy algorithms, you can study topics such as graph theory, complexity theory, or whatever other aspect of algorithms you are interested in.
  • If you enjoy programming language design and implementation, you can study topics such as symbolic computation, program synthesis, or parsing.
  • If you enjoy software engineering, you can study topics such as software architecture, distributed systems, or consensus algorithms.
  • If you enjoy computer architecture, you can study topics such as processor design and cache optimization.

In general, the best way to figure out what a university offers as far as research opportunities is to talk to professors who research in those areas. Mention what you are interested in learning more, and see if they have any good opportunities for you to dive deeper into a topic.

Depending on your program, the master’s degree will consist of just classes, classes and a project, or classes and a thesis. Most master’s programs give you a fairly large degree of freedom in your project or thesis, which will allow you to tailor your experience to your goals. Again, talking to an advisor is the best way to figure out how to achieve your goals. If you are considering getting a master’s at the same school as your undergraduate degree, find a professor that you enjoyed taking a class from and talk to them. (Hopefully you established some rapport with them and they know who you are and are willing to help.)

This is the boat that I found myself in. I was unsatisfied with the depth of the undergraduate program, and wanted to learn more. The courses I took during my master’s degree deepened my understanding to the point where I was no longer yearning to learn more about any particular subject.

2.2. Becoming an Educator

Computer science education is becoming more and more widespread and is being integrated earlier and earlier into curriculums. There are many opportunities for computer science educators at a middle and high school level. If you are interested in becoming such an educator then you finding a school with a CS education masters degree program is likely a good option.

If you want to become a professor at a university or college, then you will need a PhD (you don’t want to be an adjunct, they don’t pay enough). Many people don’t know this, but you can just go straight into a PhD program instead of getting a master’s degree. It may take slightly longer to do your PhD because you have to take more courses in your first couple years, and if you decide to drop out of the program, you’ll basically have enough credits for a master’s degree.

I would recommend spending a couple years in industry before going for a PhD. It will give you a chance to decide whether you want to dedicate 5+ years to a PhD, and you will also gain experience that will help you be a better educator. You will be able to better prepare students who are planning on entering software engineering careers. Obviously, this is not required, and there are many professors who have stayed in academia their entire careers.

2.3. Becoming an Expert in a Specific Topic

If you want to become a researcher at a company, the path is very similar to becoming a professor. You’ll need a PhD. Again, the advice still holds: go straight to a PhD, skipping the master’s degree. The same advice applies for spending a couple years in industry, as that will probably help you tune your research focus to something that is industry-applicable which will increase your desirability for industry research positions.

2.4. What About Software Engineers?

If your goal after school is to become a software engineer (not a researcher or educator), you will likely not use much (if any) of the knowledge that you gain in a graduate program in your software engineering role. You certainly will have a better understanding of some of the foundations on which the products you are building are laid, but the primary benefit is the satisfaction that you understand the building blocks. It is rare that such knowledge actually proves useful in the day-to-day.

In conclusion, if you just love learning or want to become an educator at a middle/high school level, a master’s degree is a great option. If you want to become a professor or industry researcher, then I would just go straight to a PhD (possibly with a stint in industry beforehand).

3. Social

My college experience was one of the best times of my life so far. I made many lifelong friends and made many memories that I will always look back fondly upon. For me, I really felt like I grew as a person during the year I was getting my master’s degree, and I am very happy that I did it even just for the social aspect. I also already discussed all of the clubs I participated in, and the football games I attended in the introduction to this article. I let loose a bit and did some crazy things that I had not participated in during undergrad. Nothing too crazy, but just a little bit out there. I also turned 21 in the middle of that school year.

Social interactions in the form of networking are equally important to the friendships. Spending an extra year connecting with like-minded people can be extremely valuable. You will probably run into alumni of your alma mater many times throughout your career in the weirdest places.

If you are ahead in school (I was 2 years ahead), having an extra year of college experience is often worth it. Even if you are just a semester ahead, you will end up going to school for only more semester compared to your peers who are just getting a bachelor’s degree. (And some of them will take 4.5 or 5 years anyway due to various circumstances.) I have one friend who got only an undergraduate degree who told me that he regrets graduating in 3.5 years as he felt like it wasn’t worth it to miss out socially on one more semester of school. For me, I was not even 21 yet when I graduated with my bachelor’s, and I felt too young to enter the professional workforce. The extra year for me really helped make me feel prepared for the “real world”.

Your social enjoyment factor is going to be highly dependent on you actually liking school, though. If you can’t stand school, and are just going to be miserable with all of the assignments and tests, the added social benefits will not outweigh the misery. But if you somewhat like school, there are real social benefits to staying in school for one extra year.

4. Conclusion

So, should you get a master’s degree? The answer is very complex. Financially, I think that it’s probably a wash, but your academic goals and/or social life may benefit from doing a master’s degree.

I have no regrets about my decision to get my master’s degree. As I have mentioned already, it was one of the best years of my life so far, and I wouldn’t trade a second of it.

However, I am not not naive enough to claim that it was the source of the success I’ve had so far in my career. I do not think that it greatly improved my career prospects or lifetime earnings. However, it gave me an opportunity to dive deeper into a few computer science topics that I found interesting, and gave me a chance to deepen lifelong friendships and have a lot of fun.

If you ask any university whether it’s worth it or not, they will unequivocally say of course it’s worth it, but I wanted to provide a more accurate picture of the benefits and opportunities, as well as the costs associated with getting a master’s degree in computer science. Spending a year of your life, and tens of thousands of dollars is not a decision that should be trivialized, and you should not make such a decision by vibes alone.

Everyone’s situation is different. You have to do some real introspection as to your motivations and goals and consider all factors to determine if a master’s degree is worth it for you. I hope that this article has provided a good framework for starting to think through these questions for yourself.

The decision might feel daunting. I suggest that you first think if there are any red flags that might short-circuit your decision making process and cause your decision to be “no” immediately. For example, if you hate school, then don’t do a master’s degree, or if you are just doing it for the increased starting salary, don’t do a master’s degree. But if you don’t have a reason not to do a master’s degree, then luckily, in the vast majority of cases, there is not a wrong answer. Regardless of what you choose, you’ll probably end up in about the same place in a few years, and there are many other decisions which will affect your life much more than whether you decide to get a master’s degree.

I hope that this article has given you some tools for helping make your decision about whether or not you want to do your master’s degree. I wish you the best of luck regardless of whether you decide to get your master’s degree, or go into industry right after earning your bachelor’s. The fact that you’ve read all the way to the bottom gives me confidence that whatever you choose, it will be the right decision for you!