Being a stellar undergrad researcher
How to make the professor and PhD students want to keep doing research with you
Let’s say you got into a research lab as an undergraduate researcher. Great! Now what?
If your goal is to continue on to graduate school, it’s important that you do good work in the lab and set a good impression on your research mentor (a graduate student or post-doc researcher) and the PI. Keep reading below for tips on being a stellar undergraduate research mentee.
How to be a stellar research mentee
After having advised undergraduate researchers myself, I found that there are some things that all good mentees do. Here are some of my tips for being a good undergraduate researcher:
- Doing excellent research involves careful ideation, efficient execution of ideas, thorough experimentation, effective collaboration with others, and convincing communication of results. As an undergraduate researcher, you should first focus on good execution and experimentation. You will improve at the other things over time, but good execution and experimentation you can do right from the get-go, and research mentors like to see that their mentees can implement new approaches and design and carry out careful experiments that assess the strengths and weaknesses of the methods. To execute and experiment well:
- Document your code. Write comments and docstrings for each function to make it very clear what it does. Use sensible variable names and minimize any hard-coding. Organize your code into different modules to keep it neat and make it easier to find stuff. If you need to explain the overall structure of the code in more detail, use the README or a Google Doc to write it all out. In the README, explain how to run the code, writing out the commands and the appropriate command-line arguments. Anyone who is new to the codebase should be able to quickly understand the overall structure of the code, know how to run it, and understand what each script and function is doing.
- Write clean code. If you don’t know what this means, Google “software engineering best practices” and “how to write clean code” and take note of the general principles.
- Log all of your experiments, e.g., in a Google Doc. Write the date that you did the experiment, the purpose, the command you ran (so that you can reproduce it later), and the results. Also consider adding details on the exact training/validation set if you are training machine learning models. If you find any unexpected results, log those as well and give a hypothesis about why the results are the way they are, even if you have to guess. Log training curves for machine learning projects if you think they are insightful.
- Don’t waste your time implementing things or running experiments that your mentor/advisor didn’t ask for, especially if they recommended higher-priority ones. Time is finite, so use it wisely.
- Don’t waste your time being stuck for more than 30 minutes. If you don’t know how to implement something, ask your mentor or a labmate for help.
- If you need to catch up and quickly learn more about your field of research, ask for a few key papers and/or blogs from your mentor. Skim over the papers and try to grasp the main points. Read the abstract, introduction, figures, and conclusion in the first pass, and then go deeper in the second pass.
- In general, work hard on your assigned project, even if the project is difficult and you don’t expect it to lead to a publication. The onus is on your mentor to get the paper submitted and published eventually; your job is to help your mentor’s ideas become reality by implementing them and performing experiments to validate their effectiveness. If you do a great job implementing things and running experiments but find out that your mentor’s proposals are not good, that’s fine. You did your part. In addition, if all your hard work doesn’t lead to a publication, that’s also fine. Hopefully the PI of your lab noticed your efforts regardless (and if not, try to communicate the hard work you’ve been doing, for example via regular updates!). Research can be hard and time-intensive. Don’t give up!