This post is long overdue and marks the start of a series of blog posts about my journey through earning a Ph.D. in Computer Science.
On August 15, 2012, I moved to the United States of America to accept an offer of admission to a Computer Science Ph.D. program. The decision to pursue a Ph.D. in Computer Science marked the beginning of an arduous five and a half year journey of self-discovery and personal development. I eventually graduated in December 2017 and it has taken me a few years to settle into life outside of graduate school. 8 peer-reviewed publications, 7 patents, and 4 full-time software engineering jobs later, I now have enough mental clarity to reflect on my time in graduate school and share what I wish I knew at the start of the Ph.D. journey.
Please note that the lessons shared in this post are colored by my particular experience in a Software Engineering-focused research area and at a specific university in the United States. Some of the things mentioned in this post may not apply to all countries, fields of study, and across all universities. Now, without further ado, here are 17 lessons learned in retrospect and things I wish I knew when I started the Ph.D. journey.
- It takes a village to earn a Ph.D.
- Choose your advisor(s) wisely and carefully.
- Be mindful of academic politics.
- Avoid resource-intensive research areas.
- Software development skill matters much less than you think.
- Experiment design skill is more valuable than you think.
- Write often and publish early.
- You don’t write as well as you think.
- Grades matter less than you think.
- Stay funded.
- There is an alarming disconnect between academia and industry practice.
- Teaching is difficult but sometimes rewarding.
- The non-research career opportunity cost is real and often incredibly high.
- Squash impostor syndrome often and early.
- Professors are human too.
- There are potential immigration advantages.
- Do not get a Ph.D. 😊
In subsequent posts, I will elaborate on each of these lessons. Each person’s experience in a Computer Science Ph.D. program is unique, and one person’s experience is not necessarily a reliable predictor of another’s. Having said that, I hope that my experience and perspective on these topics helps people who may be considering a foray into the Ph.D. grind.