A guide for computer science PhDs#

Pursuing a PhD is a noble but arduous endeavor. Many students, myself included, enter their PhD programs without a clear sense of what will be demanded of them over the next five or more years. Academia’s many opaque rules and high expectations contribute to students’ insecurity, frustration, and disillusionment with their work. In part, these issues stem from students’ unmet needs to know what to expect, situate their experiences in the broader arc of their progress, and learn the processes and workflows that support a productive PhD.

Throughout my six PhD and postdoc years, I kept a list of every practice and insight about the PhD experience that was new to me but considered common knowledge by more senior academics. This guide is the distillation of those observations into a comprehensive roadmap of the (computer science) PhD experience. Its chapters reflect the cohorts of PhD studentship and their goals:

  • Prospective students, who are discerning whether to pursue a PhD.

  • New students, who are getting oriented in their new academic environment and establishing relationships and tools to support them moving forward.

  • Junior students, who are honing the skills of independent ideation, argument, and communication.

  • Senior students, who are pursuing purpose beyond their PhD program.

This guide is primarily aimed toward PhD students in computer science (and possibly mathematics). Some content—especially those around research skills and technical writing—may extend to other STEM PhDs as well. It would be interesting to see a humanities version of this guide one day; though some workflows presented here (e.g., for time and project management or automated document formatting) might translate with little effort.

How to read this guide#

This guide is designed to be read either in full (“serially”) or by topic or PhD cohort (“random access”) depending on the reader’s needs. Each chapter starts with a brief overview that can be read in lieu of the full chapter for its key takeaways. For example, prospective or new students may benefit most from a complete reading of the introduction and their respective cohort chapters while only skimming the other chapters’ overviews. Junior and senior students may prefer to focus on the workflows specific to their current work, referring occasionally to the in-depth technical tutorials if relevant. Use the index for quick reference to key terms.

How to cite this guide#

This page’s link (https://jdaymude.github.io/phd101) is stable. If for whatever reason a formal citation is needed, use the following.

@misc{Daymude2022-phd101,
  title = {PHD 101: A guide for computer science PhDs},
  author = {Daymude, Joshua J.},
  year = 2022,
  note = {Accessed <Month> <DD>, <YYYY>, \url{https://jdaymude.github.io/phd101/}}
}

About the author#

I am Joshua J. Daymude, an assistant professor of computer science at Arizona State University. I research complex systems and emergent phenomena through the lens of distributed computing theory, mathematical modeling, and large-scale simulation. I wrote this guide to clarify my own workflows and philosophies on supervising PhD students. My hope is that it will help future PhD students (and their faculty advisors) avoid unnecessary frustration and flourish in and beyond their PhD training.