It's been a long time since I posted a blog. Actually, I was working on a blog about Foundation models for RL, though after some mental block I put it on the side. And then life happened for a year lol.

Within the year, I gained various life experiences, though one of the more non-private ones I'm comfortable sharing to strangers on the internet (besides my Goodreads book list!) is my undergraduate research experience.

This book is god-tier.

I think that I've had decent exposure to research throughout my undergrad career, and I often get asked by friends and peers about how to start research.

Hence, I'll briefly talk about:

✬ My current experiences so far ✬

>> So, to first summarize my experience:

I first started in my second semester of my freshman year, joining the only robotics+ai lab in my university. During december, a few months prior to joining this lab, I actually applied to varous SWE and research internships, and fortunately got accepted into a research program at a different university (similar to an REU), to which I worked in said lab for a year. This summer, I'm also working in a lab at a different university, getting accepted through an REU. All three labs are robotics+ai labs.

>> What are the differences between the labs?

I'd say the first difference is between the problems being solved. It should be a prerequesite to work on a topic that one's interested in. Thankfully, all labs do RL+robots (which is all I do), so I've had a good journey. There are other, perhaps more minute differences - though, I think these can add up. For example, the sizes of the labs are important. The bigger the lab, generally the less time one has with their advisor (especially as an undergrad). Diversity can play a key role too; robotics+ai is a generally white/asian male dominated field, so people who don't identify in such demographics may feel intimated + pressure when in such an environment. A more niche difference can be the frequency to which labs have get-togethers. Overall, it's clear that labs can have many tiny differences that greatly impact one's perception of their time there.

>> My contributions

I've had two co-author papers published in top conferences, and so, in terms of computer science, I'd like to say that I have a lot more experience than the average cs undergrad. That being said, the field of research is wide, and there are tons of undergrads who have many more accomplishments than I do, with perhaps a lot more impactful research. I know that many people don't plan to start research because they are interested in it, and I think that's perfectly reasonable! Me personally, I definitely didn't start solely because I had interest - I also wanted to fill up my blank resume (lol).

✬ Advice on how to get your first research experience ✬

I think the key takeaway, is that getting the first start requires a lot of luck.

If you have some connection, then I advise you to use it to contact professors' who's work you're interested in. Otherwise, getting the opportunity to work with one (assuming that you're resume is essentially blank) is luck-based. The most conventional route is to take a professor's course, and then (probably after performing well) contacting the professor that you'd like to work with them. Most people probably take this route as the prof can witness first-hand whether you're a capable student.

In my case, it was different, however. I was only a second-semester freshman, so I've only taken 2 cs courses - both of which were introductory cs courses so I couldn't see any research potential. I had some interest in RL (after watching the AlphaGo documentary and working on a project to self-teach Deep RL), so I wanted to work in such field. Unfortunately, all the profs who worked in such only taught upper-level courses - junior/senior level - so I wouldn't be able to go down the traditional route of performing well in their class until I too became a junior/senior. So, I did the next best option: cold emailing.

>> How do I cold email professors?

This ^ is probably what I get asked by most of my friends and peers. Honestly, I can't give you an answer that works all the time, though, I pretty much follow this paraphrased piece of advice that I got from reading some book that was about some guy who won a million dollars on a game show and then used that achievement to kick-start his career or something. I don't remember the title of the book unfortunately, and neither do I remember much of the content; however, I do recall sticking a post-it on the exact page detailing advice for cold emailing anyone:

  1. Address that your recipient is busy
  2. Introduce yourself briefly
  3. Explain the reason why you're contacting your recipient
  4. Give any context
  5. Ask any questions if you have
  6. Thank your recipient for taking the time
  7. Attach resume (try to list anything relevant to their field, e.g. personal projects)

An example template would be:

Dear [recipient name],

I understand that you're busy and so I'll make this email quick.

My name is [your name], and I'm [details about myself]. I'm contacting you today because [reason why].

I read your papers [insert a few papers by them] and found [x] fascinating. I especially liked [y] and how [z]. I also wanted to ask, [question]?

Thank you again for taking your time to read this email. If there's a position available for me, please let me know!

Sincerely,
[your name]

Generally, I've followed this pattern to contact professors and anybody alike. It has a decent response rate - maybe relatively shy of 50%. I would say another (perhaps crucial) piece of advice I'd give to my American audience is that in American culture, one may need to sound enthusiastic when writing emails. In the template ^ above, You can see how I add exclamation points and overtly explain my thought process. The reason behind this is that emails tend to be super formal, so by adding such tokens, we aim to send a more friendly, less ego-sounding message to our recipients. This point isn't necessary, though I do agree that it works in welcoming more friendly messages and replies.

Though, this type of research would take place probably during the semester, and is generally unpaid - undergrads would be equivalent to volunteers. If you are fortunate enough to take this path, then I'd hugely recommend you to try this out. It is the case, often times, that one cannot perform unpaid labor (due to various reasons), so in that case, you can try to ask your advisor for funding. I'd say that 99% of the time, undergrads would not receive such funding; however, that changes when participating in REUs.

✬ Advice on REUs ✬

