I'm a mathematics undergraduate about to start 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, although I'm nearly finished with an introductory Python course. My tentative plan is to study data structures and algorithms, learn NumPy and pandas, work through an introductory machine learning course, and then move on to PyTorch. I'm concerned about gaining research experience before applications are due. With consistent effort and this kind of roadmap, is it realistic to become useful to a researcher by next summer—for example, reproducing results from papers, running ablation studies, and implementing baseline methods? I'd also appreciate feedback on whether this learning plan is sensible and how I should prioritize it.
2 Answers
That timeline is ambitious but realistic if you focus on building things rather than only completing courses. Start with small projects and increase the difficulty gradually: implement basic algorithms, analyze a real dataset, train a few standard models, and eventually reproduce a result from a relatively accessible paper. By next summer, you probably won’t know everything, but you could be useful with clearly scoped tasks such as cleaning data, running experiments, implementing baselines, and checking whether results are reproducible. Also try to contact potential supervisors early; research experience often depends as much on finding a willing mentor and demonstrating persistence as it does on finishing a particular list of courses.
The roadmap is broadly sensible, but don’t treat it as a checklist where you must finish every course before doing research. Learn Python fundamentals, then start using NumPy and pandas in small projects. Once you understand basic supervised learning, try reproducing simple experiments from papers or tutorials and write down exactly what you changed and what happened. For project ideas, begin with familiar datasets and add one challenge at a time—visualization, feature engineering, comparing models, or reproducing a published result. If you can explain the goal, identify the inputs and outputs, and finish a minimal version in a week or two, the project is probably appropriately scoped. You can always extend it after the first version works.

How do you suggest coming up with project ideas without choosing something far beyond my current level?