Machine Learning is one of the fastest growing fields. Top tech companies like Google, Facebook, Amazon, Apple, and Microsoft are investing heavily in Machine Learning. For students, it is a great opportunity because not only does it open new avenues for learning but also it creates a lot of high-paying jobs and internships which the students can grab.
In this answer, I’ve first talked about the basics of programming and prerequisites for ML and later mentioned some resources to pick up ML as a beginner.
Preparing the basics of Computer Science and Programming
It is highly recommended that you are clear with the basics of Computer Science and Programming before you jump into Machine Learning. A lot of students start to learn advanced concepts without the preparation of the very basics of Computer Science. Such students eventually face difficulties because the implementation of Machine Learning algorithms requires great programming skills. Not being fluent in Programming will make you feel handicapped while implementing Machine Learning algorithms.
Therefore, before you dirty your hands with Machine Learning, make sure to revise/prepare the following concepts:
- Basics of Programming (the CS101 stuff): make sure that you are comfortable with at least 1 well-known programming language. It doesn’t matter if it is C or C++ or Java or Python or something else. If your concepts are right, it is easy to pick up any new programming language. Revise the fundamentals of loops, variables, constants, functions, classes and objects.
- Calculus: Machine Learning involves a lot of concepts from multivariate Calculus. Not knowing these concepts would make you feel that “ML is a black box” - which obviously you don’t want. Therefore, you should revise Calculus thoroughly. In particular, make sure you are familiar with the concepts of Differential Calculus. Coursera’s course on is excellent for picking up Calculus.
- Linear Algebra: Linear Algebra is heavily used in Machine Learning. Some algorithms like PCA involve heavy use of Eigenvalues and Eigenvectors. Most students take Linear Algebra lightly and skip the advanced portions. They eventually face challenges in understanding ML algorithms. Coursera’s course on is great.
- Probability and Statistics: You should be absolutely comfortable with the theory of Probability before you start Machine Learning. Probability and Statistics is something you should definitely give a try.
For Machine Learning, it is highly recommended that you use Python as the programming language. Python has excellent libraries for Machine Learning and it integrates well with quite a few web-frameworks. For learning Python, you can takecourse offered by Udacity.
Once the basics are in place, you would find it far easier to understand the concepts of Machine Learning. Having done the above, you’d be in a position to start with the core ML concepts.
Picking up the basics of Machine Learning
By far, the best known introductory course on Machine Learning is. The course is an excellent mix of theory and programming and would give you a first-hand experience at ML. There is just 1 major drawback - the course uses Octave as the programming language which for all practical purposes is not used in the industry. Most companies, including startups, rather use Python for ML.
But that isn’t an issue. When taking Andrew Ng’s course, you can parallelly implement the algorithms in Python as well. To start off with, you can use the Sklearn library in Python which is one of the easiest to learn and implement. Sklearn offers readymade implementations of a large number of Machine Learning algorithms.
Once you are through with this, go for some great Machine Learning projects. For this, take Eduonix’s course on Learn Machine Learning by Building Projects. The course is great for those who want to focus on applied Machine Learning rather than just the theory portion.
If you have sincerely followed this much, you would certainly be in a position to apply for Machine Learning internships and also, fresher-level Machine Learning and Data Science related jobs.