First, for context, REUs are research experiences for undergraduates, i.e., research programs at universities, funded by the National Science Foundation (NSF). They are generally programs sponsored to extend outreach of research in undergrads, giving opportunities for undergrads to perform research with external universities. An important feature is that a student need not be in that university to participate in an REU there; hence why, even though I'm a student at SUNY Binghamton, I participate in programs at NYU and USC. Oh, and to search up for available REUs, you can go to the NSF REU website, though I found that often times, there exist REUs not listed there, so I'd recommend just searching on your browser: "[university name] [topic] REU" (e.g. USC robotics REU).

Back to the topic of funding, REUs pay undergrads a stipend, and generally also cover housing and food (albeit you are living on university dorms and dining hall food in which quality may vary from place to place). This stipend is usually around $5k-$8k, probably dependent on the minimum wage of the state at which the program is taking place, and also on the number of students the REU plans to host (though, this is just my guess). Critically, REUs generally host only around 10 (that's right, TEN) students per program, thus, the application process is pretty competitive at some programs where perhaps 500 students apply. You can expect such high applicant count at the most prestigious schools and programs that boast high impact research.

>> What are on REU applications?

Generally, a university will host a certain number of projects, say 5-10, that students rank in order of preference. There exist a few programs that match students to professors, but I'd say that these programs heavily rely on luck as some professors may not be available during the summer and you just don't know until you get rejected.

Besides stating which project you want to work on, you'll most likely provide background information, at least one personal statement, a resume/CV, transcript, and at least one recommendation letter. Depending on the program, you may provide such information on a Google Form, or maybe the NSF ETAP website.

I'd say that the only advice I can really give is for the personal statement(s). I think it's trivial that you should aim to perform well on your courses, get a good rec letter (from a previous advisor, boss, professor, or any credible person that can comment on your work-ethic and skills in an in-depth, personal manner), and write a concise, pretty resume (you can look at my resume on this site; I use LaTeX, not Word nor Docs).

>> Advice for Personal statement(s)

In my personal experience, you will definitely not write a good personal statement the first-time-round. Looking back at my personal statement I submitted 2+ years ago (Dec 2021) comparing to now (Feb 2024), holy __. My old one looks like a joke almost. Again, I'd like to admit that I was fortunate enough to still be accepted with that personal statement and a relatively lackluster resume.

That being said, it's an unfair comparison - one is a personal statement written by me with no experience, and the other is a personal statement written by me with 2-3 years of experience. So, I believe it'd be best for me to tell you what NOT to do (what I did previously), and what to do instead (what I did now).

Easily, the first thing to talk about is the format/template. Unless the application mandates a specific template (which I doubt that it does), I'd suggest following the format of how graduate school personal statements look. Generally, there is a header at the top of the page. Actually, I used Word to write my personal statement, though again, this depends on preference.

It's also important to make the statement easy to follow and straight to the point. The way to complete this is to divide your statement into multiple sections such as an objective, your prior experience, and conclusion.

In my objective, I'd introduce the research I'm specifically interested in, and a question that I'd personally like to solve throughout the REU. For example, if the REU were about cooking, maybe I'd posit: Efficient chopping is important, though I disagree with the current norm to curl one's fingers because it's disorienting for one's wrist. In this way, I can now go on to say some examples of what research topics I'd like to work on because these examples propose different routes to solve the problem.

In my experience, I'd summarize any prior related experience I may have, whether that is previous research experience, courses, personal projects, etc. Here, bold any significant results or important details about your experience to highlight your achievements.

For a conclusion, don't start with "In conclusion" or "Overall." Just cut straight to the point and state which professors' work most neatly intertwine with your interests (you could explain why, though it's not necessary). Next, summarize your objective briefly (perhaps a sentence long), and then a final statement about how you recognize that this program is part of an institution, with gratitude.

Here's a template of what a good personal statement may look like (albeit it needs to be expanded):

Personal Statement - [University name, program name]
[Your full name]
________________________

Objective: I think [x], hence I think [y]. Thus, I'm interested in:

  1. a: Question
  2. b: Question
  3. c: Question

Experience:
Blah blah

My interests align with professors [1~n]. My goal is [concise sentence]. The [program] is [amazing], and [thank the board for reading this application].

Lastly, here's my personal statement that fortunately got me into the NYU UGSRP (which you should NOT follow):

In this example, we can see how I don't abide by my current advice. For one, my objective is not clearly stated; I doubt the reader has a true understanding of what contribution I plan to make. This occurs primarily because I was inexperienced in the field; in this case, it would've been best for me to suggest what I hope to visually see and experience by the end of the program. Furthermore, my prior experience could be expanded upon. This statement only suggests that I know how to use PyTorch; it doesn't showcase any results or concrete evidence in my proficiency. Finally, this statement doesn't even hint at the reason why I'd like to work with a specific advisor. "Why work with me, and not with anyone else who's trying to solve the same task?"

Here, I won't showcase my most recent personal statement, as I probably want to expand upon it for phd applications - it should be kept private. Just showing my old one may be enough to demonstrate what a poor personal statement looks like. It's clear that that statement was written by an inexperienced student. In the case of wanting what an experienced personal statement sounds like, I suggest you look at the examples of the extra references I've attached below. I've followed really closely the advice from these resources on maximizing my application potential to stand within the crowd, and it seems to have worked for both them and me. I hope this advice can help you gain any opportunities as well.

✬ Extra references ✬

Here's a list of other people's website that have given me inspiration / advice in this journey: