This page collects resources and personal advice for students doing research with me. Much of it applies broadly to graduate study in computer science and machine learning.
Core Skills
- Learn UNIX. Master the command line and standard utilities so you can automate tasks and work efficiently. GUIs and IDEs are great, but many research workflows are faster in the shell.
- Use a powerful editor. Vim, Emacs, and modern editors like Sublime or VS Code all work—as long as you can navigate quickly, automate repetitive edits, and stay productive.
- Script everything. Bash and tools such as Python make it easy to reproduce experiments, manipulate data, and document your process. Accept command-line arguments and version scripts alongside your code.
- Track your work. Use version control for code, writing, and experimental results. Keep off-site backups. Losing results to a disk failure is avoidable.
Writing Matters
Academic life involves a lot of writing. Clear communication often determines whether a paper is accepted. Practice regularly, read good writing, and seek feedback.
- Master grammar and punctuation. Use reference guides and ask for help where needed.
- Learn LaTeX. It is the standard for technical writing in our field.
- Follow community conventions. Understand the notation, terminology, and rhetorical patterns used in your research area.
- Write clearly. Structure arguments for readability, keep sentences focused, and use examples generously. Clarity improves with practice.
Recommended Reading and Viewing
- UNIX for Poets — Ken Church
- Principles of Research Code — Charles Sutton
- Patterns for Research in Machine Learning — Ali Eslami
- You and Your Research — Richard Hamming
- How to Write a Great Research Paper — Simon Peyton Jones
- Research and Writing Slides — Philip Wadler
Thriving in Graduate School
- Modest Advice for New Graduate Students — Dorsa Amir. A thoughtful overview; not every tip applies to everyone, but it is a solid starting point.
Ultimately, your growth as a researcher is your responsibility. Seek feedback, iterate quickly, and invest in the skills that help you build reliable, insightful systems.