Skip to main content


This is a collection of very good (from my point of view) material to start with machine learning.

I did this because although Internet is an amazing thing where you can find tons of material, we have to admit that sometimes it can be very difficult to tell apart good resources from bad ones.

Most of the material is listed in order of proficiency (or difficulty) in a specific subject, so the first is generally the recommended starting point.


  • Basic programming skills
  • Basic knowledge about probability and statistics
  • Basic knowledge about calculus



  • Statistics by Freedman
  • Data Science from Scratch by Joel Grus

Machine Learning

  • Introduction to Statistical Learning by Tibshirani
  • Hands-On Machine Learning with Scikit-Learn and TensorFlow by Aurélien Géron
  • The Elements of Statistical Learning by Tibshirani
  • Pattern Recognition and Machine Learning by Bishop
  • Machine Learning: A Probabilistic Perspective by Murphy (this is advanced)

Deep Learning

  • Deep Learning with Python by Chollet (start with this one)
  • Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville

Machine Learning applied to Cybersecurity

  • Machine Learning for Penetration Testing by Chiheb Chebbi
  • Machine Learning and Security: Protecting Systems with Data and Algorithms by Chio and Freeman
  • Introduction to Machine Learning with Applications in Information Security by Mark Stamp

MOOC (Online Courses)

  • Machine Learning by Andrew Ng on Coursera or Youtube
  • Deep Learning by Andrew Ng (yeah I like him) on Coursera or Youtube
  • Statistics with R by Duke University
  • Advanced Machine Learning by Higher School of Economics
  • Applied Data Science with Python (although the grading system is full of bug and it becomes stressing to submit solutions (this is my point of view), at the moment July 2018.