I’m a networking engineer and for a while now, I’ve wanted to learn something outside my domain of work.
My formal education did not include compilers and databases. I’ve tried to learn those (more on this later) to keep things interesting. I’ve also made a couple of attempts to start learning Machine Learning over the last 3 or 4 years. This is my latest attempt at it. I want to learn from my past mistakes and do it better, and more importantly — with a plan.
The first time, I started with the Udacity course by Sebastian Thrun (https://www.udacity.com/course/intro-to-machine-learning--ud120). I gave up after a few lessons. This has nothing to do with the course itelf (it was good). I realized that theory alone (with just a little coding) didn’t help me. This was because —
- I’m not in college anymore — so my attention span has become shorter.
- This is a field where the theory is just too much for a beginner— the math alone can stump a lot of people.
The second time, learning from these mistakes, I created a Kaggle account and started on their lessons. (They are pretty good, but basic). While I was able to complete the basic lessons, the pandemic happened and among other things, I lost my progress in this.
For my third attempt, here is the plan. I’ve retaken the basic Kaggle course (https://www.kaggle.com/learn/intro-to-machine-learning) to get things started. I want to do the following over the next few months, hopefully completing a good part of this by the end of 2021.
- Hands-on Machine Learning with Scikit-Learn (book). This is a very popular and highly recommended book. This has a good mix of the fundamentals taught mostly by doing projects (hence the ‘Hands-on’ in the title).
- Explore more Kaggle datasets and a few projects.
- Learn Pandas (and any relevant tools for data exploration).
- Learn/re-learn some college/high-school math — Linear algebra, Calculus, Probability, Statistics.
For the basic math above, I just plan to check Khan Academy.
Once I have the basics down (by this I mean once I know what I *can* do with ML and how), I will then attempt to learn about how it works and why. This I aim to do by bridging the gaps that will inevitably be there due to starting with the coding part of ML. I have listed the following for this:
- Andrew Ng’s course on ML from Coursera/Stanford (https://www.coursera.org/learn/machine-learning) — this is on everyone’s list, but will check this out after the first phase to see how much of this to do.
- Mathematics for Machine learning (https://mml-book.github.io/)
- Introduction to Statistical Learning (https://www.statlearning.com/)
This should keep me busy for the good part of a year. I’ll try and document my progress here as a way to keep me on track and to bring some structure to my learning. The latter part was lacking in the previous attempts and it showed in the lack of progress.
I realize learning anything new, especially when it’s not directly related to the full time job one has, is not going to be easy. And by not directly related, I mean that I don’t use it or have plans to use it in the near future in my full time job.
So why am I doing this?
I’m at a point in my career where I feel I’ve plateaued as an engineer and I need to shake things up a little, both to feel motivated at the current job and maybe even switch roles. While a new career as an ML engineer may not immediately materialize, a focused attempt at it will help at least to feel more involved in what I love at the bottom of it all - to code.
I also plan to learn more about databases — not simply how to use them, but how they are built, how they work and the different kinds of it all. I’ll document that separately.
PS: I’ve found the channel https://www.youtube.com/user/consumerchampion helpful for some of the recommendations provided there.