Self-Studying Machine Learning? Remind yourself of these 6 things

Daniel Bourke shares advice for self-studying machine learning: master Python first, build projects at 70% ready instead of waiting, pick three resources (Hands-On Machine Learning, fast.ai, Coursera) to avoid decision paralysis, and practice daily without comparing yourself to others.
Chapters
Alright, back to you, Terry. Wait, it's me. Where's the jingle? My own jingle? Alright. Welcome back to another episode with Daniel Bourke, self-taught machine learning engineer. On today's episode, we're going to go through 6 tips to help you if you're self-learning machine learning. Now, I get a lot of questions asking, how do I learn machine learning? How do I learn math for machine learning? How do I get motivation to study every day? And to be honest, it's gonna, the answer is going to be different for every single person because everyone's learning journey is unique. However, I did write an article the other day. I posted on Medium, the link will be below, and I've printed it out now because, you know, that's what you do when you're a professional news reader. You get papers and continually shuffle them. The title of the article was Thinking of Self-Learning, Thinking of Self-Studying Machine Learning? Remind Yourself of These 6 Things. So in this video, we're going to go through those 6 things. It won't be the same as the article because I've just written the titles down. I'm just going to be riffing them off. Number 1 is to get some Python foundations. Now, if you, if you're just a beginner and you want to get into machine learning and you're thinking of learning it yourself, you probably definitely want to start with, with learning some code and learning how to run it. And now, why Python? You could use a bunch of different other programming languages— Java, R, C— to all code up machine learning. However, Python is one of the lowest barriers to entry. And what do I mean by that? It's that when you read a line of Python code, it's very similar to how you would say the same thing in real life. Now, where can you learn Python? When I first started, I started learning it on Treehouse. Now, of course, the resources I list, there's a bunch of them online, and it doesn't really matter where you learn it. But my brother's starting to learn it now, and I recommended him to use DataCamp because of their focus on teaching Python for data science and machine learning. Do you necessarily have to use it? No, of course not. But if you do want to get into machine learning, you do have to start learning how to code. So you've started learning to code, you're about 3-4 months in, you've got a bit of Python foundations. What do you do next? Well, number 2 in this, this beautifully written article, by the way— I'm kidding— number 2 is to start making things when you're not ready. And what do I mean by that? Well, the best learning I've had is working on projects that I I didn't necessarily know what the outcome was. And so, doing online courses is great. However, there's a structure to them. So, someone's gone ahead and worked through, worked through the problems, given you a bit of a scaffolding of how to get through, and you can go to the forums and ask how to get through this step, and you'll probably find an answer. That's well and good to be able to do that sort of research. But what happens when you come across something that finding the answer is a little bit more difficult, or in fact, there is no answer? Now, the reason I recommend working on things when you're not ready is because that's going to ex— even though it might not feel like it when you begin, it's going to exponentially increase your learning rate. Because not only will you start to build upon those foundations, you'll start to learn, ah, okay, I can look at things. And think of different ways of solving them, even if I don't necessarily know what the outcome's going to be. That's a very valuable mindset to have. Start building things when you're about 70% ready, because in reality, you'll never be 100% ready. Number 3: There's a lot of clutter out there, so reduce it. And what do I mean by that? Well, if you Google how to learn machine learning or different machine learning courses, you'll probably be overwhelmed by the amount of learning resources out there. And they're all great, which is actually amazing and an amazing time to be getting into learning machine learning. However, having too many things to choose from can hold you back from actually choosing one thing. It's like when you go to the ice cream store, right? And they have 36 different flavors and you're like, whoa, I can't choose because there's so many different flavors. All right, so one of the best things I ever did was creating my own custom pathway. Now, that's my— you might have seen it before, it's my AI master's degree, and I wrote an article about it. I linked some of the resources that I was doing, and it's ever expanding. Now, if you've got some foundations in Python, some— 3 of the best resources that, that I use day to day, or that have helped me most day to day as a machine learning engineer have been the Hands-On Machine Learning book, the Fast.ai machine learning course, and the Applied Data Science with Python course on Coursera. They're three of the things that relate most, most to my job day-to-day as a machine learning engineer. And now, of course, that again is going to differ depending on what you want to work on, what your job requires, etc. But they're just three things you might want to bookmark for after you've got some Python foundations. Benefit in having that was that when I, when I thought about trying another course or something like that, I was like, no, I'm going to stick to my curriculum, follow that, that'll give me a good set of foundations, then I can start building things. Number 4: research is necessary but pointless if you can't apply it. There's a lot coming out in the machine learning world and deep learning world, AI world, data science world, and what What I mean by that, we look on Medium, you look on Archive, you look everywhere you go, there's headlines of new ways to do things. And now when you're first beginning, that can be incredibly overwhelming as well, because at the same time you're trying to get Python foundations and all, you've got your foundations, now you're trying to work on your project and trying to learn a bit more in-depth machine learning stuff and you're getting all this new research, state of the art this, state of the art that. How do you keep up? Well, the fact is you can't, right? I work on this stuff every day and I struggle to keep up. So, when you're first beginning, ignore it. Ignore all the new stuff unless it's directly relevant to the project you're working on. So, remember, when you're first starting out, get the foundations, have a set curriculum that you said you're going to follow through. And then, if you've got a project that you're working on, maybe then you might want to look at new ways of doing things. But in the beginning, focus on the foundation. Number 5 is a little bit every day. Now, when I get frustrated, most of the time it's because I'm trying to control things I can't control. What do I mean by that? Well, when you're studying, What's something that you can't control? You can't control how fast you learn or how fast you'll be able to solve a project. Sure, these are things you can work towards improving, but if you're first beginning out learning, learning machine learning, there's a lot to take in. So, something you can't necessarily control is how quickly you, you grasp the concepts, how quickly you can start putting them into play. What you can control is is how much time you spend on practicing those concepts every day. So, that's something everyone has the ability to control. And what does that look like? I'll say, instead of getting up and saying, "Well, today I'm going to nail that new concept that I've been struggling with. I'm going to learn how to build a neural network in PyTorch." Well, that's a great goal to have, but are you necessarily going to be able to complete it in a day? Maybe, if it was a really good day, but the opposite of that, and the other side, the thing that you definitely can control is getting up and going, "I'm going to spend 3 hours working on that project." Right? That's all you have to do. You work for 3 hours on that project and you've completed the goal. Set the system up so you always win. And if you miss a day, that's fine, right? Life happens. These things happen. When you hear people saying, "Yeah, I do this every day." Sure, that's great, but Again, not everyone's the same, and sometimes things will come up. So, if you miss a day, that's fine. There's always tomorrow. You can get back into it. Focus on the things you can control, not the things you can't control. Alright, 5 down. Number 6, this is actually really important. These last 2, I decided I'm going to throw in a bonus for number 7 for the video version. But number 6 is don't beat yourself up for not knowing something. At the end of the day, who does this help? No one, especially not you. If you're beating yourself up going, wow, I wish I knew this. You go online, I'm guilty of this. I read articles and I see what people are doing. I see people's amazing projects, right? And the stuff that's coming out of this world is just incredible. And I'm going, wow. Why can't I do that? Well, what you often miss with everyone's journey is you see that final little project right at the end, right? Right at the end. So, it's got all this work and all you really see is that last little bit. So, when you go to the movies, right? You're watching 90 minutes of a pristine movie and it gets all the great reviews. However, When that movie first started out, it was probably like 100 hours of footage that's been cut back to being that final little polished product. So, that's important when you're learning something, when you're learning something new, is to don't beat yourself up, don't compare yourself to other people, how far they are ahead. Sure, it's great to use them as inspiration for where you can get to, but feeling negative about where you're not and where they are is not going to help your learning journey. And I mean, people think— and Gary, you probably want to put the graphic over here for this one— people think learning is a straight line. It's more like all over the place, right? The first year of learning something new is— you suck at it. And then the second year, you're better than you were the first year, but now you know how much you don't know, so you think you suck even more, but you're actually getting better. And then the third year, well, I can't tell you that yet because I'm not there, but stay tuned and I'll fill you in. This is a bonus and probably really important too, right? Just as important as all the others, and it's number 7. And on the original, on the original version of this, actually, no, I did a live stream the other day asking Q&A, and Mattias left a comment which was very valuable, which is something that I probably should have included in the the original article was, "What's the rush?" It's not going to help. Again, this is tying back into what you can control, what you can't control, and not beating yourself up for things you don't know. Whenever I feel down, whenever I don't have the motivation to study, it's because I'm trying to be too far ahead of where I'm actually at. And now, Machine learning is an encompass of programming, mathematics, statistics, probability, communication, a whole bunch of different fields, right? And each of them you could spend years learning. So combining them and expecting to be an incredibly good machine learning engineer after a short period of time is kind of, kind of working against yourself. And that's what I have to remind myself is to have patience, to learn these things takes time, but it's worth it, right? They're the 7 tips that I have for people who are just getting into self-studying machine learning. Maybe you're just starting out, maybe you're getting into it. I've been studying, self-studying machine learning for about 2 years. And now when I say self-studying, I've spent, I definitely have spent a lot of time in this room. However, everything that I've learned and everything that I've worked on has been because of the incredible work that other people have done and put online and whatnot. So, self-study is not really self-study. It's because I'm standing on the shoulders of giants, right? And that's a— I believe that's from Isaac Newton, the guy who kind of invented calculus at the age of 23. Man, why didn't I invent something by the age of 23? And that's back to point 6, right? Don't beat yourself up for things that you don't know yet. With any learning journey, it's going to be unique. Will these things apply to you? Maybe they will, maybe they won't. If you have something that you would add, leave a comment below, try and help someone else out. Otherwise, all the best learning machine learning, and as always, keep learning. Back to you, Gary. P.S. Before you go, if you're looking for any of the links that I've said throughout the show, they'll be in the description below. And if you have any more questions, feel Feel free to leave a comment or email me at daniel@mrdbourke.com and I'll get back to you as quick as I can. Peace.
More from Daniel

Small Language Models (SLMs) Are the Future: Fine-Tuning AI That Runs on Your iPhone

Introducing Sunny - A MedGemma-Powered Skin Health Tracking App (Kaggle Competition Entry)

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 4 - Comparing the results

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 3 - Running LLMs on the RTX 4090

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 2 - Formalizing the tests

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 1 - Creating a series of tests

Local Multimodal RAG on the NVIDIA DGX Spark | Part 4 - Publishing our demo to Hugging Face

Local Multimodal RAG on the NVIDIA DGX Spark | Part 3 - Putting it all together


