Why I Got My Masters Degree In Computer Science
January 23, 2021
I remember when I first told my team lead about possibly going back to school. He simply replied, “You don’t need it.” and moved on.
I then remember talking to People Services at my company about what it would look like to get my degree part-time while working. They agreed to discuss it, but they didn’t think I would actually follow through on anything. “Let us know when you get into a program. We can talk about it further then.”
When I did get accepted into a program, my manager gave me a baffled look. He was confused. “You really are going to go for this thing, aren’t you?” he said.
Eventually, all of these people came to support me. However, they all had the same question many people have when I tell them I went back to school for a master’s degree.
Why would you do that?
I’ve answered this question a handful of different ways over the years. But I’ve never given a very comprehensive one. This article is meant to be that answer. I’ll summarize my motivations, my situation, and why I ultimately went back to get my degree.
To answer this, though, I need to get a running start. I can’t just start at two and a half years when I started school. I have to start with how I came to love software in the first place.
Teenage Coder and Undergraduate
I knew I wanted to be a software engineer since I was 12. My parents bought me a LEGO Mindstorms set, and I was hooked on the coding part. My high school had coding classes (lucky me!), and before I know it, I was writing Visual Basic and Java. All before I could drive.
By the time I got to college, I was on a mission to understand computers as deeply as possible.
I’m also a genuinely curious person. Like many software engineers, I liked understanding how things worked. If I didn’t know how something worked, I would break it apart, trying to understand it; often not being able to put it back together.
Having a desire to understand the world and a desire to understand computers, in the same way, led me to set a goal of getting my master’s. It just seemed like the right fit for me.
As I was wrapping up my undergraduate degree, though, I realized I needed to get a job. I was in debt, and I was tired. Like really tired. I needed a break from the pace of academia.
So I got a job thinking that I might one day go back to school, but it was more of a pipedream at that point. No one goes back to school when they don’t need to, right?
After a few years of writing code, the itch to go back started to grow more noticeable. My brother was going to medical school, a few of my friends were getting their graduate degrees, and coding was starting to feel… routine.
I wouldn’t say I was bored. I was learning and growing in my skills. I just recognized that the majority of the problems I was solving were pretty close together. I was being challenged in some ways, but not in the deep, technical understanding of how computers worked.
Around this time, I also started looking for other roles. As I searched, I noticed that most roles I got excited about all mentioned a preference towards a higher degree. I thought this was interesting as I had always thought a higher degree it didn’t mean that much in the industry.
I started doing some more research. I took a look at the people around me who had the roles I was wanting to grow into (Staff, Principal, etc.). I realized that many of these people did have some form of a graduate degree, after all. Not enough reason to go back to school on its own, but there seemed to be a correlation between the roles I wanted and an advanced degree.
During this time, I also learned another thing about myself. I had signed up to take all of these online classes to learn things like ML or AWS, but I had a hard time finishing them. I might watch a few lectures and do the first assignment but it would always trail off.
I’ve come to learn that for me, I need rigorous structure. I need some skin in the game. I need something to keep me pushing through when the content got hard or I got distracted by some other new shiny course to take. Some might say I needed more discipline. My take is that we all have different ways in which we create discipline and motivation within ourselves. Some people are fine with an online course and create their own schedule. I’ve simply come to learn that for myself, the additional structure of having a set time for class for a specific duration with deadlines is what helps me stay motivated.
I started realizing that I was hungry to learn, but I was going to have to make a change to enable that learning based on my learning style. I wasn’t growing in the way I wanted to grow in my work. And I recognized that the roles I wanted to move into were employing people with advanced degrees.
It was time to go back.
Once I decided I did, in fact, want to go back to school, I had a lot of other factors to figure out. Where would I go? How would I pay for it? Would I work at the same time? Would my girlfriend break up with me? Spoiler alert - we didn’t break up; we have been married for almost a year now :)
The first thing was to figure out where I would go. After a lot of research, I settled on three different programs:
- NC State University (local to me).
- Carnegie Mellon (a long shot).
- Portland State University (where my girlfriend was at the time).
They each had different cost structures too. NC State was the cheapest because I was local while Carnegie was the highest due to out of state tuition, and it being one of the best programs in the country. Portland was in the middle.
I then needed to prepare and take the Graduate Record Examinations or GRE. Man - that was a rough test. I would prepare nearly every morning from around 7:30 to 8:30 before work, and then usually a three- or four-hour stretch on Saturdays. I would also usually do a two-hour session on Sundays. I wound up having to take the test twice but got a final score I was happy with.
Once I got the scores I liked, I worked on an application essay, got letters of recommendation from my manager, the director of software at my company, and an old professor - a BIG thank you to them!
I had everything I needed. It was time to apply.
The Decision Point
Before going further into this story, I need to back up and provide a little more insight into the other complexities going on during this time. The first being that I had decided early on that I wouldn’t sacrifice work experience for a degree unless the program was exceptional (schools like Carnegie Mellon). I had decided that studying part-time while working would be the best situation for me to get my degree.
This is the part I think most people struggle with my story on. Why would you want to do that? More work!?
Put simply - money. I needed a job. I had also just finished paying back my undergraduate student loans - I didn’t want to get new ones.
Additionally, I was preparing to get married (my fiancé had moved back to Raleigh shortly after I took the GRE). I would need something more than a minimum wage job or a student job.
My plan was simple: apply to the local program, and if I got in, I would talk to my workplace about how to make it work. If it became clear that my employer was not interested in working it out, I would apply to my dream program at some other time. GRE scores are valid for five years, so I would just have that plan in my back pocket.
Getting Accepted and Setting Expectations
Thankfully, I got accepted! Hooray! But this started the most complex part of this process: talking with my employer.
While it is a bit of a stereotype, many software engineers are not good with people. Myself included. I am either way to intense and technical, or would rather not speak at all. How was I going to discuss the idea of going to school part-time and reducing my hours on the job? And were my co-workers going to hate me?
This is where I was glad I had practiced honesty throughout the whole process. As I mentioned at the beginning of this story, I was discussing the idea of going back to school with people already. My manager, my immediate team, and even a People Services team member, knew it was something I was working towards. This meant that the news of me getting accepted wasn’t a blind spot or a surprise. It just meant that I was serious. It was time to shake out the details.
What I did was lay out some possible options with my employer of how I could work and study simultaneously. I outlined the program’s length, provided links to the curriculum, set expectations on current and future costs, etc. I discussed specific classes I hoped to take directly correlated with the work I was already doing as a software engineer.
After a few rounds of negotiation, we reached an agreement! I was going back to school.
So… Why Did I Get My Masters Again?
Yes, I know that quickly became a story; a long one at that. But I think it was necessary to show that I had a mix of motivations and circumstances that went into my decision to get my master’s degree.
To summarize it briefly, I’ll put it in bulleted form.
- I had made it a goal of mine to get my masters degree before I ever started undergraduate
- As a career software engineer, I realized I hadn’t scratched the itch to learn computers as deeply as I wanted
- To learn at my best, I needed rigorous structure and deadlines
- As I took inventory of who was employed in the roles I wanted to have, many of them had advanced degrees
- I was able to land in a unique situation that allowed me to earn my degree without sacrificing industry experience
The next question, of course, is this: “Was it worth it?“. I’ll answer that in another post soon. If you don’t want to miss it, follow me on LinkedIn or Medium or whatever platform you prefer. I’ll make sure you know when it’s up :)
If you enjoyed this article, you should join my newsletter! Every other Tuesday, I send you tools, resources, and a new article to help you build great teams that build great software.
Dan Goslen is a software engineer, climber, and coffee drinker. He has spent 10 years writing software systems that range from monoliths to micro-services and everywhere in between. He's passionate about building great software teams that build great software. He currently works as a software engineer in Raleigh, NC where he lives with his wife and son.