My Advice To My Graduate Students

My advice to you has 4 parts: Publish or perish, Work hard, Understand the philosophy of research, and Manage your time well. (A nice complement to this post is my advice to my undergraduate students.)


Be goal-oriented

Always know the criteria needed for the next step, and focus on addressing these criteria.

Your next step after PhD is, ideally, to get a faculty job. And this requires you to have both good quality and quantity of publications. Aim to have 10 publications, half of them at top conferences.

So publish or perish. 4.0 GPA is not your goal. Taking a lot of classes is not your goal.

Get your first paper out very fast

This will give you the confidence to write other papers. This will teach you that research is not an exotic thing that only professors do. This will shave off couple of years from your PhD. Your first paper does not need to be very good. Get it out fast.

Write well, write a lot, revise a lot

Writing clearly and communicating your work in an accessible manner to others is as important as doing the work. I will say it: if solving the problem takes 50% of your effort, the other 50% effort should be on writing it clearly.

Writing is nature's way of letting you know how sloppy your thinking is. Writing enables you to analyze your work, make sense of your work, see the big picture, and find several new ideas along the way.

You can be a very good writer by refining/rewriting several times and by following simple rules.

Keep a research notebook and write a lot

Since writing is very important, you should keep a research notebook/folder accessible to you at any time, and note down every idea/insight you get.

I cannot emphasize the importance of writing enough.

When you are working on a project, start writing as early as possible. This will help steer the research/work you are doing. Write down every failure, problem, and solution idea. Use these material to write a research note or technical report as you go along. It should be such that when the research is done, the writing (first draft at least) is also done.

Revisit your research ideas folder periodically to see if there is anything worth pursuing there. You will be pleasantly surprised, if you are doing it right.


Be proactive, take initiatives

Graduate school is very different than undergraduate years. It is unstructured. There is no spoon-feeding. So you should be proactive and take initiatives to get your research going. My job is to facilitate things and act as an advisor (hence my title as "Advisor"). Your job is to get things done and drive the work. You are the locomotive of research.

Don't get stuck, try different things. Progress is more important than perfection. I won't be upset if you are making mistakes; actually making mistakes means you are working, and I will be happy.

I will be upset if you are stuck and are not trying anything, but instead trying to come up with excuses.

Make mistakes

Being a perfectionist does not payoff. Actually, perfection comes from iteration. You start with a rough draft (which is by definition imperfect), and refine and refine.

Trying to be perfect and get it right the first time gets you stuck.

Rejection is part of the deal. It is nothing to worry about or be ashamed about. If you get rejected, you at least got good feedback. Revise your work, and submit to the next good conference.

Don't take pride of how smart you are

Being smart does not matter, working hard does. So don't take pride of how smart you are. Don't get your ego in the way, otherwise you won't be able to question everything. Stay hungry, stay foolish.

Pedagogues tell us that it is wrong to praise children as being smart. This leads to them being very defensive, and not attempting to solve hard problems: because if they fail, they will be exposed as being "not smart". The right way to praise children is for how hardworking, persistent they are. These children then won't be afraid to take on hard problems.
Nothing in this world can take the place of persistence. Talent will not; nothing is more common than unsuccessful people with talent. Genius will not; unrewarded genius is almost a proverb. Education will not; the world is full of educated derelicts. Persistence and determination alone are omnipotent.
Calvin Coolidge
Being smart is a gift to you, the important thing is what you make of it. Be humble. Your duty is to work hard; the results will follow.

Work persistently

Understand the effort versus payback graph. At the start, although you are putting a lot of effort, no commensurate visible output occurs. This is because you haven't accumulated enough critical mass yet to leverage upon. So initially it requires a lot of effort to get a paper out, say 12 months. But after you pass an activation threshold, you start to get accelerated returns. You have built "critical mass" and gained momentum. Now it requires less effort to get a paper out, say 3 months.

PhD is a marathon. Don't get burned out in the first couple of miles. Manage your expectations, and psychological stamina well. Form a reading/support group with your friends. Don't hesitate to seek advice and counseling.


Find the "right" research problem

Research is all about finding the right problem. Once you find the right problem, solving it is easy.

Finding the right problem is an art. Initially, I will supply the problems to you. Later on you should be able to find the right problems yourself. This will be possible through acquiring a "taste for problems" through reading a lot of good papers and writing research notes.

The right problem has two components: you and the problem. Here are my heuristics for guiding myself to find the right problem.
  1. work on what only you can do: leverage on your strengths (see the discussion on toolset below)
  2. work on what you love: you have to be passionate about your work
  3. work on use-inspired problems: this is a precondition to do useful work
  4. work on the most important problems in your domain: address the fundamental/inherent problems, not the accidental problems.
The right problem is not very hard ---in which case you would be stuck for years. The right problem is at the boundary of your limits. You strain to solve the problem, but you know it is solvable.

A very nice reference at this point is to read the "Your research and You" by Richard Hamming.

Use your toolset to attack domain problems

I will explain this with an example. My toolset is distributed systems theory/algorithms, formal methods, and fault-tolerance (self-stabilization) techniques. The toolset is important for solving problems efficiently, and in a manner only you can do.

The domain on the other hand is important for identifying useful problems to attack with your toolset. The domains I work on are sensor/actor networks, crowdsourced sensing/collaboration via smartphones, and distributed/networked systems (data center computing, these days).


Kill distraction 

Good work requires intense focus. A minor distraction will divert your focus, and you may need a long time to recover back to the same level of concentration.

So kill your browser. Use it in batch-mode only when you really need to. Don't have your email open in your browser, that may lead to checking email every 15-20 minutes killing your quality time. Check email only couple times a day.

Success = time * focus. Time Focused time is very precious. Go to the library work for an undistracted 2-3 hours if you want to get quality work done. This is absolutely critical.


iokevins said…
I found this succinct and informative. Thank you.
ranjan said…
its informative for every graduates
Kien T. Tran said…
Great advice for incoming grad students! Thank you
Tianyi Liu said…
I should read this post every week.

Popular posts from this blog

Foundational distributed systems papers

Graviton2 and Graviton3

Your attitude determines your success

Progress beats perfect

Cores that don't count

Learning about distributed systems: where to start?

Silent data corruptions at scale

Read papers, Not too much, Mostly foundational ones

Sundial: Fault-tolerant Clock Synchronization for Datacenters

What’s Really New with NewSQL?