I’m a self-taught¹ Machine Learning Engineer, here’s what I’d tell myself if I started again
We were hosting a Meetup on robotics in Australia and it was question time.
Someone asked a question.
“How do I get into artificial intelligence and machine learning from a different background?”
Nick turned and called my name.
“Where’s Dan Bourke?”
I was backstage and talking to Alex. I walked over.
“Here he is,” Nick continued, “Dan comes from a health science background, he studied nutrition, then drove Uber, learned machine learning online and has now been with Max Kelsen as a machine learning engineer for going on a year.”
Nick is the CEO and Co-founder of Max Kelsen, a technology company in Brisbane.
I stood and kept listening.
“He has documented his journey online and if you have any questions, I’m sure he’d be happy to help.”
The questions finished and I went back to the food.
Ankit came over. He told me about the project he was working on to use machine learning to try and understand student learning better. He was combining lecture attendance rates, time spent on the online learning portal, quiz results, plus a few other things. He’d even built a front-end web portal to interact with the results.
Ankit’s work inspired me. It made me want to do better.
Then a few more people started coming over and asking questions about how to get into machine learning. All from different fields.
This is the hard part. I still see myself as a beginner.
But the best mentor is someone who’s 1–2 years in front of you. Someone who has just been through what you’re about to go through. Any longer and the advice gets fuzzy. You want it when it’s fresh.
My brother is getting into machine learning. Here’s what I’ve been saying to him (and myself if I were to start again).
A) Get some Python foundations (3–4 months)
The language doesn’t really matter. It could be R, Java, Python, whatever. What matters is picking one and sticking with it.
If you’re starting out, you’ll find it hard to go wrong with Python.
And if you want to get into applied machine learning, code is compulsory.
Pick a foundations course from online and follow it through for a couple of months. Bonus points if it’s geared towards teaching data science at the same time. DataCamp is great for this.
It’ll get hard at times but that’s the point. Learning a programming language is like learning another language and another way of thinking at the same time.
But you’ve done it before. Remember when you were 3? Probably not. But people all around you were using words and sounds you’d never heard before. Then after a while, you started using them too.
B) Start making things when you’re not ready
Apply what you’ve learned as soon as you can.
No matter how many courses you’ve completed, you’ll never be 100% ready.
Don’t get lured into completing more courses as a sign of competence.
This is one thing I’d change if I went back and started again.
Find a project of your own to work on and learn through being wrong.
Back to your 3-year-old self. Every 3rd word you said would’ve been wrong. No sentence structure, no grammar either. Everything just came out.
C) There’s a lot out there so reduce the clutter
There are plenty of courses out there. All of them great.
It’s hard to find a bad one.
But here’s the thing. Since there are so many, it can be hard to choose. Another trap which can hold you back.
To get around this, I made my own AI Masters Degree. My own custom track to follow.
You can copy it if you want. But I encourage you to spend a few days doing research of your own and seeing what’s best for you.
As a heads up, three resources I’ve found most aligned to what I do day-to-day are, the Hands-On Machine Learning Book, the fastai Machine Learning course and the Applied Data Science with Python course on Coursera.
Bookmark these for after you’ve had a few months Python experience.
D) Research is necessary but pointless if you can’t apply it
You’ll see articles and papers coming out every day about new machine learning methods.
There’s no way to keep up with them all and it’ll only hold you back from getting your foundations set.
Most of the best machine learning techniques have been around for decades. What’s changed has been an increase in computing power and the availability of data.
Don’t be distracted by the new.
If you’re starting out, stick to getting your foundations first. Then expand your knowledge as your project requires.
E) A little every day
3-year-old you was a learning machine (a machine learner?).
In a couple of years, you went from no words to talking with people who had been speaking for decades.
Because you practised a little per day.
Then the compound interest kicked in.
1% better every day = 3700% better at the end of the year.
If you miss a day, no matter, life happens. Resume when you can.
Soon enough you’ll start to speak the language of data.
F) Don’t beat yourself up for not knowing something
“Have you ever built a recommendation engine?”
“We’ve got a project that requires one as a proof of concept, think you can figure it out?”
Most people think learning stops after high-school or college. It doesn’t.
The scenario above happened the other week. I’d never built a recommendation engine. Then I did.
Failure isn’t bad if you’re failing at something you’ve done before. You’ve been walking your whole life but you don’t beat yourself up when you trip on your own feet. It happens. You keep walking.
But failing at something new is tough. You’ve never done it before.
Learning machine learning kind of goes like this.
1st year: You suck.
2nd year: You’re better than the year before but you think you suck even more because you realise how much you don’t know.
3rd year: ???? (I’m not there yet)
Embrace the suck.
How much will beating yourself up for not knowing something help you for learning more?
Learning something new takes time. Every day is day one.
How would your 3-year-old self react to not knowing a word?
You’d laugh. Throw your hands in the air and then crawl around for a bit.
It’s the same now. Except you can walk.
¹ All the work I’ve done and things I’ve learned couldn’t have been possible without all the great people who’ve created courses and shared what they’ve learned.