This article is an opinion piece for undergraduates interested in machine learning, written by a student who tried his best to get involved with the ML community. Over my time at Rice, I have been approached by many underclassmen and peers about getting involved in ML. I come from a first-gen, low-income background with zero knowledge of ML and scarcely little extracurriculars prior to Rice, so hopefully my perspective is at least useful to similarly confused freshmen out there.

I did have a fair amount of success, such as finding an amazing, diverse lab where I worked with my PI and his collaborators 1:1. I was also fortunate to have participated in prestigious REUs at Berkeley AI Research and the NYU Courant Institute of Mathematical Sciences. But, I also suffered from imposter syndrome and debated about pursuing graduate school for a long time. In being honest, I hope that I can be helpful for students interested in machine learning, research, and trying to find the thing they want to focus on.

Starting with courses.

As of writing this piece, machine learning (ML) has a huge presence on Rice campus. For better or worse. If you have ever considered taking an introductory ML course, you might notice that there are at least 4 options (well… really 6, but for most undergrads only 4 of them are commonly talked about)

  • ELEC 478: Introduction to Machine Learning
  • ELEC 378: Machine Learning: Concepts & Techniques
  • STAT 413: Introduction to Statistical Machine Learning
  • DSCI 303: Machine Learning for Data Science
  • COMP 540: Statistical Machine Learning
  • INDE 577: Data Science & Machine Learning

Many of these classes fulfill the same requirements at Rice, so they are comparable. As a former head PAA who advised underclassman and consulted many upperclassmen about these choices, my advice is that you just pick one at your earliest prepared semester, i.e. after a basic comfort with linear algebra and statistics.

Prioritize the instructor effectiveness and know that COMP 540 is the only one that is implementation-heavy, which is great background for implementing models from scratch, although I don’t personally think that’s a significant competitive advantage for getting into much ML careers.

After the introductory courses, there are tons of specialized electives. These are the ones that I have heard are good or taken for myself.

How do I get involved in Research?

If you read this far, I assume that you are moderately interested in machine learning. In that case, the first question to ask is not whether you should choose between ML engineering, software engineering, or machine learning.

The first question to ask is how to get your foot in the door.

In my (and many others) experience, it takes an incredible amount of luck or experience (or both) to get into an industry position for machine learning (or even moderately close to it as a SWE). IMHO, the sure-fire way to focus on ML at Rice – and other schools with a good ML researcher to student ratio – is to reach out to a faculty and join their project.

I am skeptical as to whether most freshman can meaningfully contribute to a project during their academic semester, especially if you didn’t already have a lot of advanced background coming in. Personally, I didn’t and thus devoted a lot of effort towards a solid foundation in statistics, algorithmic thinking, general math fluency (proofs and the specific prerequisites of ML). If you find some down-time early in your career, I highly recommend working through significant portions of either An Introduction to Statistical Learning or Dive into Deep Learning.

My caution against entering ML research too early is because it’s tricky to balance coursework and research. This is especially true for those of us who are wired to the organized deadlines in classes, but never experienced anything like research where you bang your head repeatedly and are confused by most you read. People have a wide range of opinions on how to proceed here, but I think you should at least get the hang of classes before jumping in. Optimal time points are summer of freshman year or sophomore year while/after taking an ML class in tandem. But, it is never too late to get started.

Some possible issues with entering too early, ordered by likelihood:

  1. You feel lost, your advisor doesn’t have time to be a 1-1 tutor when you are so early in your understanding, you feel demotivated, and you either explicitly quit or start quiet-quitting. The latter is both likely and common.
  2. You spend most of your time learning the basics of machine learning with an advisor that can meet you about once a week with expertise on sub-areas. You could’ve had a better and broader learning experience by enrolling (or even special registering) into one of the intro ML courses, go to office hours, make friends, and develop a strong foundation for starting your research.
  3. You decided that you want to focus a lot of your effort on research (which is good in general), but you end up sacrificing your class attendance, doing relevant practice problems, and the bulk of a course that’s rudimentary in the machine learning research space, i.e. linear algebra, probability & statistics, or introduction to machine learning. This, in my opinion, is bad. It takes some experience to know when sacrificing other commitments for research is good, and it rarely happens in your first semester.

