Friday, June 4, 2010

Should I get a Ph.D.?

This post is the fourth episode featuring Prof. Mor Harchol-Balter's talk advising people applying to PhD programs in computer science or related areas.
[first episode - second episode - third episode - full article]

Here are some things to keep in mind when making this decision:
  1. A Ph.D. is not for everyone!
  2. A Ph.D requires 6 years on average. The opportunity cost is high.
  3. Do not even think of applying for a Ph.D. if you have not tried research and/or teaching and found that you like at least one of those. (Note: the Ph.D. program will require mostly research, not teaching, but a love of teaching may help motivate you to get through, so that you can go on to be a teacher. I have seen many examples of this.)
  4. A Ph.D. requires a particular type of personality. You need to be someone who is obsessed with figuring out a problem. You need to have tremendous perseverence and be capable of hard work. You need to be willing to do whatever it takes to solve your problem (e.g., take 5 math classes, learn a whole new area like databases, rewrite the whole kernel, etc.).
  5. You need to know why you want a Ph.D. You need to have vision and ideas and you need to be able to express yourself.
  6. Obviously, many people are still unsure straight after a B.A.. I was one of them, so I understand. For such people working in a research lab or in an industrial lab which involves doing research for a few years will help them decide. If you are unsure, I highly recommend working for a few years before starting a Ph.D.. Do not apply to graduate school until you are sure you know what you want.
Prof. Mor Harchol-Balter's own story:
After I finished my B.A. in CS and Math, I went to work at the Advanced Machine Intelligence Lab at GTE in Massachusetts. At first I was very excited by my paycheck and the great feeling of being independent. I also really enjoyed my area of research at the time: pattern recognition and classification. I was working with frame-of-reference transformations involving eigenvectors of autocorrelation matrices. It was exciting! However I quickly realized that I wanted to know more. I wanted to know why some algorithms produced good results and others didn’t. I wanted to come up with my own algorithms. I worried that I didn’t have enough of a mathematics background to answer my own questions. In summary, I wanted to delve deeper. Everyone around me thought I was odd for wanting these things. I left after 2 years and went to graduate school. That first month of graduate school I looked around and realized that everyone there was just as weird and obsessed as I was, and I knew I had made the right decision.