How to get Experience for Machine Learning Jobs: A Roadmap for Beginners

Daniel Bourke outlines five steps for beginners to gain machine learning experience without prior jobs: build projects that replicate real work like Airbnb's model, network directly with people in the field, follow up with contacts, and share your work publicly on GitHub or blogs. Most hires come from personal connections, not job postings.
Chapters
Look, I just finished recording this video that you're about to watch, and I realize it's— I said it was going to go for about 10 minutes, but it goes for longer. And so clearly I need to work on that. But I kind of had my verbosity set to 2. That's a nerdy machine learning joke. You probably get it if you ever built a Keras model. Anyway, there's timestamps below if you want to check them out. Otherwise, there's also— I'll remind you in the video, but there's an article below if you prefer to read. Treat this video as something like you, you can listen to in the background while you're cooking a nice meal or going for walk or something like that, because you don't necessarily have to just sit there and, and watch me talk about the points throughout it. But yeah, enjoy. Manuela sent me an email the other day and it said something along the lines of, how can a beginner data scientist like me— actually, let me just find it and I'll read it out to you exactly. Mail, Manuela, here we go. "Hey Daniel, I have a straightforward question. How can a beginner data scientist like me acquire experience? I did some courses and did some projects, but some interviewers said, 'I liked your formation, but you don't have the minimum experience we want. Come back later.' Nowadays, many companies hire freelancers through freelancer— freelancers companies. To me, it seems I'm running in circles." So the main question was, how can a beginner data scientist like me gain experience. And so, what I did was I wrote back a fairly lengthy email with some points of— now, this is a big disclaimer on this video, actually, is that I'm not going for any kind of job at the moment. I work for myself and I'm happy doing that for the time being. So, you should take— you should be very cautious of anyone offering, including myself, this is the disclaimer, anyone offering advice that they're not actually pursuing themselves. However, Because Manuela asked me this question directly, I replied as if, or I replied with the steps I would take if I was going for a job. So, I've turned them into an article as well. So, if you want, you can read that article. But what we're going to do in this video is the next 10 minutes or so, I've even got a stopwatch here to kind of make sure I'm on time. We're going to just talk through some of those points and I'm going to riff on them. As soon as I get my dogs. Ah, puppies, gotta love them. Now, where were we? Well, the first point was, well, how does a beginner like me get experience? So if you were going to apply for a job, a lot of them say, you'll read the job postings and they'll go, required, here's your skills. You might require, let's say, Pandas, Matplotlib experience, data analysis, modeling, et cetera, et cetera, Python code, maybe some SQL if you have to query databases, yada, yada, yada. You might go, yep, yep, I've ticked, I've got some experience doing those things, and you'll see the dreaded dot point, the one that says minimum 3+ years experience. And of course, if you've been studying like many of us do online by yourself, like chances are you don't necessarily, or like Memuella doing some courses, doing some projects, you don't necessarily have 3+ years experience. I mean, me personally, I don't have, I think I just crossed the 3-year mark of studying machine learning full stop. Like I started in maybe July 2017 and it's, it's now July 2020. So, I've got 3 years of just starting to now and I've got about 14 months of hands-on experience in an actual role. So, if I did want to apply for one of these roles that said something like you need 3+ years experience, what would I do? Now, the first point you have to remember is Manuela said that he'd done some courses and projects. Um, there's a gap. There's a gap between courses and experience. And now I can say this because I'm someone who, first of all, has hands-on machine learning experience, and second of all, teaches a machine learning course. So what happens in a machine learning course or any type of online course is the instructor has done a lot of the thinking for you. So they've— of course, you can't cover everything in a single course, otherwise it'd be far too long. So they've taken the entire corpus of whatever topic it is, say data science or machine learning, they've compressed it into— they compress the knowledge. In machine learning terms, they'd be like an encoder compressing the knowledge into a lower feature space, making the knowledge understandable for someone who's like a beginner going through a course. Because if you start too outlandish, too far, the students are going to be like, well, I don't really understand what's going on. So, you have to build it up. You have to— it's almost like you're holding a student's hand as they're going through. And I've experienced this both on both sides. So, going through a course and then finishing a course and trying my own project and going, wow, it's actually quite hard to bridge the experience you get in the course to working on a project of your own. Now, this includes the projects that are within courses, because for a project to be within a course, again, same thing has to happen. The instructor has to do the thinking for you. They have to get the knowledge of what the project takes and compress it into an understandable form to step you through it, to go, hey, here's what you do first, here's what you do next, and here's the outcome you should, you should probably be looking for. Whereas, Real life projects don't really have that. You might have some idea of, of what the project might, you might want it to look like, but chances are, if you've ever worked on anything, anything of your own, it doesn't usually turn out exactly how you imagine it when you first begin, because of course as you go you're going to learn different things. Now the example I had here between the courses and experience gap is remember how many times when you were little, maybe your mother and father told you how hot the stove was to— "Ooh, don't touch the stove. Don't touch the stove. Don't touch the stove. It's hot, hot, hot, hot." Maybe you're 2 years old, 3 years old or something like that and you're reaching, you're exploring the world. You can't really see, but you're trying to feel around. You're like, "Oh, what's this?" And they're saying, "Stay away from the stove." Now chances are you probably heard them say this a number of times, similar to how an instructor steps you through a project and going, "At this step you want to make sure your data is in the right shape before you pass it to a neural network." But chances are you didn't really learn that the stove was hot until you touched the stove. So you're down here and you're reaching around and you're going, your parents are, "Hot, hot, hot, hot!" And you're still reaching around and you go, Ah! Right? And that's a lesson that you're never going to forget, are you? And now, luckily, that doesn't necessarily have to happen for everything. Thankfully, we humans can learn that it's not a wise idea to get hands-on experience crossing the road and getting hit by a car to know that it's not safe to cross the road when you don't look both ways. But The lesson here is, or how we can relate that back to the courses and experience gap, is that the courses, courses are the equivalent of your parents telling you, "Don't touch the stove," whereas getting your own experience is the equivalent of you actually touching the stove. So, do you see how those two different types of, or those two different experiences are different types of knowledge? So, courses are, yes, important to begin with. You get foundation knowledge. They're nice to have. But that knowledge really won't be cemented until you put it into practice yourself. And this leads us into point 2, which is start the job before you have it. Now, I posted the article that I wrote to go along with this video on LinkedIn, and someone commented on, on the post giving their exact hands-on experience with this point, the start the job before you have it. Now, this is This one's lying in plain sight. This one here is that if you have an ideal role that you can think of, whatever it is, whatever company it is, whether it's— it's not even a company, to be honest. Like, you can do this. The beautiful thing about a lot of these points is that they relate to not only getting experience as a data scientist, but even if you weren't going for a data scientist role, it can be related to almost any endeavor. So the advice is The advice contained in here is generalizable. Start the job before you have it. Now, the comment on the LinkedIn post was something to do with freelancing. So Manuela mentioned freelancers. So many companies hire freelancers through freelancer companies. So let's say you're on a freelancing website and you saw a job posting there. This is what this person did on LinkedIn. And they said they saw a web scraping role. And they didn't have the full-on experience that they needed to apply for the role. So, they looked at the job posting and they looked at what it required and say it required these 3 steps. Well, they went and did those 3 steps over the next week or so and then contacted the person who posted the role and said, "Hey, I've actually got a little bit of a head start on these 3 steps. I don't have, I may not have the exact experience that you're you're asking for this, but I've actually started this project already. And so, that's what you can do. If you want hands-on experience with anything, with any job, with any role, with any activity, start it before you formally have it. So, let's say, for example, for my concrete example that you can actually refer to is, a couple of weeks ago I worked on an Airbnb project. So, let's say I wanted to— Airbnb is probably one of the handful of companies that I'd work for. Because I just like, I like what they offer. I like their experience, I like their design, and I think it's a, it's a cool thing that they're doing, the cool thing that they're building. If you're interested, the other ones are probably any of Elon Musk's companies, but at the moment, as I said, I prefer to, to work on my own and build my own. Anyway, I replicated— to get experience, I replicated one of Airbnb's machine learning projects. So they posted an article, um, it was amenity detection, which is using object detection computer vision to understand different pieces of furniture in a photo. So say for example, you uploaded your house to— a photo of your house to Airbnb. What amenities do you have, such as a fridge, a microwave, an oven? Airbnb used computer vision to see if that could assist in filling out the, the property listing. And so I just spent 6 weeks replicating that. I wasn't going for a job at Airbnb, but if I was, I could go, hey, you know what? I could apply to their team and say, you know what? I see what your, what your machine learning team's doing. I actually started this already. I actually started working on this project. I replicated it myself. I even, I personally didn't end up improving on theirs because I didn't have their internal data, but you could at least say, hey, I went through these steps. This is what I've done. We'll get to that point in a moment. But that goes with whatever role that you're after. Do your research. If you're smart enough to learn the basics and foundations of data science, you're smart enough to, to, to research and figure out what particular roles require. And so the next one is the follow-up. That was point 2, by the way. Start the job before you have it. The follow-up. Now, Anwela said, some interviewers said, I liked your formation, but you don't have the minimum experience we want. Come back later. And this is another very, very forgotten, forgotten point. It's in a lot of human relationships could actually be improved by the follow-up. Is that how often have you had an encounter with someone And then it's kind of, you thought, wow, I'd like to potentially meet that person again. And then it's kind of fizzled out because neither of you reached out to each other. Now, you might have, let's say for example, might be your crush or something like that. You might be going, well, they should reach out to me. We had this encounter and I'm not gonna message her or him, whoever it is, until they message me. You know what? They're probably thinking the same thing. Or, in the case of an interviewer who's dealt with, let's say, 100 candidates, which is probably a conservative estimate depending on where you're applying for a role, let's face it, they're not going to remember you. And the same thing happens, my experience with this, is when someone emails me and when my email inbox is clogged, I try to get back to everyone, sometimes some slip through the cracks. You know the ones I reply to most often? Are the ones who remind me, "Hey Daniel, you know, you've been pretty slack. You forgot to reply to my original email. Just wondering if you got it." The likelihood of me replying to that email, the person who followed up, goes up exponentially. So, this is— the follow-up is nonlinear. So, if you think your first action of going, getting an interview was stage 1, and then if you followed up, that's level 2. No, it's more like level 10. If you follow up and you go, "Hey, If I was Manuela and I went and got experience, went and started the job before I had it, the follow-up would be, "Hey, you know what? I took on your feedback. I went and got some experience. Here's the project I worked on. Just thought I'd let you know." That's the follow-up. That's as simple as it could be. Nice and simple, nice and direct. And that's what Manuela's— I'm more likely as well, this is the directness, this is where it's worth practicing some sort of business writing is, and being specific with your questions. I'm more likely to reply back to emails that ask specific questions or succinctly go hey here's what I did da-da-da would you like to— Here's my question that say nice and simple keep it simple so the next one is after you followed up again these points aren't sequential you can do them any order get to know someone now this is really important because of all found in my experience Again, all of these are biased with my own experience, so you might have found something else. If you have, leave a comment below and share your experience. Is that a lot of job postings, a lot of jobs are actually never posted in a company. When I was working at Max Kelsen, which is the machine learning company that I worked in my local city, we had, we had a lot of hires. Our team grew, I think, by about 3 times, maybe 4 times the size. Our machine learning team grew. I think I was the third. By the time I left, we had maybe 15 total in the machine learning team. And a lot of our hires were not from posting roles online and like a job portal or something like that. They were from people that we knew, like directly knew, had contact with. And maybe they didn't have hands-on, yeah, they didn't have hands-on machine learning experience, but See, this is human nature. People like to work with people that they like. That's it. Regardless of, okay, and it might be different for things like remote work and all that sort of stuff, but if you're in the office interacting with someone, let's face it, you want that person to be someone you enjoy spending time with. Now, you might go, oh, well, Daniel Bourke, what if someone's skill is higher than someone else? And yes, of course, in a perfect world, that's how it would work. We would hire the person with the highest skill level, but frankly, the way humans work, and if you're telling yourself like, we're completely rational, we hire on the best talent for the role, etc., not in my experience, okay? You might be different, you might be different, but people usually hire people they like. And the example of this is that a lot of the hires that we we brought on. We didn't even post. We just said, hey, yeah, we might need someone else. Do you know anyone? Yeah, actually, I do know someone from, from my math class and they've done— they haven't done much machine learning, but they're pretty quick at learning stuff. So let's, let's get them in and see what they can do. And again, might be different at different, different companies. But that's how we essentially hired a lot of our new team members was from someone who knew someone. And my story for this is I went to an artificial intelligence meetup. I can't remember the date, but let's just say at some certain point. And then 7 months later, I was working for the company, so Max Culson, that ran that artificial intelligence meetup. And when I went to meet people, I didn't even know that they were hiring. When I went to meet people, they said, meet people at the company, they said, oh yeah, well, I was able to say, sorry, I was able to say, yeah, I went to this meetup and I was fascinated. I've been I've been following your guys' work ever since. And so, as much as us nerds who like to spend time at computers like to believe, people still like to interact with their meat bodies. And again, remote work, yes, I work mostly remote at the moment, but this is, again, different roles require different things. So, the way you get to know someone is when social distancing rules and all that sort of stuff allow, you go to events. Or, we go into the next point, which is share your work. So, before we elaborate on that, getting to know someone, I treat job portals on the internet as dead. So, I, if I click a button to apply for a job, I pretend there is no chance I'm getting that. So I have to seek out the right person to talk to. And if you want to do this digitally, you can search again, do your research. If you've got the skill to learn data scientists, data science, or machine learning or something like that, you've got the skill to look out and research the people who you should talk to, contact them, message them directly, just like Manuela emailed me. Be succinct, be direct. It's like, hey, here's what I'm working on. I see you got this position for this role. Or they might not even have a position for that role. Just say, hey, I'm just touching base. I'm interested. I enjoy your work. I'm looking for experience. I just wanted to get to know you or just say hello. That's all it has to be. Nice and simple. But now, if you're not great at outbound, make the opportunities come to you. This is the other point. Share your work. So right now, this is not to brag or anything. But because I have so much work, again, I'm still a newcomer to this field. Like, if you look at me and you look at these videos and you go, "Wow, Daniel must be an expert," you must realize that I'm still learning as well. I'm 3 years, I'm about 3 years into studying machine learning and working on it full-time. So that, in this grand scheme of things, that's basically nothing because real skill comes only after about 10 years of doing anything. Hands-on. So, I'm about 30% the way through to getting to real skill. But the reason is I appear that I have more skill than I do is that I— all of my work is public. You can see everything that I've done. If you find me online, well then, it's all there. So, a very important point is that there are probably Lots more people out there that are hot— far, far and beyond more skilled than I am, except that I appear more skilled because I've communicated my work. And now, is that fair? Well, I don't know. How would you make that fair? That is my strength, is communication. And now, again, could always do with some improving. I'm not here to brag, I'm just telling you that is why I appear as having skill, and that is why I have, at the moment, more inbound opportunities. So, like, people emailing, "Hey, would you like to work on this?" I have to reply to, "No, sorry, I'm working on other things." So, if the opportunities that you're applying outbound aren't coming in, make them come to you. Again, I'm not, I'm not doing this to brag. I'll be very upfront with you with the things I'm good at, the things I'm not good at. I'm just showing you an example of why it's important, or one of the points is share your work. So, if you are working on something, if you did work on a project, if you did start the job before you have it, let someone know. Even if it doesn't work out, you could share the lessons and go write it up in an article. The best thing I've done in the last 3 to 4 years is write about what I've been working on. Hands down. That has brought me more opportunities than anything else, is just by writing out. Even if it doesn't work, I write about the story that, hey, I'm doing this, this is what I'm up, this is what I tried, these are the steps I took. So that, that is your experience. And if, if someone looks at that and doesn't call that experience, well, hey, you probably don't want to work there, right? Like, if you've gone out of your way to go research, I've got some foundational skills with courses, I've started the job before I had it. I wrote about what I was doing, because this is— these are all things that you're going to actually be doing on the job, right? You're going to be starting a project that you don't know how is necessarily going to finish. Again, you might have some sort of idea in mind of how it looks, but likelihood of that changing along the way is very high. And then at some point you're going to have to communicate to others, here's what I've actually been doing. And so, you can do all of those steps before you sign a contract and start an actual role. No one's holding you back. Like, these things are all out there, all the projects. They just require some effort from you. And so, we'll just quickly go back through what we've talked about. The courses and experience gap, remember, my question back to Manuela would be, Okay, you've done some courses and some projects. Have you touched the stove yet? Because no matter how many times your parents told you, "Careful, the stove's hot," my guess is— Ah! You didn't learn until you got burned. Number 2, we'll start the job before you have it. Nothing is holding you back from starting whatever role, such as Like, if you want to make videos, point your camera on, start shooting. If you want to write articles, type on your keyboard, press publish. The first ones are probably going to be pretty crap. You can go back and watch all of my original videos, me sitting in my car, pretty crap. You can go back and read my beginning articles, pretty crap. They got better with experience. If you want to work at a tech company, research the kind of role you may want It doesn't have to be exact. Then start it. The first time you work on a project like that, it's probably going to be pretty bad, but you're not comparing— compare yourself to where you were at the beginning of the project and the end of it. And if you want to shorten the time span, give yourself 6 weeks. Worst case, it's only 6 weeks. Best case, you learned a whole bunch. That's what I did with my Airbnb project. Number 3 was the follow-up. Remember, steps in communication are often nonlinear. You might have one interaction with someone and it went great, then the amount of times that those interactions sort of just faded off into the dust because someone forgot to do the follow-up, you probably can't count them. So, follow back up. Hey, here's what I've done. Just following back up. And then will it always work? Maybe, maybe not. Number 4 is get to know someone. Treat— you might not have to think of it like this, but I think, I personally, I tell myself, job portals are dead. If I click that button, it's always a no. So I have to go out of my way, I have to go above and beyond to figure out a way to get to know someone because most job postings, probably not listed. Number 5 was share your work. If your outbound applications aren't working, make them come to you. Share your work. That is experience. And if you want some further reading on this topic, a couple of things I would recommend is the book So Good They Can't Ignore You by Cal Newport. Basically self-explanatory by the title, but if you, if you're not sure, it's just improve at your skill so that— and share your work, of course— so that you're so good that people can't ignore you. But if you want to read 300 pages on that, you can. Next one is another blog post that I did, which is how to communicate and share your work. So a lot of courses and material, it's actually part of like that blog post, is part of the machine learning course that I teach, because a lot of them are very good at telling you what to do, like what code to write, but not, not very many of them teach you the how around it. So not— I'm not talking about how to write the code itself, I'm talking about what to do outside of, of the code. Because what you'll find is that, okay, a lot of actually building things and delivering products and whatnot is, of course, you need the code. That's, that's, that's fundamental. I'm not delusional. You need that before you, you, you show people your work. But there's a lot of steps that go around that to getting something in the world. And I assume that's probably what you want to do, is build things that, that bring other people value. And the final one is Don't Call Yourself a Programmer, which is another blog post which is basically the README, README.md of starting a role. You might be thinking, Daniel, this video is on how to get experience before starting a role. But yes, we talked about this. If you're smart enough to learn skills, you're smart enough to read that article, Don't Call Yourself a Programmer, and reverse engineer what's in that article to start doing that. Start the job before you have it. So there we go. Touch the stove, start the job before you have it. Don't forget the follow-up. Get to know someone. Treat job portals as dead if you want, and share your work. And there's a few further reading tips if you want. So, Mwela, I hope you, um, I hope you enjoyed that reply. If you've read the article Don't forget, actually, there's a link below. You can read the article. If you have any other questions like Manuela's, which was, "How can a beginner data scientist like me acquire experience?" You can always email me. That's pretty easy to find. Do your research. Otherwise, leave a comment below of any questions that you may have similar to that. Could be related to this video, and I'll probably answer all of them. But as always, keep learning, keep creating, and touch the stove. Final reminder. I'll see you next time.
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


