Why a PhD In Any Subject Can Be Very Valuable in Software Engineering

6 transferable skills that are valuable in software engineering — even if your PhD is not in computer science

Matilde Aliffi
ILLUMINATION
5 min readMay 20, 2022

--

Skills written on a notebook
Image by Author

I decided to do a PhD in philosophy because I wanted to learn more about emotions and rationality. I found exciting the prospect of becoming an expert in this topic, and potentially being able to contribute to the field. However, during the last year of PhD, I explored different career options beyond academia. I enrolled in an Introduction to Web Development course and fell in love with programming. And the day after I submitted my final version of the doctoral thesis, I started to work as a software engineer. At the time, the decision to change career path so drastically seemed quite a leap in the dark. I didn’t know what to expect. And I was afraid to waste the skills I developed during the doctorate. However, I am really amazed at how much the transferable skills acquired while doing a Ph.D. prepared me and are still helping me to grow as an engineer. I now want to inspire other researchers who are looking for a non-academic career to explore software engineering — even if they do not have a formal background in coding.

Enrolling in a doctorate programme is not just an opportunity to become an expert in a given subject area, but also to become a well-rounded researcher. Writing the thesis is only one of the activities a Ph.D. student usually does. A doctoral researcher may — among other things — be involved with teaching, presenting papers and posters at conferences, submitting papers to journals, organizing events, writing, editing research-related blog posts, reviewing papers and conference submissions, interviewing world-leading experts, engaging with outreach initiatives. These are very formative experiences as they allow researchers to acquire skills in different domains (see, for instance, the VITAE research framework). And, it turns out, working as a software engineer gives the opportunity to put some of these skills into practice again — this time in a different context. Here there is a list of some key skills of well-rounded researchers that can be helpful in the software sector.

1. Research skills

The key ingredients of good research are a well-framed problem, a good understanding of the research context, and a sharp focus. Throughout the course of their Ph.D., students have the opportunity to improve their research skills, getting feedback from their supervisors and other researchers. This is valid also for programmers. Before starting to code, experienced software engineers ensure to understand the problem well, they need to know the context in which the problem arises and keep the attention focused on the research — avoiding rabbit holes.

2. Continuous learning

While doing a Ph.D., researchers need to be aware of the state-of-the-art in their domain of expertise. The field of research is usually constantly evolving and it is important to be up-to-date with the latest developments. This holds also for programmers. Technologies evolve very quickly and it is very important to keep updated on the latest developments and best practices. The 2020 HackerRank report shows that 60% of full-stack developers surveyed had to learn a completely new framework during the previous year. Regardless of the career level, learning something new will always be part of a programmer's job.

3. Teaching and mentoring

Often, Ph.D. students have the possibility to work as part-time teaching assistants or mentors. Being involved in teaching is great for developing empathy, and is also a perfect experience for practicing explaining complex concepts in a clear and accessible way. These are skills extremely valuable in the software sector. Software engineers are expected to transfer their knowledge to their peers. They need to document their work. And as they progress with their careers, they will be encouraged to be more involved with teaching and mentoring less experienced engineers.

4. Writing skills

Ph.D. students write regularly. They produce original content. And at the end of their doctorate, they deliver a thesis — which will be read, reviewed, and discussed in their final examination (viva). They learn to write clearly and logically. Programmers, too, write regularly. Besides writing code, they need to write documentation and reports. They need to communicate their changes to the stakeholders. Good writing skills will come in handy.

5. Public speaking

Doctoral researchers have often the opportunity to speak in public, presenting their work at conferences and in other contexts. Programmers do also need to present their work — often in internal meetings with product owners, their customers, and other professionals who may or may not have a technical background. And they may also present their work at conferences or in local developer communities. Previous experience with applying for conferences, and delivering talks in different contexts help.

6. Time-management

Ph.D. students need to manage their own research projects. They have a limited time to deliver their thesis, and they often work under tight deadlines. They learn to set SMART goals, set timelines, and track progress. This is important for programmers as well. Programmers will need to set goals and objectives for themselves and for their team. They need to prioritise their work and offer realistic time estimates about work delivery.

It might be objected that — after all — these skills are not core to software engineers — as coding skills are what makes someone a good engineer. I do not want to deny that the ability to write good quality code is crucial for being a good software engineer. However, good engineers have a skill-set that is way broader than their coding skills. The career development framework for software engineers at CircleCi, for instance, states that technical skills make up only 20% of competencies that they expect engineers to develop. Well-rounded researchers who lack a computer science background but are willing to change their career and learn to code could nonetheless discover that their previously acquired skills will be extremely useful.

And finally, a reminder for all PhDs: having a Ph.D., by itself, does not make you a great engineer. Your skills do. Doing a doctorate can be helpful for acquiring some of the soft skills that help programmers to thrive in this profession — but it is not the only way to develop these skills. In any case, if you do have a Ph.D. in a non-computer science degree and you want to move to the software sector, the skills you mastered in your studies will not go to waste.

--

--

Matilde Aliffi
ILLUMINATION

Philosopher turned software engineer. Avid Learner. Passionate about Rationality, DevOps and Cloud Architecture. PhD on the rationality of emotions.