I'm a mathematics undergraduate entering my second year, and I'm hoping to apply for applied mathematics PhD programs focused on machine learning next year. My programming experience is currently very limited: I'm nearly finished with an introductory Python course, and I'm planning to study data structures and algorithms, NumPy, pandas, an introductory machine learning course, and eventually PyTorch.
I'm especially concerned about gaining research experience before applications are due. With a consistent study schedule and this roadmap, is it realistic to become useful to a researcher by next summer? Ideally, I'd like to reproduce experiments from papers, run ablation studies, and implement baseline methods. I'd also appreciate feedback on whether this learning plan is sensible or if I should prioritize different topics.
2 Answers
That timeline is realistic if you focus on building things rather than only completing courses. Start with small projects—loading and cleaning a dataset, training a basic model, comparing a few approaches—and gradually increase the difficulty. Reproducing a paper is a great goal, but begin with papers whose methods and datasets are straightforward. You don’t need to know every part of Python before contributing; being able to read existing code, modify it carefully, run experiments, and document your results is already useful in a research setting.
Your plan is broadly good, but don’t treat it as a checklist where you must finish every course before doing research. Learn Python fundamentals, NumPy, pandas, Git, plotting, and basic testing while working on small projects. Then choose one or two simple machine learning papers and reproduce their main results. Keep the scope narrow, record what you tried, and ask potential supervisors whether they have small implementation or experiment tasks. Consistent, practical work will matter more than collecting lots of course certificates.

How do you suggest coming up with project ideas and judging whether a project is too ambitious?