# Recommended Reading

None of this is required. It is here for the weeks when you want to go past what the session covered, and it grows as the semester goes.

The course spends its time on the part an agent cannot do for you: deciding what question to ask, and knowing whether the answer that came back is right. Most of what follows is about that part. The first section is for when you want more of the language itself.

## Learning Python itself

The best Python teacher you have is AI, and [Babson already paid for yours](/guides/babson-ai-key/). It answers your question at the moment you have it, however many times you ask. No book does that.

A book or a website earns a place here by doing something AI does not.

### A sequence somebody else chose

AI answers the question you ask it. It has no way to raise the thing you never thought to ask, so a path built only out of your own questions has holes you cannot see. A book has an order, and somebody chose that order on purpose.

- [Think Python, 3rd edition](https://greenteapress.com/wp/think-python-3rd-edition/) Allen Downey, free to read online. The whole book is Jupyter notebooks, so you can run every example on the page you are reading it on. Each chapter also names what to ask AI about the material it just covered.
- [Automate the Boring Stuff with Python, 3rd edition](https://automatetheboringstuff.com/) Al Sweigart, free to read online. Every chapter solves a job somebody has, such as renaming a thousand files or pulling one number out of a hundred spreadsheets.
- [Python Crash Course, 3rd edition](https://nostarch.com/python-crash-course-3rd-edition) Eric Matthes, paid. The most conventional of the three, and the one to buy if you want a book on the desk. A fourth edition written around AI coding tools arrives in March 2027.

### Problems you did not write

You cannot test yourself with problems you invented, because you already know what they were testing.

- [Exercism](https://exercism.org/tracks/python) Free, with 146 Python exercises grouped by concept. Volunteers will read your solution and tell you how to write it more like Python. Start here if you want the practice to be about the language.
- [Python Programming Exercises, Gently Explained](https://inventwithpython.com/pythongently/) Al Sweigart again, free. Short problems with the hints written out.

The rest are puzzles. They are here because they are fun.

- [Advent of Code](https://adventofcode.com/) A puzzle a day through December, in two parts, with a story running through them. The best known of these by a wide margin.
- [Everybody Codes](https://everybody.codes/) Built on the same idea and organized into quests, each in three parts that get harder.
- [Project Euler](https://projecteuler.net/) Math problems that need a program to answer. The early ones are approachable and the later ones need real number theory.
- [HackerRank](https://www.hackerrank.com/domains/python) Graded Python problems, in the format many technical interviews copy.
- [The Python Challenge](https://www.pythonchallenge.com/) A riddle site where each answer unlocks the next page. Old, and still working.

### Watching it run

- [Python Tutor](https://pythontutor.com/) Paste in a short program and step through it a line at a time, with every variable drawn on screen as it changes. AI can tell you what your code does. This shows you the state at every step.

## Numbers that are wrong

- [Calling Bullshit](https://callingbullshit.org/) A university course, published free, on spotting bad quantitative claims. The case studies are short and most of them are about data that was real and conclusions that were not.
- [Tidy Data](https://vita.had.co.nz/papers/tidy-data.pdf) (Hadley Wickham, PDF) An academic paper that reads easily, and the clearest treatment anywhere of what one row of a table means. The idea we call grain in class is this paper's subject.

## SQL past the basics

- [Modern SQL](https://modern-sql.com/) Markus Winand on the parts of SQL most courses skip, window functions in particular. Short articles, each about one thing.
- [Use The Index, Luke](https://use-the-index-luke.com/) The same author on why a query is slow and what an index actually does. Free online, and worth it the first time a query takes 40 seconds.
- [DuckDB documentation](https://duckdb.org/docs/) The engine this course uses. The SQL section is unusually readable, and its list of what DuckDB adds to standard SQL will save you time.

## Working with AI

This space moves quickly. Follow the writers; individual posts age fast.

- [Simon Willison](https://simonwillison.net/) Daily, hands-on notes from someone who builds with these models and writes down what actually happened, including the failures.
- [Ethan Mollick: One Useful Thing](https://www.oneusefulthing.org/) A Wharton professor on what AI does to real work and real organizations. The closest thing on this list to the room you will be in after this course.

## Asking and explaining

- [Julia Evans: How to Ask Good Questions](https://jvns.ca/blog/good-questions/) Practical, warm, and directly useful in a course where you will be stuck in public.
- [Storytelling with Data](https://www.storytellingwithdata.com/blog) Cole Nussbaumer Knaflic on presenting a number to somebody who has to act on it. Read a few posts before you write the final memo.

---

If you find a short read that changed how you look at a number, bring it to a lightning talk. It may end up on this page.