That being said, you could probably enter the sphere of ML around sophomore year. In my opinion, trading off the first year to get a strong academic and social foundation at Rice is worthwhile for you and your advisor. Now, you are probably thinking about: so how do I join a lab?

Gauge lab fit from folks who work with the advisor!

Some (maybe even a lot of) people would recommend asking one of your course professors for research opportunities, mass-emailing PIs, and reading their publications to maximize your chance of joining a lab. I don’t fully agree with all of that, especially if you are just starting. Instead, I suggest the following:

Take a further look into your future, I would trace backwards from there. How likely do you see yourself pursuing graduate school, and what about industry? If you are in an exploratory stage (which is good), then I suggest focusing on working with a PI or lab that can teach you alot and not focus too much on the advisor’s research output, especially if they are junior faculty. A common way to measure research output is the advisor’s h-index, the citations of their papers, and their collaborators - all of which can be reasonably found on Google Scholar. For the interest of undergrad research, I don’t think h-index should matter that much.. again, especially for junior faculty. In terms of figuring out your research interest, you probably already have a good vague idea. Do your due dilligence and browse the Rice research tabs to figure out all the faculty in your area of interest. In terms of actually learning about their work, I recommend the following exercises (ordered by low-to-high effort): try to make a quick mental note about what their area is called, what problem is their most recent paper (or two) trying to address - give that a one sentence description, and lastly, do a deep search over their group members to find people to talk to.

I don’t recommend reaching out to a faculty first, unless you already know them. I do recommend reaching out to graduate students and undergrads if you identified any on the faculty’s website. What’s important to ask is the general culture fit and advisor strength/weakness, and here’s a good guide by CMU to help you formulate specific questions that are important to YOU. For me, I value how socially connected, ambitious, and diverse my advisor’s lab is. And I am grateful everyday for choosing the lab that I did. Aim to email around 5-8 undergrad/graduate students and talk to 3 PIs before making a decision.

Once you feel ready though, there are a lot of options at Rice. Our departments have recruited many faculty members conducting machine learning research over the years… For ex. we have Akane (ML for Health), Vicky Yao (ML for Cancer Biology), Tasos (Optimization for Deep Learning), Santiago (Graph Neural Networks), Arlei (Graph ML), César (Federated/Distributed Learning), Vaibhav Unhelkar (Robotics and Human-AI Interaction), Vicente Ordonez (CV & NLP), Anshu (Efficient DL), RichB (almost anything ML/DL) etc.

Now that I am in research, what should I look out for?

Here are some common problems that early researchers run into, and my thoughts about them.

I am stuck, not making a lot of progress, and reading all the time. Am I doing bad?

My advisor, César, told me that research is non-linear and maybe even exponential. A challenging part of research is identifying the right problem to work on. This cannot happen if you are tunnel visioned. I spend the first semester of working with César mostly just reading about optimal transport, optimization, and solidifying my background in machine learning. I made a lot of progress in my second semester, generated many results, written a lot of code, and presented our preliminary results in the Rice conference. Just because you aren’t doing anything that shows right now doesn’t mean you are not making progress. I would seek frequent feedback from your advisor and trust their expertise. Worthwhile projects can take a bit of time to hammer out. And worthwhile questions to ask may take even longer to find. Don’t be discourage if success does not happen immediately.

I should take a course on X before doing research in X.

No. Despite my earlier rant about solidifying a core background before jumping into research. Once you are pass the point of bare minimum, you really learn most by learning from the expert in the problem space you are trying to work in, reading the relevant literature, and getting your hands dirty.

In most instances, that person is going to be the very person who recruited you to work on this project… well at least within your space of potential mentors, and the project will naturally present a series of candidate literatures and tasks. If you’re doing research in a specific optimization algorithm to speed up deep neural network training, it might be helpful to sit through the basics of convex optimization, but it certainly won’t be nearly as helpful as starting the research. As Tasos told me once, you gotta be efficient too!

