Which Green Tea Press Book Should I Start With?

Updated

Pick by your goal: Think Python if you are new to programming, Elements of Data Science if you want data science without prior coding, Think Stats or Think Bayes if you already write some Python and want statistics, and the specialized titles (Think DSP, Think Complexity, Astronomical Data in Python, Data Structures and Information Retrieval in Python) if you have a specific subject in mind. All of these are published by Green Tea Press under free licenses that let you copy, distribute, and modify the text, and they are available in a variety of electronic formats, with some also sold in hard copy.

Start here if you are new to programming

Think Python: How to Think Like a Computer Scientist is described as an introduction to programming using Python, "one of the best programming languages for beginners." The third edition includes guidance for learning to program with virtual assistants like ChatGPT. The second edition is still available on the site if you prefer it or your course uses it.

Choose this if you have never programmed and want a general foundation before specializing.

Start here if you want data science but have no coding background

Elements of Data Science is an introduction to data science designed for people with no programming experience. It presents a small, powerful subset of Python meant to let you do real work in data science as quickly as possible, and it includes Jupyter notebooks where you can read the text, run the code, and work on exercises.

Choose this over Think Python if your end goal is analyzing data rather than general programming, and you would rather learn a focused slice of Python than the whole language.

If you already write some Python and want statistics

Two books split this ground:

  • Think Stats: Exploratory Data Analysis — an introduction to exploratory data analysis that emphasizes simple computational tools for exploring real data. It includes regression, time series analysis, and survival analysis, and presents basic use of NumPy, SciPy, Pandas, and StatsModels.
  • Think Bayes: Bayesian Statistics in Python — an introduction to Bayesian statistics using simple Python programs instead of complicated math.

Choose Think Stats if you want to describe and explore data you already have. Choose Think Bayes if you specifically want the Bayesian approach and are comfortable enough with Python that the programming will not slow you down.

If you have a specific subject in mind

Book Subject Notes from the site
Data Structures and Information Retrieval in Python Data structures Organized around building a search engine as the motivating example
Astronomical Data in Python Working with astronomical data Covers SQL queries with complex joins, Astropy and Pandas, coordinates and quantities with units, and visualizing data; includes Jupyter notebooks
Think DSP: Digital Signal Processing in Python Digital signal processing Applications to sound and image processing
Think Complexity 2e: Exploring Complexity Science with Python Complexity science Includes small-world graphs and scale-free topics

How to access and use the books

The books are available under free licenses that allow you to copy and distribute the text, and you are also free to modify it, so you can adapt the books to different needs and help develop new material. They come in a variety of electronic formats, and some are also for sale in hard copy. If you are enjoying the free versions, the site suggests considering buying the author a coffee.

A practical way to decide: open the free electronic version of your top candidate, check whether the first chapter matches your current level, and only then commit. If the first chapter assumes more Python than you have, step back one title — for example, from Think Bayes to Think Python, or from Think Stats to Elements of Data Science.