Guide to Using This
Last updated
Last updated
Assuming you already know how to code (you can either pick up Python quickly or know it already) but know nothing else here, completing this roadmap in its entirety will probably take ~140 high-quality hours. Take this estimate with a mountain of salt, as your mileage will definitely vary. Based on that rough estimate, a good target goal to set is ~7 high-quality hours a week, which would keep you on pace to complete it in about 4.5 months. This isn't as bad as it might seem, because you'll (hopefully) learn a lot of broad and genuinely valuable skills, and end up in a position where you'll be able to work on awesome AI-related coding projects in exchange for just 1 focused hr per day for a third of a year.
The 140 hour time estimate is assuming that you have a somewhat ineffective study practice because this is probably your first time diving into a big independent self-teaching project. Despite that, in all honesty, it's still biased to be more optimistic than not (out of hubris I'm probably overweighting the help that this resource will give you). Getting to roughly the skill level here took me ~190 focused hours, although much of that time hasn't been used effectively because of reasons I discuss later on this page.
Know what your goals are in advance and how you learn best.
This is not a course (I have nowhere near that level of expertise yet). It's a resource that can use to help you find materials to learn from and coding problems + questions that test your knowledge. You should know what you want to get out of it in advance, and adapt it for yourself.
This roadmap is meant for people who want to go reasonably deep theoretically (or as much as possible in the given timeframe), and aren't as concerned about practical applications. There's no shame if that doesn't fit your goals, and in that case you can probably finish the roadmap faster (or just check out once you're comfortable with Python; it's an amazing course for gaining practical skills). If you don't really know what you want to get out of the course but think deep learning looks cool, contact me, and I can try to help you figure it out (although, again, I'm still a beginner myself).
If you feel like you need to go deeper on a topic, go deeper. If you don't like the resources I recommend, look for others or ask me.
Figure out a strategy to make sure you remember what you learn. When watching lectures or reading blog posts, have an internal monitor for whenever things feel a little too fast or easy. It probably means that you are learning too passively.
Use spaced repetition systems (please do this, I can guarantee that you will at least 1.5x increase the effectiveness of your learning if you can use spaced repetition systems well).
Read introductions to spaced repetition and .
Learn how to use spaced repetition and .
Bookmark and come back to it once you have a better understanding of linear algebra. It will help you understand how to use spaced repetition effectively for more "academic" topics.
Skim through fast.ai's . Although we won't be using too much of fast.ai, I like their learning philosophy, and there are a couple of good tips specific to being a deep learning programmer.
For lectures, either program along or re-program afterwards from memory (ideally both).
A lot of these resources will have corresponding Jupyter notebooks. I have a 3 step process for learning with these that I like:
First, just passively run each cell as you watch the lecture and generally make sure you understand what the code is doing. Write out what each cell does in comments.
Second, once you're done with the lecture, delete the code each cell and re-implement it yourself based on the comments.
Third, condense the cells together into different sections in the pipeline and implement each section from scratch.
Fourth, if you feel up to it, try to do the whole thing from scratch w/o comments.
For the math
Take notes and do practice problems (please do this. I didn't and wasted nearly a week really struggling before having to come back).
You can do it!
Don't rush through and be okay with taking your time. This is a complex topic, and learning it meaningfully well and in a way that will stick in the long-term is going to take a while. Care a lot about building a very good foundation and slowly working up.
If you couldn't tell, all of this is from painful personal experience that has probably set me back 20-30 hours overall.
It's too easy to just let your eyes glaze over and move on too fast when you come across complex-looking equations, diagrams and terms. Make it a point not to do this! It will become a bad habit that will hamper you as you move forward (not just here, but whenever you try to teach yourself something). Stick with things that are hard and messy. Search things up and use GPT liberally to help you figure things out.
Me-specific wording
When I say "use/ask GPT", I mean "search things up and/or use whatever AI tool you're most comfortable with".
Whenever I say "watch" a 3Blue1Brown video, I'll link to lesson on 3B1B's site, where it will be in both video and text format. It would probably be best to skim the text and answer the questions after watching the video.