Often this education comes in non-traditional forms: bootcamps, online courses, and on-the-job learning are all legitimate paths to becoming a programmer.
But what about a master’s degree? Chances are, if you’re wondering whether you need a master’s in Computer Science, you’re either already employed as a developer and want to advance your career, or you’re just finishing up your bachelor’s degree and wonder if you should continue your education. This is a question with many layers, and it’s not one to take lightly; investing years of your life and tens of thousands of dollars is a decision you should put some thought into. In this article, we’ll help you answer some of the questions you might have to determine whether a master’s in Computer Science is right for you.
The top reasons for pursuing a master’s degree in any field are career advancement, higher earning potential, and a wider professional network.
A master’s degree in any field is a major investment, of not just money but time and hard work. Why, specifically, do you want to earn a master’s in Computer Science? Here are a few questions to help you understand your motivations and decide whether a master’s in Computer Science is right for you.
Would a master’s degree help you meet a career goal that’s otherwise unobtainable?
Do many of your colleagues hold master’s degrees? What about those in positions you hope to hold in the future?
Can you afford to invest money in schooling? A good degree program can cost anywhere from $30K to $100K. Is this manageable for you at this point in your life, or would it be a major hardship?
Do you have the time to invest in your education? If you’re working a full-time job, raising a family, or have other obligations in your life, will you find it impossible to keep up when you add master’s-level courses to the heap?
Do you enjoy school? A master’s program is a rigorous undertaking that will require a great deal of attention and many hours of work. If this sounds like a chore before you’ve even started, you may find the process difficult or impossible to finish.
What Can I Do With a Master’s in Computer Science?
If you’re looking into a master’s in Computer Science, you’re probably trying to be (or already are) a software developer or engineer. Many enter this field without master’s degrees or even without bachelor’s degrees. But those with advanced degrees may find themselves better suited to advance through the ranks into leadership positions and less likely to find themselves stalled mid-career.
PayScale listed the most typical jobs for users holding a master’s degree in Computer Science as Software Engineer, Senior Software Engineer, Software Developer, Software Development Engineer.
Northeastern University charted the top-paying jobs for MSCS (Master of Science in Computer Science) graduates, listing Software Development Engineer, Senior Software Web Developer, and Computer Scientist as top-paying jobs.
Of course, we know job titles in the development space can be difficult to decipher. What is the difference between a Software Engineer and a Software Developer? You’re likely to get different answers from everybody you ask. But what we do know is that words like "Lead" and “Manager” are typically reserved for higher-level, higher-paying roles with more complex responsibilities. These are the kinds of roles a master’s degree can help prepare you for. We’ll use the word “engineer” here, but these same roles might also be called “developers” or “programmers.”
The Lead Engineer on a development team is just that, the team’s leader. The Lead Engineer will most likely code every day, but will also be responsible for project management, monitoring, and reporting on the team’s progress.
Typically an Engineering Manager is more focused on people than on code. The Engineering Manager will hire, train, and manage a team of engineers. She will have a strong technical background (such as a master’s degree in Computer Science) to enable her to better lead her team, but in this role she may or may not code every day herself.
CTO/VP of Engineering
This executive role is one of leadership across all technical operations at a company. In addition to helping manage people, the Chief Technical Officer or VP of Engineering is responsible for big-picture strategy and liaising with other executives in the C-suite. He is the voice of engineers on the executive team and will connect the company’s business concerns with its technological strategy.
The skills and background gained in an advanced degree program can be a leg up in a competitive industry, and can better prepare you to be a successful leader in one of these roles.
It’s known that higher degrees typically result in higher lifetime earnings. According to the Georgetown University Center on Education and the Workforce, bachelor’s degree holders earn a median of $56,700 per year, while those with master’s degrees earn a median of $66,800. Over a lifetime of work, this is a difference of $400,000. The Bureau of Labor Statistics puts these numbers at $60,996 and $72,858, respectively.
But do these general figures hold true in the Computer Science field? The Georgetown report listed "Computer Software Engineers" as a top 10 profession for both bachelor’s and master’s degree holders; Computer Software Engineers with bachelor’s degrees earned approximately $3.5 million over their lifetimes; those with master’s degrees earned $3.8 million, a difference of approximately $300,000.
PayScale data shows a similar trend: Those with bachelor’s degrees in Computer Science earned a median of $112,000 per year, while those with master’s degrees in Computer Science earned a median of $129,500. There’s little doubt that more education equals higher paychecks.
It’s important, though, to weigh the benefits against the cost of a master’s degree in Computer Science. Many degrees can cost upwards of $100,000 (more if you take on student loan interest). You should ask yourself whether the time, effort, and expense of a degree program are worth it to you in your own life.
Career Advancement and Networking Opportunities
There are reasons beyond earning potential to earn a master’s degree in Computer Science, of course. If leadership in your field is your goal, a master’s degree can open those doors. In a competitive field, an advanced degree can set you apart from the pack. If you’ve earned a bachelor’s degree and find yourself craving more advanced study, you may choose to earn a master’s degree for your own personal enrichment and satisfaction. You’ll find the curriculum in a master’s degree program to be deeper and more advanced, requiring more critical thinking and resulting in a more comprehensive understanding of your field. And of course broadening your horizons in this way, even if done with no particular career goals in mind, can take your career in directions you never considered before.
Networking opportunities are also a factor in deciding whether to continue your education. "Your network is your net worth," goes the popular business proverb. Ask anybody in a position of power and success, and doubtless they can point to a time when their success hinged on knowing the right person in the right place at the right time. Classes aren’t only about the curriculum; your classmates, whether in person or online, are often a rich resource in and of themselves. Getting to know classmates, professors, and others in the Computer Science field is a benefit that can’t be quantified.
Master’s Degree Curriculum
While an undergraduate degree in Computer Science involves learning the basics of programming and becoming fluent in one or more languages, a master’s program generally assumes you know how to code. Typically you will have earned a bachelor’s degree in Computer Science before you begin your graduate studies, and you will be expected to use that knowledge. Work experience is also very helpful; even if your bachelor’s is in another field, work experience as a programmer may qualify you for admission to many master’s programs.
There are dozens of Computer Science master’s programs, and each will approach the subject a little differently. But in general, you can expect courses to focus more on abstract concepts including decision making, management, strategy, and design. You’ll be learning not how to code but how to manage the software development process including managing people and managing technical strategy.
At Carnegie Mellon University, for example, the highly-rated Master of Software Engineering program includes core courses such as Methods: Deciding What to Design ("Practical development of software requires an understanding of successful methods for bridging the gap between a problem to be solved and a working software system") and Architectures for Software Systems (“Successful design of complex software systems requires the ability to describe, evaluate, and create systems at an architectural level of abstraction”).
At Stanford, the Master of Science in Computer Science (MSCS) is available with ten concentrations:
Computer and Network Security
Information Management and Analytics
Mobile and Internet Computing
Theoretical Computer Science
You can see that the options are as broad as they are deep; you can choose to focus on any of these topics, and after you’ve narrowed your focus you’ll study that topic in great depth. For this reason, a master’s in Computer Science is best for those who have a desire to specialize in a particular subset of the field; you will need to dive deep into one of these concentrations, and you’ll emerge with an expert-level understanding.
Top Programs in the U.S.
U.S. News and World Report ranked the Computer Science graduate programs in the United States for 2018, listing the following as their Top 10:
Carnegie Mellon University
Massachusetts Institute of Technology
University of California - Berkeley
University of Illinois - Urabana-Champaign
University of Washington
Georgia Institute of Technology
University of Texas-Austin
What Does it Cost?
We’ve already discussed the various costs of earning a master’s degree; these costs can be counted in dollars, hours, energy, and opportunity. On average, cost to attend graduate school is between $30,000 and $120,000; top-tier schools will be at the high end of that range, and if you fund your education with student loans, you may be paying interest for years to come.
Expect to spend around 2 years studying full-time, or 3-5 years if you attend school part-time while you work or attend to other obligations. And don’t forget opportunity cost: all the hours you spend in school, you won’t be working in a paid position. Be sure to include that lost income when you’re calculating your costs and returns. Only you can decide if the rewards are worth the costs.
Not everybody agrees that a graduate degree in Computer Science is the best way to advance your career. There are blog posts and think pieces across the internet claiming you don’t need a college degree at all to be a successful programmer. And in a Fortune article in 2015, one startup CEO was quoted blasting degree programs as a waste of time and money, saying among other things that "University Computer Science departments are in miserable shape: 10 years behind in a field that changes every 10 minutes. Computer science departments prepare their students for academic or research careers and spurn jobs that actually pay money. They teach students how to design an operating system, but not how to work with a real, live development team."
He’s not alone in these views, but proponents of higher education are just as loud and just as common. So who’s right? Our advice is simple: you know your own career aspirations best. Ask yourself the questions listed at the start of this article to determine whether earning a master’s degree in Computer Science is of value to you. Continue to do your homework (reading this article was a great start!) and make informed decisions about your future, recognizing the costs of this endeavor and being realistic about the expected returns.