"How'd you get started with machine learning and data science?" | Interview with Ken Jee
My answers to a series of questions about starting to learn data science/machine learning, how I got a job in the field and more from an interview Ken Jee.
The other day, the absolute and complete living legend, Head of Data Science and creator of incredible data science related YouTube videos, Ken Jee reached out to me asking if I wanted to collaborate on a video (or two).
I said sure.
We decided question and answer, back and forth type videos would be best.
So he sent me a few questions he'd probably ask me and to prepare, I wrote out answers to each of them.
And now I'm copying them here.
How did you get interested in data science/machine learning to begin with?
In 2017, my friends and I were building a web application (very primitive) to link together local gyms in our area. We had the problem of not being able to train with each other whenever we wanted. So we had the idea of making the Airbnb of fitness facilities, somewhere you could go and book time/space and workout with who you wanted.
After a while, we realised many gym’s business models depend on people not showing up. So us trying to add more people through our fancy little app (called AnyGym) wasn’t really going to fly.
Plus, the spark kind of fizzled out after a while because everyone had their own things going on. The project never really left more than side project stage for any of us.
At the same time, I left my job at Apple Retail (I was one of the Geniuses, the people who help you with your computer), to take learn to code again (my 3rd-4th attempt).
Due to my lack of skill and short attention span, web development felt a bit too tedious to me. And of course, 2017 was peak machine learning hype so in my searches I stumbled across all kinds of cool things. Especially Udacity’s brand new Deep Learning Nanodegree and a cheerful character called Siraj Raval. The pretty colours, the charismatic personality, it all got me. So I signed up 2-3 weeks out from the start without knowing a gram of Python.
I thought, “Woah, the computer learns for you?”... I can get around that.
Thinking I was way over my head (after reading a list of prerequisites I didn't have), I emailed support asking what the refund policy was. Luckily, I didn’t follow through with the refund and decided to keep learning.
What did you study in college? (I think you said nutrition right?)
I started with biomedical science but spent my first 2 years chasing girls, sitting around, working out, going to the waterfalls nearby instead of going to class.
Eventually, the Dean of Science sent me an email saying to come and visit.
He basically said, “Why should we keep you here?” (but in much nicer terms).
I used the good excuse of my Dad being sick (which he was) but the real reason was I was lazy and trying to study something which didn’t really spark my curiosity.
Instead of reading lecture notes, I’d find myself staying up late at night watching YouTube videos of bodybuilders and world-class athletes eating for performance.
The Dean caught wind of this and said, “Why don’t you switch to nutrition?”.
And that blew my mind.
Because I was like, “You can choose what to study?”.
You see, this is how naive I was. I chose biomedical science because I thought saying “I’m studying to be a doctor” sounded cool.
So 2-years into college, I switched to nutrition and food science. Some of my biomedical subjects counted but not all of them. So a 3-year undergraduate degree turned into 5-years.
But I don’t really care about the degree itself, the knowledge is more important to me.
Even now, people ask, what are you doing with your nutrition degree? And I tell them with a smirk, “I’m shredded.”
I left college with something even more valuable than a degree.
I left with the idea that if there was something out there which sparked my curiosity, I could follow it.
What concepts did you start learning machine learning with? (small projects or learning theory)
I started with deep learning (the Deep Learning Nanodegree was the first course I took). I remember being on my friends floor training my first convolutional neural network on CIFAR10 and showing him the outputs.
I showed him the model recognising a photo of a plane and he asked how you’d do that and I said I didn’t, the computer learned it for itself. You should’ve seen his face.
Udacity and Coursera courses were a mix of theory and small projects. Although the projects were quite handheld (an instructor sets out the steps for you), I think that’s important when you’re starting out. If you try things too far out of your reach, you’ll lose motivation and stop.
It’s a fine line between testing your ability on something you’re unsure of and not going far enough. If you don’t test yourself, you end up going back over the stuff you’ve already covered.
However, this isn’t always a bad thing, because learning isn’t linear. I learn things more twice as much when I go over them for 2nd time, more than 3 times as much for the 3rd time and so on.
How were you able to integrate machine learning with your own personal interests?
I haven’t fully yet, as in, I started with the idea of combining machine learning with health and nutrition.
But now I realise, machine learning is just another tool in an engineers tool belt. And once you acquire that tool, it’s very easy to think that tool can be used for everything.
I do have some ideas of how it could integrate but I’m ashamed to say I haven’t followed them through as much as I’d like, one is in the works right now but I’m keeping it under wraps until a prototype is ready.
Plus, the more I learn about biology, the more I learn about math, the more I learn about the curse of dimensionality, things like personalized medicine may be mathematically impossible.
That being said, I was apart of a team, more so, sitting across from a sitting team working on a project called IOP (immunotherapy outcome prediction). Where they were trying to take different biological parameters such as someone’s genome and figure out whether or not they were a potential candidate for immunotherapy. As in, what’s the likelihood the treatment would be effective for them (personalised, but very niche). Which would be valuable considering the cost of the treatment is something like $100,000 per year (a large expense for something which might not work).
On the other side of combining machine learning with my interests, I do have a deep interest in creating art, I’m talking writing, videography, the art of learning itself. So I kind of became a frozen yoghurt machine, writing about learning machine learning, making videos on it. None of my friends knew what I was doing so I felt like I had to put some stuff out there in the world to find people who were interested in what I was.
I feel there’s a lot of tutorials out there on what to do with machine learning and other forms of code but none ever talk about the how around it. Like, what goes into actually learning something?
Why did someone choose to do what they did?
If there are 51,443 people signed up to an online course with me, I wanted to know what they did day to day alongside learning the material.
Are they in their bedrooms studying too?
So that’s the kind of stuff I started making.
How did you land a job whilst studying online?
Whilst I was studying, I drove Uber on the weekends to pay for courses, books, food and rent (I was a hermit so these were my only costs). Then one night I got a fine for picking up people in the wrong spot. The fine was $220, more then I earned the entire night. And I’m sitting there on the way to drop these people off, it was like 2AM, on a Sunday morning and I’m thinking to myself, I’m out here picking up drunks and taking them home (safely) and I get slapped with a fine by some guy standing on a curb taking photos with a smartphone.
On the way home, and by this stage, it's closer to 3AM. I decided there and then. I’m not driving Uber anymore. And this was a big deal because usually Sunday afternoon’s I’d get a good amount of fares, because Friday nights, Saturday nights and Sunday’s were the only real good time to drive. So I woke up that Sunday morning, tired but I’d basically forgotten about the fine because I had a new mission.
I was about 8 or 9-months into my self-created AI Masters Degree and I thought, f*ck it, I’ll figure it out.
My original plan was to just buy a one way ticket to the US and find a job there at some startup.
Looking back, my skills were probably 70% ready to be working anywhere (which is a fancy way of saying, I wasn’t as good as I thought I was) but in my head, I knew I’d be able to figure something out.
The breakthrough came four days later.
As I mentioned before I’d become a frozen yoghurt machine of putting things out there. And a girl I used to work with named Ashlee noticed what I was posting on LinkedIn.
Ashlee worked with a guy named Mike who knew a bunch of people in the tech space. She sent me a message saying, “Hey Dan, I’ve seen what you’ve been posting, you might be interested in meeting Mike”.
So I said sure and met Mike.
Turns out, Mike’s a real cool guy and when we talked, he said you should meet Cam, he’s the health lead at Max Kelsen. And my eyes lit up.
So about a week later on Monday, I met Cam. We talked, I told him what I’d been up to, studying artificial intelligence in my room, making things online, driving Uber, my plans for the US.
And then he asked me, "Why the US?".
Which kind of blew my mind. Because I didn’t really have an answer. Other than all the things I’d seen online were coming out of the US.
He kept going and told me, I could work on the things I wanted to right here (I live in Brisbane, Australia) if I wanted. And of course, right here meant at Max Kelsen.
“Why don’t you come in on Thursday?” He asked.
And so I did. And then again the next Thursday (during this time I was working on mostly exploratory data analysis things, no machine learning, just cleaning data with pandas). And then the Thursday after that, I went to the cafe down the road with the CEO Nick and the machine learning lead Athon and was offered a role.
About 14-months later, I went to the same cafe with Nick, handed in my letter of resignation (which was a very hard decision, because it was the best job I’d ever had) and left to work on my own business.
What advice do you have for people who are looking to learn machine learning from scratch? (or how did you do it?)
If I had my time again, the biggest thing I’d change is learning more software engineering skills. I’d twist my AI Masters Degree to include more things like web development or full-stack development.
And I’d learn in short bursts, followed by projects in short bursts. As in, 1-3 months of learning (from scratch) and then a minimum of 1 month working on a project with that knowledge.
You see, I got caught up thinking racking up certificates and completing more courses results in more skills. But it doesn’t.
Sure, courses help build foundation knowledge but working on your own projects through trial and error is where the real learning happens.
And I know this because that’s basically all I did whilst in my Machine Learning Engineer role, I’d use the foundational skills I’d learned in the courses and through various other resources to build small proof of concept projects for various businesses. But the bottleneck we always faced was getting what we’d made into production.
It’s here I learned that machine learning is largely an infrastructure problem. Which is why if I had my time again, I’d learn software engineering in parallel with machine learning. I’d let less of my models die within a Jupyter Notebook and get more of them in the hands of others.
And if you’re a complete beginner, all of this probably sounds completely over your head. But don’t worry, everyone goes through that stage. In fact, I’d argue the more you learn, the more you realise you don’t know. So your situation never really improves, you just (hopefully) get better at deciding what to pursue next.
But if you’re looking for concrete steps, try this:
I’d learn Python first, get familiar with the language, then a few machine learning courses to go along with it (all of them are good, just pick one or two which spark your interest).
Alongside learning Python and various machine skills, I’d learn full-stack web development as well as various software engineering skills.
Learn machine learning concepts
- Go through elements of AI (to get a big picture of machine learning in general).
- Learn Python basics (if you can write a function in Python, you’re reading to start learning machine learning).
- Learn pandas (for data manipulation).
- Learn NumPy (for numerical computing).
- Learn Scikit-Learn (the gold-standard machine learning library).
- Learn deep learning (fast.ai or deeplearning.ai are great).
- Plug: my machine learning course teaches all of the above.
Learn full-stack web development (alongside Python)
- freeCodeCamp’s curriculum is solid enough for this.
- Read Jason Benn’s How I learned to code article for more.
- Another plug: my friend Andrei also teaches a full-stack web development course (he teaches the Python parts of our machine learning course).
Learn software engineering skills (sprinkle this in whenever you want, or after 6-12 months of the above)
- Go through CS50 (computer science 101 + how a computer/the internet works).
- Go through The Missing Part of Your CS Degree (plenty of tools here you’ll end up using actually building things).
- Go through the full-stack deep learning curriculum (this will help you get your machine learning models to the world).
- Go through Khan Academy's offerings for whatever topics you need.
- If you can find a group to study different things with, this would be amazing.
- You'll probably want to get familiar with at least 1 cloud computing offering (AWS, GCP or Azure).
And of course, share your work along the way, create your own blog, post code to GitHub and share your machine learning projects (try building these with Streamlit) on Made with ML (no matter what they are).
To see these questions answered in video format, check out the video on Ken's YouTube:
I also interviewed Ken on my channel (asking questions such as what he looks for when interviewing junior data scientists):
If you’ve got any further questions, or just want to say hi, send me an email.