It has been 3 years since I have steered my interests towards Machine Learning. I had just graduated from college with a Bachelor of Engineering in Electronics and Communication Engineering. Which is, other way of saying that I was:

- a toddler in programming.
- little / no knowledge of algorithms.
- studied engineering math, but it was rusty.
- no knowledge of modern optimization.
- zero knowledge of statistical inference.

I think, most of it is true for many engineering graduates (especially, in India !). Unless, you studied mathematics and computing for undergrad.

Lucky for me, I had a great mentor and lot of online materials on these topics. This post will list many such materials I found useful, while I was learning it the hard way !

All the courses that I’m listing below have homework assignments. Make sure you work through each one of them.

**1. Learn Python**

If you are new to programming, I recommend that you learn python. It’s an easy language to learn and lot of courses that I’ll suggest in this post use python in their assignments. You need to be able to get things done, not just learn the syntax .

Here are few excellent resources to learn python:

- Google’s Python Class – This is a short course. But teaches you all you need to know to code up something quick.
- Introduction to Computer Science – This is a 3 week long course. If you have never coded in any language before, you may want to take this course instead.

**2. Learn / Brush up your Multivariate Calculus**

Every Machine Learning algorithm requires optimization. Foundation for which is a solid knowledge of Multivariate Calculus and Linear Algebra. I love this course, if you like Math, I’m sure you will too !

If you have not taken any calculus before, then you may want to consider taking Calculus One.

** 3. Learn / Brush up Linear Algebra**

~~We all know how to multiply matrices, take inverses and calculate determinants. To understand Machine Learning algorithms, that’s not enough ! You need sound understanding of geometric interpretations of these operations. Prof. Gilbert Strang lectures are an excellent resource to learn Linear Algebra the right way.~~

**4. Take a course in probability theory and statistical inference**

It is vital to understand probability theory well, to understand why any machine learning algorithms work ! I haven’t taken this version of the course. But the contents of the course below look very relevant.

**5. Take a basic course in Algorithms**

Solid understanding of algorithms is essential to any computational discipline. Prof. Tim Roughgarden has an excellent introductory course on the topic.

**6. Take basic machine learning course**

Now, you are ready to tackle 2 most basic machine learning courses available online.

- Introduction to Artificial Intelligence – Gives a broader view of the field of artificial intelligence.
- Machine Learning – An excellent course, thought by Prof. Andrew Ng. You need to learn MATLAB / Octave for programming assignments.

Now, you can participate on Kaggle after learning scikits-learn.

Just with the skills you have learnt so far, you may be able to land a handsome paying job with the sexy title “Data Scientist” ! You can impress your cocktail party friends!

But, you have a long way to go ! You are nowhere near calling yourself **“an expert”** in Machine Learning. You won’t be able to pick a paper from ICML / NIPS conference and understand it !

If you want to separate yourself from the crowd ! If you want to be able to understand, implement and may be some day suggest an improvement to advances in Machine Learning read my 2nd post on the same topic !

Like Prof. Peter Norvig says “Teach yourself programming in 10 years”, if you want to be a world class expert, you need to learn more than syntax !

Great Article, Do you also know make a similar list for Data Sc. and Big Data Hadoop ecosystem?

Your goal is to become a Machine Learning Engineer or a Data Scientists? What is the connection between Machine Learning, Data Scientists, and Data Science?

Thanks

Rightly pointed out. My goal is to become and Machine Learning Engineer. Not Data Scientist.

Do you have a road map to “Teach yourself Data Scientists the hard way”?

Thanks

May be when I find some more time.

Reblogged this on Mindprinter and commented:

The hard way is always the better way

Thanks Darshan. Good info.

Thanks a lot!

Hi! The info seems really nice and relevant. Out of curiousity how far are you in the learning track?

My goal is to become a data scientist. What are the technologies and the things must learn to be a data scientist? How is machine learning related to data science?

In order to become that, you will have to understand the concepts of probability, distributions, concept of likelihood, various sampling procedures. For programming, you will have to understand MATLAB and tool boxes. Understand various methods such as regression, over fitting etc.

Thanks for such a detailed post but I am stuck at Multivariable Calculus, it seems that they have put down Mutivariable Calculus by Jim Fowler, it can be found nowhere. Is there any other similar course that you can suggest?

Reblogged this on Discovering Python & R — The Lingua Francas of Data Science and commented:

This formula is kick-ass!

I did not think any of this is “HARD”. Pretty basic but to get a job only on this much i think is not that easy…

good info!!

I’m currently studying in the field of electronics and informatics and I will soon graduate college with a degree in Bachelor of Engineering in Electronics and Communication Engineering. Are you taking CS for masters? If it’s ok with you, can you tell me how you got accepted?