Earning a PhD in Software Engineering
March 18, 2021
Getting a doctorate isn't always a slam-dunk career move. A PhD in software engineering can help you achieve your long-term goals… or curtail your earning potential. Or both!
A lot of research goes into software development, but that research and the people behind it are largely invisible. Most of us spend more time thinking about how innovative new software transforms how we work and play than about the innovators who develop the new visualizations, computational exchanges, programming techniques, and distributed networks that make it all possible.
The fact is, however, that some software engineers aren't developers. They're researchers, academics, strategists, and leaders—and often, they're PhDs who took the road less traveled and specialized in software engineering instead of computer science.
There are hundreds of thousands of software engineers worldwide, and only a small percentage of them hold software engineering PhDs. This has nothing to do with the relative worth of the degree itself. If you're interested in academia or research, or dream of changing the way software is created for the better, a Ph.D. in software engineering will help you do that. If, on the other hand, you love coding and solving problems with software—as many developers do—this degree probably isn't for you.
In fact, if you seek a career in software engineering because programming is your passion, a PhD can hold you back. Your programming skills may get rusty in a PhD program because you'll spend more time researching how other people code. Even if they don't, some employers will still overlook your applications, assuming you're overqualified to code.
Finally, if you're looking at doctoral programs hoping an advanced degree will boost your salary, prepare for a rude shock. With a Master of Science in Software Engineering, you'll earn about $104,000. With a PhD, you'll earn about $103,000.
So, why do some people pursue this degree—an endeavor that can take five to seven years and reduce a person's lifetime earning potential? The quick answer is that they're not interested in tackling challenges by creating new applications, but rather in tackling challenges related to the very creation of software. They want to test their theories about software and how it is developed. They want to create entirely new infrastructures. In short, they want to be a part of pushing the software development landscape into its next evolution.
In this article about earning a PhD in Software Engineering, we cover:
- What kinds of professionals pursue PhDs in Software Engineering?
- What are the prerequisites for a PhD in Software Engineering?
- Which schools offer software engineering PhDs?
- What do students in doctoral-level software engineering programs study?
- Do students in software engineering PhD programs need to complete a thesis?
- Is a software engineering PhD the same as a computer science PhD?
- When is a PhD in Software Engineering worth it?
What kinds of professionals pursue PhDs in Software Engineering?
Most people who pursue doctoral degrees in software engineering have a specific research area they want to explore. Their career goals typically involve working in research and/or teaching at the university level. They're not thrilled by the idea of going into software development, where programmers often don't choose what kinds of projects they work on or have to meet specific business goals with their software.
That doesn't mean that students who earn PhDs in software engineering don't go on to work in industry settings. However, when they do, they tend to be recruited into upper-level management or senior research positions by companies looking for specific niche-area expertise or someone to lead teams designing new technologies.
What are the prerequisites for a PhD in Software Engineering?
The admissions requirements for PhD in Software Engineering programs vary by school. At the University of California - Irvine, some students in the doctoral-level software engineering program enroll directly out of undergraduate programs in computer science or software engineering. Others have already earned a master's degree in software engineering and amassed several years of professional experience. There are even students in the program whose academic and professional backgrounds aren't in software development.
The very best PhD in Software Engineering programs, however, ask a lot of applicants. They need excellent test scores, recommendations from industry experts, publishing credits or patents, and years of not just professional experience, but professional "wins" that demonstrate their ability to think outside the box.
Which schools offer software engineering PhDs?
There aren't that many PhD in Software Engineering programs in the US. Some of the best can be found at:
Do you need to go to one of the above universities to get the maximum benefit from a doctoral-level degree in software engineering, computer engineering, or a related field? Possibly. One commenter on the DEV boards had this to say about how choice of school can impact a career in software: "In the US, unless [a PhD is] from one of the top 10 universities (Stanford University, MIT, etc.) I don't think it will be a good ROI. The cost is quite high, and what you'll learn is probably going to be a lot less useful to employers than someone who has three-to-five years of real-world job experience. The only reason I see to get this degree would be to have a career in academia."
On the other hand, the adage "It's all about who you know" applies in software development research. Some students choose PhD programs based not on the prestige of a university, but rather on the prestige of the advisors. Working with a notable faculty member can lead to professional opportunities and help you build a broad network that leads to collaborative projects, sponsorships, investors, and placements.
What do students in doctoral-level software engineering programs study?
Every PhD program has a different core curriculum. Even so, students generally take advanced courses in:
- Artificial intelligence and machine learning
- Human computer interface design
- Mining large software system data sets
- Software architecture and design
- Software comprehension and maintenance
- Software re-engineering
- Software requirements, verification, testing, and validation
- The software development process
Beyond the core curriculum, most PhD in Software Engineering programs are designed to be highly customizable so students can pursue their own research. New PhD candidates work closely with a faculty member or graduate advisor to choose an area of specialization (e.g., software architecture, distributed systems, or cyber security), design a class schedule, and eventually, select a dissertation topic. Throughout the program, adjustments can be made as a student's interests evolve, or their research leads them down different avenues of exploration.
Most PhD students spend their time in these programs finding better, more efficient ways to develop large-scale or complicated systems or creating new categories of applications. According to The University of Texas at Dallas, some of the most common PhD research areas in software engineering are:
- Requirements engineering
- Multi-agent systems
- Service-oriented computing
- Software architecture
- Software maintenance
- Static analysis
- Testing and verification
Do students in software engineering PhD programs need to complete a thesis?
Most PhD in Software Engineering programs culminate in a thesis project. Before embarking on this project, students spend two to three years taking core courses, working as a teaching assistant, and doing part-time research. Some programs also require students to complete one or more summer internships. At the end of this period, students are expected to have a well-developed, original thesis concept. They spend the remaining years of the program fleshing out and researching that thesis. When ready, students defend their theses in the same kind of formal dissertation process found in other doctoral programs.
Is a software engineering PhD the same as a computer science PhD?
Most colleges and universities treat software engineering PhD programs as distinct from computer science PhD programs. Still, the line between them isn't as clear as you might imagine. There's significant overlap between these two disciplines, and you may be looking into both of these programs if you're passionate about technology. Some schools even offer combined computer science and engineering doctorates.
In general, however, the PhD in Software Engineering is the better option if you're more interested in designing applications that meet specific needs. If, on the other hand, you find the theories and principles that make computation possible more fascinating than their practical applications, the PhD in Computer Science might be the better choice.
Put simply, software engineering degrees are for people who want to build software, teach others to build software, or find ways to make software better. Computer science degrees are for people who want to explore and expand what computers are capable of.
When Is a PhD in software engineering worth it?
That depends on what your short- and long-term goals look like. A PhD in Software Engineering will only boost your salary as much as an MS in Software Engineering, so if you're looking into advance degrees because you want to earn more money, enrolling in a master's degree program is probably the more sensible option. The same is true if you're researching advanced degree programs because you want to be a more attractive job candidate. A master's degree may actually help you more when you're job hunting than a doctorate, and you'll be qualified to apply for the same high-paying leadership positions whether you have an MS or a PhD.
There are, however, some job titles in software engineering that you can't land without a PhD. These are usually research positions or roles with 'principal' in the title. You'll also need a PhD to work in academic or research positions at colleges and universities, government laboratories, and innovation labs, and in jobs at high-profile companies like Google (which stands out among software companies for having the highest percentage of employees with PhDs). If your career goals involve going down any of those paths, a PhD in Software Engineering is not only worth it, but necessary.
Opportunity aside, however, there's one more reason you might enroll in a doctoral-level software engineering program. As you conduct your own original research in pursuit of a software engineering PhD, you'll gradually become an expert in your field. As one StackExchange commenter put it in a post about what a PhD is good for in software, "You will end up knowing more about some small part of the world than any other person. You will stand in front of three or four people who are experts, sometimes world-renowned experts, and teach them about your work. When you walk in, those experts will be supervisor, examiner, 'bosses' of a sort, and when you walk out they will be your peers. You will learn a lot about one corner of computer science and a lot more about yourself and your capabilities. You will be confident being 'the expert' when required."
Questions or feedback? Email email@example.com