After finishing my most recent project to replicate Airbnb's amenity detection and being on Coronavirus lockdown, I've got some free time to cement some previously learned knowledge.
I've collected a handful of machine learning and computer science learning resources I'd like to go through by the end of May. And I'm putting them here for two reasons.
- You might find some of them useful.
- At the end of the month, I can come back and see how closely my predictions lined up with what I set out to do (my own feedback loop).
The purpose (why)
By the of the month (give or take a few days), I'm going to take the TensorFlow Developer Certification exam.
Secondly, I take things more seriously when I know there's some sort of milestone ahead.
I value skills over certifications but if the road to certification allows me to revisit a few fundamentals I haven't covered in a while, it's a win win.
Finally, as an educator and creator, it's my responsibility to stay up to date with the field and consistently practice my craft--because it's always day one.
Why not take the exam and (probably) pass it now?
Because of the above. I enjoy learning. Not passing exams.
Why not PyTorch?
Very interested. But learning things take and time isn't infinite. That can come when I need it. I'm learn these skills to build things.
I did some research (read the certification page) and designed the following to satisfy the criteria in the TensorFlow developer handbook (a book which says what skills you'll need to pass the certification).
There's a short-list and a long-list. The long-list are all the things I'd like to go through. And the short-list are the things I must go through.
The short-list (need to haves)
I started with many different resources (see below) but cut it down to 3. Even these might be a stretch for a month.
Note: The following are paid resources which I've attached affiliate links to. This means if you click on a link and purchase something, the price stays the same but some of your funds will go to me. See the long-list for free resources.
- Learning Python Book by Mark Lutz (5th edition)
- Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow Book by Aurélien Géron (2nd edition)
- TensorFlow in Practice Specialization on Coursera
- Bonus: How to Eat, Move and Be Healthy by Paul Chek
The Learning Python book is to improve my Python skills. Since I code every day in Python, it's worth knowing if what I'm doing is using the library in the way it should be used. I've noticed I'm weak in a few areas. Particularly, object-orientated programming (OOP).
After coding Python for 3-years, on a scale of 1 to 10, I'd rate myself about a 3. This book should help me get to 4 or 4.5.
The Learning Python book also lines up with an idea I heard recently on learning programming: learn the language, not the framework.
For example, learn how to do things from scratch with Python and not TensorFlow.
Learning the language may take longer but it allows you be more self-reliant, which is a good thing on the road to mastery.
The Hands-on Machine Learning Book (2nd edition) and the TensorFlow in Practice Specialization on Coursera together contain all the materials and concepts required for the exam (plus a little more).
The 2nd edition of the Hands-on Machine Learning Book has also been updated for TensorFlow 2.x (what the certification exam is on).
And the bonus (How to Eat, Move and Be Healthy)?
Every learner needs to take care of their health.
The long-list (nice to haves)
I won't explain as much here but just know, these resources are probably also worth your time (if it was infinite).
Pick and choose for your needs.
- Python like you mean it - A straightforward resource for learning Python (the most important bits). If I do get to it, this will likely complement my Learning Python book.
- Neural Networks from Scratch by Sentdex - One of YouTube's best programming teachers has a new series. Neural networks from scratch using pure Python and NumPy. This goes back to the idea: learn the language, not the framework.
- fast.ai deep learning from the foundations - Same as the above but taught by my all-time favourite machine learning practitioner.
- Made with ML lessons - An incredible collection of machine learning and deep learning tutorials in TensorFlow and PyTorch.
- The Missing Semester of Your CS Degree from MIT - I never studied computer science. But I'd like to know more about the command line, shell tools and editors like Vim. This course covers those and more.
- Deep Learning from MIT - MIT's latest deep learning course. Technical details included.
- Jake VDP’s reproducible data analysis in Jupyter - Let's be real, I'm probably going to go back through this again. This should be required watching for every data scientist.
- MLOps pipeline example with Microsoft Azure by Ben Alex Keen - I stumbled upon Ben's blog whilst searching about MLOps (the combination of machine learning and software engineering, in other words, building apps with some kind of machine learning component) and I'm glad I did. Some of the highest quality posts I've seen. Don't know if I've got a use case for a full-blown ML pipeline yet though, I prefer having a problem first, then learning the solution.
The good news about the long-list is that they're all free.
2-3 hours per day reading/practicing on average (some days more, some days less).
Starting by reading the books cover to cover, taking notes on pages and topics I'd like to revisit for the second passthrough. The first passthrough is to flood my brain with everything and see what sticks. The second pass will be to practice and implement the parts most relevant to me.
With 2000+ total pages, I'll be aiming for 100+ pages per day.
I'll intersperse pieces of the TensorFlow in Practice Specialisation where required.
See you in a month
To make space for learning, I'll be creating less online. Focus on learning what's needed for the next month or so and then coming out and building things with what I've learned.
I'll loop back to this article and write a follow-up once I've passed the certification.
A reminder: this curriculum is mine, designed for my specific needs (in this case, to cement my existing machine learning skills and pass the TensorFlow Developer Certification at the end of the month), yours may be different. If you're looking for more resources like this, check out my list of AI and ML resources.
If you've got any questions, or just want to say hey, feel free to introduce yourself.