Leading With Data· a Bicycle Guide

Partial book profile

Data Science from Scratch: First Principles with Python

A hands-on introduction to data science that teaches the core concepts, algorithms, and mathematics by implementing everything from scratch in Python rather than relying on existing libraries.

The full book profile is not available yet.

Get the book →

What it’s about

Data Science from Scratch teaches you data science by having you build the tools and algorithms yourself, from the ground up, in clear and readable Python. Rather than treating libraries like NumPy, scikit-learn, and pandas as magic black boxes, Joel Grus walks you through implementing linear algebra, statistics, probability, gradient descent, machine learning models, neural networks, deep learning, clustering, NLP, network analysis, and recommender systems by hand. Framed around the fictional 'DataSciencester' social network, the book grounds abstract concepts in concrete problems while developing the hacking skills and mathematical intuition that are at the core of doing real data science. By the end you understand not just how to use data science tools, but how and why they work.

The through-line

Who it’s for
An aspiring data scientist with some mathematical aptitude and programming skill who wants to genuinely understand how data science works, not just call library functions.
The problem
They need to learn the core algorithms, mathematics, and tools of data science well enough to actually do the work. They feel like an underachiever or impostor who can use libraries but doesn't truly understand what's happening under the hood.
The plan
  1. Get comfortable with Python and the language features that matter for data science.
  2. Build a foundation in linear algebra, statistics, and probability.
  3. Learn to get, clean, explore, and manipulate real data.
  4. Implement core machine learning models and evaluation techniques from scratch.
  5. Advance to neural networks, deep learning, clustering, NLP, and recommender systems.
The payoff
You possess a solid understanding of the fundamentals of data science. · You can build, train, and evaluate models while understanding how they work. · You can confidently use production libraries because you know what they do under the hood.

See our guide

Related profiles we’ve built

Additional reading

  • Python for Data Analysis · Wes McKinney

    Recommended as the best way to learn the pandas library, which is the primary Python tool for cleaning, munging, and manipulating data in real-world applications.

  • The Elements of Statistical Learning · Jerome H. Friedman, Robert Tibshirani, and Trevor Hastie

    Cited as a canonical (though math-heavy) textbook for gaining a deeper understanding of machine learning concepts.

  • Introduction to Probability · Charles M. Grinstead and J. Laurie Snell

    Recommended as a good, freely available textbook for readers who want to build a stronger foundation in probability theory.

  • scikit-learn documentation · N/A

    The book positions scikit-learn as the go-to library for production machine learning in Python, and its documentation is highlighted as a key resource for practical application.

  • Deep Learning · Ian Goodfellow, Yoshua Bengio, and Aaron Courville

    Presented as the canonical textbook on deep learning, for readers who want a mathematically rigorous and comprehensive understanding of the field.

  • pandas documentation · N/A

    The book repeatedly contrasts its from-scratch data manipulation with the more efficient and powerful methods available in the pandas library, making its documentation essential for practical work.

Featured in these guides

Co-cited books