How I’d do it all over again

Dear Young Tim,

It’s the end of 2020, and what a tempest this year has been! A friend of ours recently asked, “how would you do the PhD again, if you could?”

I like this question. For one, the topic is timely. After all, when better to reflect than at the end of a year? Second, the topic is well-scoped for me, right now. It makes me consider a usefully long yet recent period in my life. Finally, the topic is widely relevant: I think the question of how to be a PhD student is intimately related to another question I frequently receive— how to be(come) a data scientist.

Without further ado, here (at a strategic rather than tactical level) is my answer.

Focus on “how”

Focus on how you do it. What you do is important, of course. But, how you do it is also important, and you frequently overlook this. Be interested in how to do things effectively. How to do them elegantly, efficiently, equitably. Be even more interested in how to avoid doing things (e.g., by enabling others and automating everything).

Move fast and with endurance

Speed is important. It is important to get (correct) results quickly—to learn quickly. It is important to finish unimportant tasks quickly so you can spend time on what and whom you find important.

However, sustained speed is most important. Having the ability to go fast forever is a key dimension of being in great shape. Here, the goal is to make continual, rapid progress. We want to move forward while backsliding as little as possible.

In particular, we want to ensure that as we build new knowledge that we don’t forget things. Memory tests with spaced repetition, e.g. cue-cards or anki questions, are extremely valuable tools for this. Similarly, as we build new software tools (or as operating conditions change), we want to make sure that we don’t break existing code. So far, I’ve had much success using automated software tests to provide first indications of broken code, especially if the tests run fast and cover my entire codebase. Overall, if we don’t forget things and don’t break things while building up our knowledge and tools, then we stand a chance of sustaining our rapid progress over the long-term.

Beyond minimizing backsliding, you should manage your progress so it remains as you desire, in all aspects of life. Measure yourself in terms of how quickly you complete valuable projects. Give yourself more points for speed and more points for greater derived value. Read papers quickly. Know that you can learn quickly by doing so every day, every week, etc.

Put differently, your ability to quickly produce value in your life, for the long run, is paramount. Track, grow, and maintain it.

Be thoughtful and reflective

Hold, set aside time for, and record retrospectives. Constantly recenter what is important and why you are doing what you are doing. Record what had happened and why you made the decisions you made. Reminisce on the fun and successes you had! Learn from the setbacks and failures you had. Record that you learned new things and what they were. Brainstorm how you could do whatever you did, better. And don’t forget, track your growth.

Be inquisitive

Be in the habit of asking and answering lots of relevant and useful questions. Be complete or at least thorough in the questions you ask: who, what, where, when, and why? Do statistical methods research as science, not mathematics. As you conduct this research, remember the causal foundations of applied probability and statistics.

Be rigorous and reproducible

  • Be reproducible.
    Document your entire project workflow, software dependencies, and hardware dependencies.
  • Work transparently.
    I.e., be version controlled, be publicly viewable, and be publicly installable.
    Be open for scrutiny, review and improvement by others.
  • Research with rigor.
    Do simulations to investigate your methods.
    Create and investigate fake data.

Constantly re-orient yourself

When tramping through uncharted territory, frequently re-orient yourself relative to a known point to ensure progress towards your destination. On a standard cadence, re-orient your attention to important problems in your field. Likewise, on a standard cadence, re-orient your attention to how you do your work.

  • Read about how to do great research.
  • Learn about how to learn.
  • Read and watch people speak about how to produce great software.
  • Re-run your unit tests after every change to make sure you haven’t broken anything.
  • Work under and learn from those who are affecting organizational change.

And lastly, make a habit of reading and speaking to people about what they consider important. Do this regularly.

Create usefully

While a subjective choice, I think it’s best to focus on solving problems faced by many people. To be helpful. Even better, to create tools so people can solve their own problems. This is highly appreciated and impactful. Best yet though, is to build solutions that ensure problems don’t arise in the first place.

Practice continually

If something is worth doing, then do it regularly. For instance, maintain a blog during grad school. Blog frequently, as in every week–driven by daily writings. Again, document your learning.

In short, practice your crafts!
Write every day: you are an author.
Code every day: you are a software designer, architect, and engineer.
Do statistics every day: you are a statistician.
Read every day: you are a consumer of research.
Plan every day: you are a planner.
Learn every day: you are a student.
Build every day: you are a creator.

If these don’t sound like you now, that’s fine. Fake it till you make it.
After all, you are what you repeatedly do.

Stay healthy

Last, but not least: take care of yourself. You cannot go fast forever if you do not last forever. So sleep well. Eat well. Exercise well. Meditate well.