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

Source: https://sumnerevans.com/posts/school/is-getting-a-masters-in-cs-worth-it/
Published: 2024-02-26
School, Software Engineering, Computer Science, Masters Degree

"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 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 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](https://sumnerevans.com/posts/hackathons/hackcu-v/) and
[win](https://sumnerevans.com/posts/hackathons/2018-11-16-facebook-hackathon-the-competition/)
multiple hackathons, [compete in ICPC](https://sumnerevans.com/posts/school/2018-11-03-icpc/),
organise and run the second annual
[CS@Mines High School Programming
Competition](https://sumnerevans.com/posts/school/2019-hspc/), 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](https://sumnerevans.com/portfolio/#experience-on-tour),
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](https://sumnerevans.com/portfolio/#experience-adjunct-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](#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](https://en.wikipedia.org/wiki/Zero_interest-rate_policy) 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](#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](#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](#11-higher-salaries) and sometimes have
[increased employability](#12-increased-employability), but this comes with
[opportunity costs](#13-opportunity-cost) and potentially additional
[debt](#14-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_](https://en.wikipedia.org/wiki/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 categorise
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**](#13-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 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 résumé, 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 realise 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).

<table class="data">
  <thead>
    <tr class="border-bottom">
      <th scope="col"></th>
      <th scope="col" colspan="2" class="border-right"><b>John</b></th>
      <th scope="col" colspan="2"><b>Juan</b></th>
    </tr>
    <tr>
      <th scope="col" class="border-right"><b>Year</b></th>
      <th scope="col"><b>Earned</b></th>
      <th scope="col" class="border-right"><b>Lifetime</b></th>
      <th scope="col"><b>Earned</b></th>
      <th scope="col"><b>Lifetime</b></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th class="border-right">1</th>
      <td class="align-right">-30.00k</td>
      <td class="border-right align-right">-30.00k</td>
      <td class="align-right">100.00k</td>
      <td class="align-right">100.00k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">2</th>
      <td class="align-right">$115.00k</td>
      <td class="border-right align-right">$85.00k</td>
      <td class="align-right">$105.00k</td>
      <td class="align-right">$205.00k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">3</th>
      <td class="align-right">$120.75k</td>
      <td class="border-right align-right">$205.75k</td>
      <td class="align-right">$110.25k</td>
      <td class="align-right">$315.25k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">4</th>
      <td class="align-right">$126.79k</td>
      <td class="border-right align-right">$332.54k</td>
      <td class="align-right">$115.76k</td>
      <td class="align-right">$431.01k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">5</th>
      <td class="align-right">$133.13k</td>
      <td class="border-right align-right">$465.66k</td>
      <td class="align-right">$121.55k</td>
      <td class="align-right">$552.56k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">6</th>
      <td class="align-right">$139.78k</td>
      <td class="border-right align-right">$605.45k</td>
      <td class="align-right">$127.63k</td>
      <td class="align-right">$680.19k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">7</th>
      <td class="align-right">$146.77k</td>
      <td class="border-right align-right">$752.22k</td>
      <td class="align-right">$134.01k</td>
      <td class="align-right">$814.20k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">8</th>
      <td class="align-right">$154.11k</td>
      <td class="border-right align-right">$906.33k</td>
      <td class="align-right">$140.71k</td>
      <td class="align-right">$954.91k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">9</th>
      <td class="align-right">$161.82k</td>
      <td class="border-right align-right">$1,068.15k</td>
      <td class="align-right">$147.75k</td>
      <td class="align-right">$1,102.66k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">10</th>
      <td class="align-right">$169.91k</td>
      <td class="border-right align-right">$1,238.05k</td>
      <td class="align-right">$155.13k</td>
      <td class="align-right">$1,257.79k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">11</th>
      <td class="align-right">$178.40k</td>
      <td class="border-right align-right">$1,416.46k</td>
      <td class="align-right">$162.89k</td>
      <td class="align-right">$1,420.68k</td>
    </tr>
    <tr>
      <th class="border-right" scope="row">12</th>
      <td class="align-right">$187.32k</td>
      <td class="border-right align-right"><b>$1,603.78k</b></td>
      <td class="align-right">$171.03k</td>
      <td class="align-right"><b>$1,591.71k</b></td>
    </tr>
  </tbody>
</table>

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](https://techcrunch.com/2024/04/09/wordpress-com-owner-automattic-acquires-multi-service-messaging-app-beeper-for-125m/).
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](https://sumnerevans.com/portfolio/#education-rrcc) 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](https://siepr.stanford.edu/publications/policy-brief/recession-graduates-long-lasting-effects-unlucky-draw)
[show](https://www.nber.org/digest/nov06/career-effects-graduating-recession)
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**](#21-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**](#22-becoming-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**](#23-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 finding a school with a Computer
Science 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 one 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 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!
