Thinking in Python by Bruce Eckel

⬅️ Back to Books

Thinking in Python by Bruce Eckel

AuthorBruce Eckel
Year2008-2026 (revived June 2026)
Pages47 chapters across 5 parts, free online
Read it ifyou already program and want to write Python like Python, not Java with colons

The web version at thinkinginpython.com reads fine. But I mainly read books on my ebook reader, and this is the part worth knowing: all I had to do was clone the source repo and run make epub to get a nicely formatted file.

git clone https://github.com/BruceEckel/ThinkingInPython && cd ThinkingInPython && make epub

It is a bit large at 7.4 MB, mostly because the cover image alone is 6 MB.

  1. The backstory is a lesson in itself. Eckel started this book in 2008 as a translation of his Java design-patterns material, then stalled, partly because he was losing faith in OOP itself. The patterns section now opens with a chapter called Rethinking Objects laying out those misgivings. The man who taught a generation to think in objects is publicly auditing the inheritance.

  2. The revival is transparent. In June 2026 he pointed Claude at the manuscript: everything brought up to Python 3.15, type annotations, standards checkers passing, then his PyCon talks and blog posts folded in. The README shows the edit history pass by pass, and three chapters are still flagged unfinished.

  3. This is not a beginner book. It targets experienced programmers, opens with a fast tour for people arriving from other languages, then goes straight to idioms.

  4. The core argument: most GoF patterns dissolve into language features. Where Java needed a class hierarchy for Iterator or Strategy, Python hands you iterators, generators, first-class functions, and decorators. What remains is shown explicitly, which is the useful half anyway.

  5. Modern techniques get real chapters, not appendix mentions: pattern matching, data classes as types, context managers, comprehensions, metaprogramming, concurrency. Each is tied to the problem it exists to solve.

  6. Static typing gets its own chapter, treated as the default way to write serious Python now, not an optional bolt-on.

  7. The last two parts go somewhere most Python books do not: functional foundations, error handling as values, effect management, generators, and statelessness in practice. These read like Eckel’s current thinking, fresh from conference talks, not recycled material.

  8. It is free and open. CC BY-NC-ND licensed, fully readable online, with all examples and exercise solutions in the repo, 1,300 commits and still moving.

Verdict: Excellent for intermediate developers. The unfinished chapters and visible AI-assisted editing seams mean you will hit rough edges late in the book. Read the Foundations and Techniques parts straight through, skim the patterns half if OOP history bores you, and treat the Effects part as a preview of where Python practice is heading. Read it online or build the epub; either way, it costs nothing but attention.

Related TMFNK Content

Crepi il lupo! 🐺