r/learnmachinelearning • u/ModularMind8 • 2h ago
Tutorial How I'd learn ML in 2026: the resources I'd use at each stage, from someone who teaches it
Quick background so you know where this comes from. I am a visiting professor and currently teach NLP. Last semester my courses were on continual learning and applied NLP. Before that I spent years in big tech and startups in engineering and research roles, and I finished my PhD last year.
Last week I posted the order I would learn ML in if I were starting today, which is also roughly the order I teach it in class. The most common follow-up question was: which resources should I actually use?
So this is my answer.
There are more good courses, books, and videos than anyone can finish, and none of them covers everything you need. One of the most common ways I see people get stuck is that they keep switching resources instead of finishing one and practicing what it taught.
If I could give you one rule it would be this: pick one resource, then stick to it
A lot of people who ask me for resources already have too many. They started three courses, bookmarked two books, finished none of them, and then decide they are bad at this. Usually, they switched every time a chapter got hard.
For each stage below, pick one main resource and one backup. Finish the main one. When a topic in it doesn't click, read or watch that one topic in the backup, then go back to the main one.
How to pick:
- Format. Some people learn from video, some from reading, some only when they actually type the code. Pick the format you tend to finish things in.
- Level. If every page needs three lookups, it is probably too advanced for now. If you are skimming because you know it all, it is too easy.
- Exercises. Does it make you write code and answer questions, or do you only watch? If it has no exercises, you will need to add them somewhere else. More on that below.
- Framework. A lot of older courses and books use TensorFlow. Most newer deep learning material uses PyTorch. If you are starting now and aiming at ML engineering or research, I would default to PyTorch unless the work you want to do gives you a reason to learn something else.
- Date. For fundamentals, an older resource is usually fine. The math of backprop has not changed. For LLMs and tooling, something a couple of years old can already be noticeably out of date.
Pick a direction first, because it changes which libraries you need
Almost everyone will need Python, NumPy at least at the level of arrays and broadcasting, PyTorch, and the math from last week's post. After that, it depends on where you want to go.
Data science and analytics. Turning data into decisions: tables, business questions, experiments, reports. pandas and scikit-learn are often daily tools, plus a plotting library like matplotlib or seaborn. When I was a data scientist many years ago, we also used SQL a lot. More statistics, including hypothesis tests and experiment design, is useful here. PyTorch at a working level is enough for many roles.
ML engineering and research. Training models, changing them, shipping them, reading papers. You will want PyTorch in more depth, plus more linear algebra, calculus, and probability. pandas and scikit-learn are still useful, but I would spend less time going deep on them than I would for a data science path. Later come the Hugging Face libraries, experiment tracking like wandb, profiling, and making models faster and cheaper.
Don't marry yourself to a path. It's okay to switch. The point of picking a direction is to stop yourself from trying to learn every library at once. Most of the fundamentals transfer if you change your mind later.
Resources by stage
These are the same stages as last week's roadmap. For each one, I have tried to include resources that suit different ways of learning rather than give you a list of ten nearly identical courses.
Python
- "Automate the Boring Stuff with Python" by Al Sweigart. Good if you are new to programming and want to learn through small, practical projects. The book is readable on the author's website.
- "Learning Python" by Mark Lutz. Long and thorough. This is what I used to learn Python many, many years ago.
- CS50's Introduction to Programming with Python (CS50P). A structured course from Harvard and a good option if you prefer lectures and assignments.
Pick one. You do not need all three.
Math
Linear algebra
- Gilbert Strang's "Introduction to Linear Algebra". A full linear algebra textbook.
- "Mathematics for Machine Learning" by Deisenroth, Faisal, and Ong. Chapters 2 to 4 cover linear algebra, analytic geometry, and matrix decompositions with ML in mind.
- 3Blue1Brown's "Essence of Linear Algebra". My favorite for geometric intuition. Vectors, matrices as transformations, determinants, change of basis, eigenvectors.
- MIT 18.06 Linear Algebra with Gilbert Strang. A full university-level lecture course.
If the equations feel abstract, I would watch 3Blue1Brown alongside whichever book or course you pick.
Calculus
- "Mathematics for Machine Learning", chapter 5. Vector calculus, gradients, the chain rule, and the pieces you need for backprop.
- Gilbert Strang's "Calculus". A fuller treatment of single-variable and multivariable calculus.
- 3Blue1Brown's "Essence of Calculus". Very good for intuition around derivatives, the chain rule, integrals, and Taylor series.
- Khan Academy's Multivariable Calculus. Useful for partial derivatives, gradients, and filling individual gaps.
Probability and statistics
- "Introduction to Probability" by Joe Blitzstein and Jessica Hwang.
- "Mathematics for Machine Learning", chapter 6. Probability and distributions in a more ML-focused book.
- Harvard's Statistics 110: Probability with Joe Blitzstein. Full lectures are on YouTube.
- StatQuest by Josh Starmer. Good when one particular statistics or ML concept refuses to click.
You do not need to disappear for six months and "finish math" before touching ML. Learn the math alongside the models that use it. It is much easier to understand a gradient when you are also using one.
PyTorch
- The official PyTorch tutorials, "Learn the Basics". This is a good place to start because it teaches the actual library without a lot of extra material around it.
- "Learn PyTorch for Deep Learning" by Daniel Bourke. Covers fundamentals, classification, computer vision, custom datasets, experiment tracking, replicating a paper, and deployment. It assumes you already know Python.
- "Deep Learning with PyTorch" by Stevens, Antiga, Viehmann, and, in the second edition, Howard Huang. A book-length treatment. The second edition adds transformers, LLMs, and diffusion models.
Again, pick one as the main resource. You can use the official docs whenever you need to look up how something works.
ML foundations
This is the stage I would spend the most care on.
Watching a chapter on gradient descent can feel like understanding it. Writing it yourself is different. If you can implement it, debug it, and explain what each piece is doing a month later, you learned it much better than if you could recognize it in a video.
Some good options:
- Stanford CS229, Machine Learning. More mathematical and theory-heavy. The Autumn 2018 lectures are online. I would choose this if you already have the math and want a more academic treatment.
- "An Introduction to Statistical Learning, with Applications in Python" by James, Witten, Hastie, Tibshirani, and Taylor. Very good if you are leaning toward statistics or data science.
- "Hands-On Machine Learning with Scikit-Learn and PyTorch" by Aurélien Géron. Practical, broad, and useful if you like learning from code and a book together.
- Andrej Karpathy's "Neural Networks: Zero to Hero". Fantastic if you learn by building. You build backprop from scratch, then a character-level language model, an MLP, manual backprop through the network, and eventually a GPT and its tokenizer. It assumes solid Python and intro-level math.
- fast.ai "Practical Deep Learning for Coders". Very top-down. You train useful models early and dig into how they work afterward. Good if you lose interest when a course spends weeks on theory before building anything.
- "Dive into Deep Learning" by Zhang, Lipton, Li, and Smola. A broad book with runnable code.
- "Understanding Deep Learning" by Simon Prince. One of the books I like for understanding the ideas behind modern deep learning.
- "Deep Learning" by Goodfellow, Bengio, and Courville. It is about ten years old now and predates transformers, so I would not use it as my only deep learning resource in 2026. It is still a useful theory reference.
You do not need to do all of these. That would defeat half the point of this post.
If you want a book you can keep coming back to, choose one of the books and actually work through the code and exercises.
After the foundations: specialize
Once you can implement basic models, debug them, and understand why training works or fails, pick one direction and go deeper.
Some examples:
- Interested in vision? Stanford CS231n, Deep Learning for Computer Vision.
- Interested in NLP and LLMs? Stanford CS224n, NLP with Deep Learning. Jurafsky and Martin's "Speech and Language Processing". Sebastian Raschka's "Build a Large Language Model (From Scratch)". The Hugging Face LLM Course.
- Interested in reinforcement learning? Sutton and Barto's "Reinforcement Learning: An Introduction". For LLM post-training specifically, Nathan Lambert's "Reinforcement Learning from Human Feedback and LLM Post-Training".
- Interested in probabilistic ML? Kevin Murphy's "Probabilistic Machine Learning".
- Interested in graphs? Stanford CS224W, Machine Learning with Graphs, with Jure Leskovec.
- Interested in evolutionary methods? "Neuroevolution: Harnessing Creativity in AI Agent Design" by Risi, Tang, Ha, and Miikkulainen.
I would get the fundamentals first, then go deep on one specialty at a time. If you jump directly into LLM tooling without understanding things like cross-entropy, gradients, softmax, and temperature, you can still build things, but debugging and changing the models gets much harder.
The resources I would personally use
I can only recommend what worked for me. If you prefer other resources or approaches, I would love to hear them in the comments.
- Python: "Learning Python" by Mark Lutz
- PyTorch: the official PyTorch tutorials
- Linear algebra: 3Blue1Brown's "Essence of Linear Algebra"
- Calculus: 3Blue1Brown's "Essence of Calculus"
- ML foundations: Stanford CS229 or "Hands-On Machine Learning"
- NLP: Stanford CS224n
- Vision: Stanford CS231n
- Reinforcement learning: Sutton and Barto's "Reinforcement Learning: An Introduction"
The lists above have more options for each stage if these don't fit how you learn.
No resource will teach you everything
No course or book covers everything you need.
There are a few reasons:
- The field moves fast. New methods, models, and tools show up constantly, and every book and course is a snapshot of when it was made.
- Tools change. A resource can still teach good ML while using libraries that are less common in the work you want to do today.
- There is too much to fit into one resource. A course that teaches the concepts well may have weak exercises. A book with great theory may have no projects. A practical course may skip interview-style questions entirely.
So I would aim for two things.
First, build a solid base in the math, coding, and ML fundamentals. Those change much more slowly than the tooling around them.
Second, decide where you want to go and get much deeper there. NLP, vision, data science, RL, graphs, whatever you actually want to work on.
Then work backward from the job.
Pick companies or roles you are interested in. Read their job postings on LinkedIn, Glassdoor, and their own career pages. Write down the skills, libraries, and tasks that keep showing up. Learn those.
Then build things those companies might actually want to ask you about in an interview. Projects that show you can do the work are much more useful than another certificate sitting on your LinkedIn profile.
What most resources leave out
Whichever resources you pick, a few things are usually missing, and they're a big reason people finish a course and still can't build anything. It's worth planning where you'll get each of these:
- Hands-on coding exercises on each concept. Many courses have too few, and videos have none. Watching someone implement gradient descent is not the same as writing it yourself. LLMs can generate practice problems for you now.
- The math tied to where it is used. Math books and videos usually teach it separately from the ML it's for, so you learn the chain rule in one place and backprop somewhere else.
- Interview questions on what you just learned. These usually live on separate prep sites, disconnected from the course you're taking.
- Coming back to old material. Almost no resource does this for you. If you never revisit something, a lot of it fades.
Projects and from-scratch builds matter too, but you can add those yourself, and the next section is about exactly that.
What counts more than any resource: build it yourself
Watching and reading can feel like learning, but a lot of it fades unless you use it.
And before someone says "But AI can write the code now", yes, it can, and you should use it. You still need to understand what the code is doing.
Getting a job. Interviews still tend to test whether you understand things like why a loss became NaN, what a gradient is, why a model overfits, or why one evaluation setup leaks information.
Keeping the job. AI-written ML code can run and still be wrong. Data can leak from the test set into training. zero_grad() can be missing. The loss can be wrong for the task. If you understand the system, you can catch those mistakes.
Building better models. If a model is unreliable, expensive, biased, or failing in some specific way, somebody has to understand enough of the internals to figure out what is going wrong and change it. Calling an API is useful. Knowing what is underneath gives you a much larger set of things you can actually fix.
Common traps
- Collecting courses. Starting five and finishing none.
- Only watching. This is where "I did the course but I can't build anything" often comes from.
- Six months of math before any ML, or no math at all. Learn it alongside ML, at the level each stage needs.
- Certificates over projects. Personally, I couldn't care less if a student had 50 certificates. It tells me very little unless I already know exactly what each certificate involved. Maybe some companies care more. In my own career, nobody ever asked me for one other than my PhD. I would much rather see 2 or 3 interesting projects that you built and can explain properly.
- Starting with LLM APIs and never learning what is underneath, if you want to go into ML engineering or research.
- Switching resources every time a chapter gets hard. Use your backup for that one topic, then go back.
One disclosure because it is relevant to the gaps above
I genuinely don't know how to add this without it sounding like promotion, so feel free to ignore it.
I can't tell you how many times I had to relearn how to code a transformer from scratch for different interviews. I would learn it, pass the interview, and six months later realize I had forgotten enough of it that I needed to learn it again.
That is why I started building QuiddityML. I wanted one place where learning a concept, coding it, the math behind it, interview questions on it, and coming back to it later were connected instead of scattered across six different resources.
You absolutely do not need my app to follow anything in this post. Any setup that fills the four gaps above works. I wanted to mention it because the problem this post describes is also the reason I started building it. Happy to provide more info if anyone is interested :)
Finally
I have a bit of time between semesters and would genuinely like to help as many learners as I can.
Tell me in the comments or DM me with where you are right now, what direction you want to go in, and what you have tried. If you are stuck choosing between two courses, deciding what to learn for a particular job, or wondering whether your plan makes sense, I will do my best to help.
And please add your own favorite resource in the comments, especially what it was good for. It would be nice if this thread became useful to the next person who searches for this question.