This is the story of how I went from zero to do real client work on Machine Learning.
I want to keep this article short so you can grab what's useful for you and leave. But, if you're interested in the details with pictures and personal opinions, you can read the full story on my site.
Note: I hate overnight success stories like "how I reached X in 3 months", I don't think real progress comes like that and it's just stressful for the reader. Therefore, I'm just going to say this all happened in the span of a year or so.
TL;DR
Here's an overview of my journey. In the next paragraphs, I'll put useful links and a bit of my personal story.
I respect your time so I'll summarize a lot. Go here if you want to read the full story, though.
1. First book
My wife got me this Machine Learning handbook from MIT. It's a pretty short overview of the topic that got me triggered to dive deeper.
2. First online course
I then enrolled in the Data Scientist with Python track in DataCamp. I didn't finish the whole course, just took a few lessons until I felt I could move on alone.
3. Second book
I bought a copy of the book Hands-On Machine Learning with Scikit-Learn and TensorFlow. It was a terrific investment. This book is great to learn supervised and non-supervised learning with Scikit-Learn as well as deep neural networks with Tensorflow.
4. First competition
I then tried some luck at the Kaggle's Titanic Machine Learning competition. This is the "hello world" of Machine Learning competitions.
I ended up submitting 3 attempts. I didn't get good scores but I was proud I put in the time and self-discipline to finish the challenge.
This is the type of content I send to +850 devs on my email list. Join here to get my tips and thoughts on algorithms and career growth. If email is not your thing, follow me on Twitter to get sneak peeks of what I'm working on.
5. First real-world project
I secretly built an unsolicited news topic classifier for the company I worked for. It would analyze the content on a news article and predict its category (sports, politics, religion, etc) based on previous training.
As it turned out, they didn't like it at all. I didn't feel like trash, though. I proved myself I could do ML professionally. I moved on.
6. Second competition
I went to compete on the AWS DeepRacer Scholarship Challenge which would grant access to enroll in the Machine Learning Engineer Nanodegree Program.
The competition consisted in tuning an autonomous racing car to complete a track as fast as possible. The top 200 times would get the scholarship.
(Self-note: next time don't take pictures with a potato). I ended up winning the scholarship but not for my scores, my lap times were crap. I got mine either for luck or for creating this repo with some resources for new competitors. I didn't ask, though. I moved on.
7. Second online course
I enrolled in the Machine Learning Engineer Nanodegree Program with the scholarship I'd won. It was basic but I learned a lot about deploying ML models to production in AWS.
I didn't like any of the choices they offered for the final project. I then decided to find something meaningful to work on.
8. Second real-world project
I reached out to my friend Nicolás who happens to run one of the biggest crowdfunding sites in Latin America, Vaki.co. I proposed to build a recommender system, à la Netflix or Amazon. He liked the idea and we started working together.
After several weeks of work, I built a hybrid recommender system that predicts recommendations based on two models: Content-Based and Collaborative Filtering. You can read the full report over here. It's ready to be used in production but hasn't yet been implemented (out of my scope).
I haven't built anything else after that. I don't want to devote myself to something I picked out of FOMO and which doesn't really spark that fire within me. I have added something new to my toolbox, but I won't necessarily switch paths anytime soon.
Key takeaways
The ultimate guide to learn is non-existent. Everyone needs to find their sweet spot. For me it is print books, pen and paper, and practicing with real/dummy projects.
Do your best to understand the math. Tuning hyperparams or reasoning about model performance feels weird without a good foundation.
I'm not a researcher, I'm an engineer. I'm ok with not understanding all the latest, complex advances in AI and ML. I'm happy to understand and use common ML tools to solve real problems. For me, Machine Learning is just a means to an end, not the end itself.
I don't like that feedback is very slow on ML. It's very frustrating for me, coming from a product background, to train a deep neural network for hours just to see garbage results and not be able to tell why.
Dive into other topics to grow your toolbox but don't deviate from your true path, whatever that is. I'd rather double down on my strengths than being a jack of all trades.
Thanks for reading. Never stop learning!
Shameful self-promotion
You can follow me on Twitter or just keep reading me here. I wrote about my story getting into Toptal, my recommendations to write a good resume, a curated list to find top-remote jobs, and some more advice to ace algorithm interviews. I also wrote an eBook to get into Toptal, check it out if that's your thing.
Top comments (10)
Moving from the front end to the backend (or something specialized like machine learning) can be a huge. Career booster. I just made a course with the goal of getting more JavaScript devs to learn Go, one of the highest paid languages:
classroom.qvault.io
Wow
That's quite a leap.
Was there any motivation to move from development to Machine Learning?
Yeah, I explain it in the full post on my site. TL;DR: I got FOMO and fear to be left behind. That's not very rational, just being honest.
I didn't finally move to Machine Learning all over. It was nice to live in that world for a minute but I don't plan to pursue a career in that area anytime soon. I don't enjoy academic research, I'm not cut for that. I love building products and designing, I'm doubling down on those strengths.
It's however pretty cool to have the skills to pull up a Machine Learning project whenever I want. That's what I take from all this.
Good luck Carlos!
Thanks mate! :D
I was looking for this kind of post since a month. Thank you.
I'm glad you found it! :D
An interesting read. But I get a feeling you’ve not moved to be working full time in AI/ML field. Am I correct?
That's right. That title is deceiving, my bad. I try my best in the post to clarify that, although I did client work and could've moved into finding full time work, I decided not to.
My only intention is to show people one possible way to learn, practice and solve real problems. I found out ML is something I'm not fully passionate about.
Ah okay, yes fair enough if not your cuppa. Thanks for clarification.