For the past few months, I have been learning machine learning and data science on a budget. Below are some of the resources which have helped me the most as I’ve studied. This list is particular to me and my studies, and your mileage may vary. But I hope you find something of use.

I placed a star by the item in each category which I most recommend.


  • 3Blue1Brown: Beautiful and simple math explanations. Good for big-picture ideas. Check out his Essence of Linear Algebra playlist. As of writing this, he has also started a series on neural networks.
  • Alexander Ihler: Detailed presentations on various machine learning concepts. Not an active channel, but the archive is excellent.
  • *Two Minute Papers: Simple and easy-to-understand distillations of research in ML, simulations, etc.
  • Siraj Raval: Various ML concepts covered. Energetic presenter for those days when you need it.
  • Sentdex: Extensive Python tutorials (including on machine learning).
  • Jake Vanderplas: Small channel. Contains simple data analysis walkthrough in Jupyter Notebooks



  • *Hands-On Machine Learning with Scikit-Learn and TensorFlow by Aurélien Geron (Amazon): Excellent overview of ML with scikit-learn. Best to be read once you know the basics of Python and some machine learning concepts.
  • Python for Data Analysis by Wes McKinney (Amazon): Clear and simple explanation of basic python data analysis with NumPy, Pandas, etc.
  • Introduction to Statistical Learning (Amazon, pdf).

Online courses:

  • *Jose Portilla’s Python for Data Science Bootcamp: Excellent for beginners (with some familiarity with Python). Walks students through the basics of using NumPy, seaborn, scikit-learn, etc.
  • Kirill Eremenko’s courses on Udemy.
  • Coursera also offers some courses that I think are good, but I prefer Udemy‘s interface and structure. A lot of people recommend Andrew Ng’s original ML course and his later Deep Learning Course on the Coursera platform. I found his courses to contain a lot of excellent content, but I don’t think I would use them as a starting point for the first introduction to machine learning.


  • *Kaggle: Many machine learning competitions and datasets. Friendly community with lots of example code.
  • Simple code-snippets for data science.
  • /r/MachineLearning:  Machine Learning community – news, discussions, tutorials, etc.
  • /r/DataScience: Data science community – news, discussions, tutorials, etc.
  • /r/DataIsBeautiful: Beautiful visualizations.

Learning path outlines:

  • *Learning Machine Learning (30 min podcast episode): A helpful overview from Chris Albon of how to approach learning machine learning.
  • Analytics Vihya 2017 DS Learning Path: A very long and exhaustive article. Is useful for some timing and structural elements.
  • Jose Portilla’s How to Become a Data Scientist: A helpful big-picture take on how to become a data scientist with some excellent resources and book recommendations.

GitHub Repositories:

  • Aurélien Geron: Machine Learning with scikit-learn explanation and examples
  • *Jose Portilla: Plentiful resources on Python, Machine Learning, etc.


Other resources, tools, and advice:


  • I don’t follow any particular blogs on a regular basis. But if you love blogs, rushter on GitHub made a massive curated list of data science blogs.


Misc. advice to beginners:

  • If possible, go to data science meetups in your area (
  • Data science boot camps post curriculums online. You can download these and use them to help structure your learning.
  • Talk to other people about what you are learning (in person or online – post on reddit or join a slack channel if no-one is nearby).
  • Try to do a little bit each day (or 5-6 days a week). Keeping yourself in the world of machine learning and data science can help.
  • Make your own blog or tutorials on what you are learning.
  • Follow various data scientists in the field on Twitter. You can start building your list with a simple google search. You’ll often find out about new developments, tools, or helpful resources through twitter.
  • Once you have your plan or know what you should study, focus on what you have to study next. It is very easy to get bogged down and not be able to make a decision. Just take the next step in a direction. Even if it is not the “optimal” next step, it is most likely a step you would need to take at some point in your studies.



Categories: Getting Started

Related Posts

Getting Started

Submit a Prediction to Kaggle for the First Time

This tutorial walks you through submitting a “.csv” file of predictions to Kaggle for the first time. Scoring and challenges: If you simply run the code below, your score will be fairly poor. I have Read more…

Getting Started

Walk-through: Implementing a Random Forest Classifier for the first time

This tutorial walks you through implementing scikit-learn’s Random Forest Classifier on the Iris training set. It demonstrates the use of a few other functions from scikit-learn such as train_test_split and classification_report. Note: you will not be Read more…

Getting Started

Installing Jupyter Notebooks using Anaconda

Step 1 – Download and Install Anaconda Go to: Click on the download button for the python 3 installer for your browser. Once the installer has downloaded, double-click on the installer and follow directions to Read more…