Read, get feedback from your mentor, try things out, rinse and repeat. Progress can feel slow in the beginning, but you are probably on a steady track towards your research goals. It is important to start!

I don’t want to meet my advisor/mentor because I haven’t made much progress.

If anything, the moments that you are stuck are the most important times to meet. Feeling stuck as an undergrad is necessary, but also dangerous if you suffer in silence. Get feedback before you dive too deep into a rabbit hole and lose motivation. This cannot be overvalued when you are early in your research career.

So… can you work in ML?

With the increasing attention that the field is getting, there are MANY job opportunities for it. And from the above content, I hope you have a clearer idea and an actionable plan on how to get your foot in the door by joining a ML lab early in your research career.

Perhaps, the actual relevant question to ask is should you work in ML?

An (Ethical and Practical) Debate about AI/ML Research

Over the past few semesters, I notice a lot of students asking about how to get involved with ML with little familiarity for what the field is. This is great in that it’s a fascinating rich field with a lot of community interest, and therefore there’s a lot of funding, projects, and mentors in the sphere. I also by no means want to gatekeep.

However, my extended engagement with ML led me to reflect on whether working in machine learning provides a net positive for the society. Intelligence is fascinating, and so is understanding it. But, many developments for machine learning are kickstarted by efforts to build better attention-retaining mechanisms, product recommendations, and to some extremes, autonomous weapons for the military. Read more from “How Data Happened” on how the origins of statistics is deeply intertwined with war.

A lot of researchers will claim that they are just working on the tools, and not responsible for their use case. I (and originally, Phillip Rogaway) argue that in choosing a project to work on, you are making an active decision on what not to contribute to. And this absolutely impacts the trajectory of our society. At its core, machine learning is about producing insights for the future based on patterns of the past. Despite efforts in areas like ML fairness and interpretability, you are fundamentally contributing to a field that enables large-scale, efficient, autonomous reproduction of past behaviors. This may be adversarial to promoting important social changes to our society.

For every student who has had a slight thought about making the world a better place, I recommend this original piece by Dr. Rogaway that revolutionalized my assessment for what it means to do good in the world. As always, don’t blindly trust what others say, but this is one of the most eye-opening, compelling, and tragic opinions I came across in my 4 years studying computer science.

To sprinkle a bit of positivity before we close up, read up on why your career choice is one of the most meaningful decisions you can make and some steps toward performing rigorous analysis of your options. If you pursue AI/ML, I plead that you take your contributions seriously and consider the impact it may have for the future generation.

For the future you that does becomes a researcher…

The current state of the machine learning field is both exciting and concerning. As a student who’s spend a few years conducting research that falls under this broad umbrella term, I find it thrilling that almost everybody is excited to talk about some form of machine learning. However, this leads to the thousands of preprints on ArXiv everyday, surely too massive for any single reasonable researcher to consume. I invite you to survey this insightful article on the Troubling Trends in Machine Learning Scholarship and be aware of some counterproductive tendencies within the ML scientific community.

How did I end up doing? And should you trust me?

I didn’t place my outcome because I think, too often, we are misinformed by survivorship bias. Professors encouraging us to pursue an academic career because they were top performers. Software engineers encouraging us to join X company because they got a bunch of money from the position. For those of us figuring out what to do, there is a lot of value in hearing failures too. In fact, two of the most valuable things you can do in undergrad is exploration and looking for failures. So, evaluate my words yourself. I hope that you will find that at least some parts may be sensical. At the very least, I hope you found the pointers as valuable as I have.

If you identify as a first-generation/low-income or, more broadly, underrepresented minority, please feel free to reach me via one of my contact options for a chat at any time. I am always happy to be a rubber duckie for fellow students who want to make their world, their community a better place than when they arrived in it.


I owe my learnings to many, including but not limited to: Zachary Rewolinski, Cameron Diao, César Uribe, Tasos Kyrillidis, Genevera Allen, Daniel Kowal, Ameesh Shah, Shreyas Minocha. If I missed you, send me an email and we will get that fixed.

Further Readings

Last but not least (ok mayb it is least)