There’s a lot of research advice out there, but not much focused specifically on undergrads. So here I’ve tried outlining undergrad-focused tips.

  1. Consider trying other options (e.g. software internship) first. Some types of research will require more advanced knowledge that you probably won’t have yet as, say, a freshman, so try other options earlier. I would especially recommend becoming fast and effective at coding, so that isn’t a bottleneck in your research later.

  2. How do you get research? Just ask. This is something that is far simpler than people think. You literally just ask people. Email professors or grad students whose research you think is interesting and tell them you’d like to get involved. Sending an email takes a max of 5 minutes, so why not just try?

  3. Be selective in the research you choose. Because people think it’s harder to find research opportunities than it actually is (#2) they tend to be more afraid to reject research opportunities than they should be. Here are some criteria for picking research:
    1. Pick research you find interesting. You won’t do well if you don’t find it interesting.
    2. Pick research that helps you figure out whether you like research. You will not apriori know whether or not you like research. You should have a loose theory of why you think you might like doing research and seek out experiences that help evaluate your theory. For example, if like me, you think a big component of why you would like research is having autonomy, then don’t do research where you’re always told exactly what to do. This is another reason you should not do research you’re not interested in (3a). If you do research on a topic you know you’re not interested in, then when you find out that (unsurprisingly) you didn’t like the research, you can’t tell if it’s because of general aspects of research or because you found the topic boring.
    3. Pick a mentor that communicates well and cares about your research growth. You won’t know anything when you start (even if you think you do) and having a mentor you work well with is essential to your success. You also ultimately want to become a good researcher, so pick someone who cares about your research growth and will spend time teaching you about the field and how to do research. Don’t pick e.g. a grad student who just wants you to code something they didn’t want to do themselves.
    4. Pick research that will become publication quality. If you eventually want to go to grad school, it’s important to publish. If a project looks like something no one but your mentor cares about, you may want to avoid it.
  4. Time management is the #1 reason you will not make progress. If you put less than ten hours in per week, it’s unlikely you’ll make any progress in research. As an undergrad, it can be easy to fall into the trap of putting off research because you have a wave of midterms or something, but you need to make time. A generic recommendation is spending ~15 hours a week on research. I probably spent more like 20-30 hours. Also consider spending a summer doing research, you can get a lot more done when research is your only focus.

  5. To get into grad school prioritize (publishable) research over classes. Grad school is very competitive. For example, only ~3% of applicants get into the top AI/ML programs and this is only going to get worse in the future. Whenever you have a situation where only the top x% (where x is small) get a prize and everyone else gets nothing, you should focus on the important and high variance properties that distinguish you from the rest. In this case, what you should not focus on is your grades. Everyone gets high grades, so it’s low variance and not useful in picking who gets admitted. What actually provides information to distinguish people is their research. The problem is you can’t get bad grades (<A) either because that’s a red flag. So the trick here is to take fewer classes and use your extra time to do more research.