“CEOs are supposed to have class. I can see that isn't an opinion you hold.”
-- Steve Jobs to Michael Dell (1997)
We hold these truths to be self-evident, that all students/postdocs are entitled to a good education and quality training in research skills.
- Elegance is the top priority in our group and can summarize all points below. Taste is often more important than productivity: if a student acquires a bad taste, it's very difficult to unlearn it, and the more productive s/he is, the more tasteless his/her work will be. :)
- Windows operating system is stricly forbidden. A serious computer science student should use a mac laptop and a Linux desktop. Coding, debugging, and experimentation should be carried on Linux only.
- M$FT software is largely forbidden (even on macs). Office (esp. Word, the 3rd-worst software ever written) is bad on Windows (except for Powerpoint) but much worse on macs. I always got depressed when I had to use Word. So:
- Always use LaTeX instead of Word for papers. It will make your papers look so much prettier and consistent. You have to take the pain to learn to be an expert in LaTeX. If a paper is typeset in Word, my first impression will be "the authors aren't that serious" (so I shouldn't be that serious in reviewing it also!).
- Always use Keynote (plus LaTeXiT) instead of Powerpoint for slides. It will make your slides so much more elegant. Do not call our slides "PPTs" since we don't use it. For teaching, export Keynote to PDF, skipping animations. LaTeX/beamer sides are OK only for very formal talks (e.g., programming languages) and I think in general, Keynote+LaTeXiT is still better even for theoretical talks. Talks are supposed to be all about intuitions and visualizations, rather than formulations, after all. But I agree that Keynote w/o linkback (which enabled in-place editing of equations) really sucks, esp. when you need to teach some Mathy topics; Apple should fix this! (see for example how Mehryar Mohri's teaching slides were made via Keynote+LaTeXiT -- they're so beautiful but required way too much time and are not very editable. See also Alex Smola's slides for the same topic; he even released the Keynote files (you can even edit his equations via LaTeXiT, though not in-place) which I used for my class. Thanks a lot Alex!).
- Use googledoc spreadsheet instead of Excel. It's so much faster to open and sharable.
- (from Andrew) use Pages as the default app for Word files on mac. It's so much faster to open and has so much less bugs.
- All paper submissions should get a "clarity" score of 4 or 5 -- I have maintained this since 2007.
- All papers have to go through at least 30 revisions before submission and 50 after acceptance.
- Teaching practicum is an extremely important part of the PhD education. Every student should TA at least twice and teach at least one real course.
- In a reading group, we only read the best papers (defined as either those award winners or highly cited ones), and the presenter should always use the authors' original slides annotated with the presenter's comments.
- Breadth is more important than depth in the first two or three years of the PhD process. Every student needs to take demanding classes outside of his/her own area.
- I expect everybody in my group to have a genuine interest in languages and linguistics, and encourage students to take at least one linguistics course (esp. semantics and phonetics). Language (and its recursion), after all, is the defining feature of human-being. Language processing is AI-Complete and its holy grail.
- I expect everybody in my group, even including visiting students and professors, to be solid programmers and good mathematicians.
- Programming should be done in Python by default, while OCaml/Haskell is also encouraged (each student should be fluent in least one functional language). But C++, Perl, or Java is strictly forbidden because we aim for elegance and readability rather than quick-and-dirtiness or verbosity. That being said, each student should be able to read and hack existing C++/Perl/Java code (e.g. somebody else's parser).
- The major goals of a PhD study should include, in decreasing order of importance:
- Make sure the student receives enough preparation s/he would need for a brighter future and a successful career after graduation. If a PhD graduate (after 5-6 years of tedious study) cannot even find a good job with interesting work and a minimum salary (130k/year in industry or 100k/year in academia), it is largely the advisor's fault. There is an old Chinese saying that "mei2 you3 gong1lao2, ye3 you3 ku3lao2; mei2 you3 ku3lao2, ye3 you3 pi2lao2", meaning if you look at a PhD student's work for 5-6 years, even if there were little contribution, there should have been hard work, or even if there were little hard work, there must have been fatigue. :) Advisors should treat PhD students as students who need to learn, rather than treating them as employees who need to produce, esp. in the first two years.
- The student acquires the most valuable thing in the PhD process: patience and perseverance. S/he realizes how hard research is: nothing is going to work before you tried at least 100 times, and still isn't going to work if you try 101 times, but if you make sure you're on the right track, something will eventually work, and that something might be quite different from but almost always more interesting than your original goal.
- The student is well-trained in technical communication skills: writing, presentation, and teaching. S/he has taken at least one writing/speaking seminar, and has taught at least one real course. The advisor should also help non-native speaking students improve their English.
- The student learns *how* to do research, including how to find or propose a problem, survey the literature, formulate ideas, conduct experiments, and write/present them to various audiences.
- The student interns at least twice with top-class research labs or groups in other universities. Do *not* do an engineering intern, or with a non-top lab, which is harmful on your CV.
- The student should be well-connected in the community after 3 years of study, by attending conferences and giving seminars in other universities. It is the advisor's responsibility to introduce the student to those smartest minds in the field (e.g. dchiang, gildea, graehl, jason, mjohnson, mjn, satta, yoavg, etc.), so that the student would have an opportunity to collaborate with them during or after the PhD study. The student, however, is personally responsible for introducing his/her own work to many other people in conferences.
- The student has taken many relevant courses in and outside of his/her own area, greatly broadening the vision. Taking classes from good professors also helps the student learn to teach.
- The student does some truly *independent* research without the advisor's influence, which may or may not succeed. This is the only way to check whether the student has grown fully independent and really to go. Ideally, the student should have at least one (1) single-author paper in his/her job application (it would help a lot for academic jobs and it does *not* need to be a good one! it's just a great practice).
- The student publishes 2 quality papers in top conferences/journals.
Note: points 1--3 are much more important than 4--9, because even if the student chooses to abandon research altogether after graduation, s/he would still benefit tremendously from the skills and lessons learned in 1--3. Point 9 is the least important: the point of the PhD is to train you *how* to do research, rather than the "doing" itself, though you get to learn it largely by doing (but also by other things like courses and teaching). It is more important that you're better prepared for future publications, because it is all about the "potential". If you want, you could devote the rest of your life to publishing, so why rush during your PhD then? :P John Hopcroft got tenured after the publication of his second paper. Well I know it was in the old days but still we should have a classical mindset rather than aiming for short-term and low-impact goals.
- People is always more important than research projects. Choosing the right advisor in terms of research style and personality is more important than what projects he is doing right now. Projects change all the time, people don't. If there is a conflict between a person and a project, always care for the person.