When you want to learn and become better at something, one of the biggest problems is to find the right place to start. This is especially true today, as there are SO MANY tutorials, courses, degrees, papers… I don’t claim that this article will provide you with all the info necessary to completely master Machine Learning (at least not yet – this article will be regularly updated and hopefully become the ultimate guide to learning ML!), but it will get you on the right tracks.
A few more introductory words of wisdom: You may not like the first course or tutorial you find. Perhaps you won’t like the second one either. You may return to the first one after a month to find it more interesting than the first time you encountered it, and it’s perfectly normal. A process of learning has its ups and downs, and it has plateaus, meaning that you will experience periods of stagnations and periods of wasting your time. You should recognize those periods quickly and try a different approach in order to get the most out of the study-hours you put into learning.
Just keep in mind that machine learning isn’t really a piece of cake. So, If you don’t understand it, don’t worry about it. You’ll come to understand it later.
Okay, let’s get started:
1. Release the power of the Internets!
If it was the year 1980, I would suggest you apply for a CS Degree program or go to a library. Luckily for us, we have a fast internet full of ML, programming and math tutorials these days!
The biggest authority in teaching ML is Andrew Ng (the guy from the image in the beginning telling you not to worry). You can find all of his courses here on Coursera.
There’s a list of intro tutorials compiled by Siraj Raval, and it can be found here on his Github. The first month is especially important for everyone that wants to learn AI. Don’t be disappointed if you don’t manage to follow the schedule set by this list though, Siraj Raval is a speed-watcher and a speed-reader enthusiast!
There are also courses from School of Ai here. So far there are only three courses, but the community is very active and courses are being updated regularly.
All of the mentioned things are completely free, waiting to be rekt by you.
1.2. Programming Environment for Machine Learning
I recommend CodeCademy’s Python course to anyone who wants to learn programming, as it is just perfect for absolute beginners. However, if you are not a beginner it will bore you to death, so I’d suggest you take a look at this awesome “complete education in computer science using online materials” curriculum. You can choose your own level and begin there.
As far as operating systems go, any will do the job, but Linux based operating systems are generally a less painful solution for ML. Stick with Ubuntu or Mint and you’ll be fine.
2. The answer might be in your neighbourhood
2.1 Find a local ML community
All humans need a tribe to survive! We are a bit past traditional tribe systems, but the idea behind it still stands – life sure is easier in a community. From time to time you may stumble upon a problem that seems impossible to solve, that might even discourage you from machine learning, but a new pair of eyes might solve that same seemingly spooky issue in a minute. Of course – it’s polite to give back when you receive, so when you see a question that might seem almost ridiculous – answer it politely and help a fellow adventurer in need!
There are also School of Ai communities throughout the world, you may find your own city on the list here.
“We are The School of AI, and our mission is to offer a world-class AI education to anyone on Earth for free. Our doors are open to all those who wish to learn. We are a learning community that spans almost over 700 cities across the world, dedicated to teaching our students how to make a positive impact in the world using AI technology, whether that’s through employment or entrepreneurship.”
2.1.2 “No learning is too deep, no meme is too spicy.”
Memes and humor may actually be a great way to learn many relevant things (high-level, not actual code and math). Join Facebook groups like this one and enjoy the show! This gang cracks me up on a daily basis.
2.2 Find a local ML company
I was surprised to find not one but three ML companies in my (relatively small) city. Many companies offer internship programs. Internship programs are a great opportunity to learn, and to start building your career. Some of those programs are paid, some are partially paid, some of them just offer you knowledge and experience. Still not a bad deal, although you should try and negotiate some compensation for your hard work! Of course, you can’t show up to them without any programming and math knowledge, so you better come prepared.
3. Last, but not least: Learn how to learn!
You may have found the course that best fits your skills and availability, but you need to learn how to get the most out of it. As already mentioned, there are periods of stagnation in learning, and they are not your friends.
I can tell you what worked for me, but that doesn’t mean it will work for you – you have to find your own way of making progress in learning. We are all different and you have to know yourself in order to know other things. My problem with learning is I lose attention quickly and I procrastinate when I find myself unable to solve a problem within a minute.
I thought about it a lot, and I figured out that the best method for me to learn is the spiral method. There’s a “spiral method” term in education, but my spiral method differs a bit: I take one course (or start listening to one video tutorial series), and I get the basics of the subject. The course I’m watching offers more than basics, but I just get the basics, with an “I will get to it later” attitude. Then I take some other, a bit different course and learn the basics there, but this time I achieve a bit more than I did with the first one. After three or so courses, I return to the first one, for the second round. And I see my progress – I now understand a bit more than I did when first listening to it.
Again, this is what works for me. It may not be ideal, but for me personally, it may be the best way to learn.
One more thing about learning I found out – learning by doing is way better than learning by watching someone else do something. Even if a course isn’t interactive, open that notepad* and write your own code.
Find a problem to solve, maybe a non-profit project to work on, don’t be a passive learner. Which problem should you solve? YOUR PROBLEM! You are less likely to lose motivation and will to learn if you are working on a problem that affects you. Good luck!
I will update this article soon, and give you more links and study materials, but for now, take a look at the links above. I’m sure you will make good use of them.
Feel free to share your thoughts about learning! Which method suits you the best? What made you learn about ML/Ai in the first place?
Leave a comment below and make sure to subscribe to this blog to be informed as soon as I publish something.
*While notepad is awesome and supercool, it’s better to use Visual Studio Code! But that’s just my opinion, perhaps nothing can beat the tidiness of notepad!
If you want to help Futuristicon, you can send a cup of crypto coffee: