Back to index
OtherAround 550 pages, six to ten weeks including the three projects·Around $45 for print with the ebook bundled

Python Crash Course, Third Edition (Eric Matthes)

4.6

The best structured introduction to Python in print. The first half teaches the language properly and the second half makes you build a game, a set of data visualisations and a deployed web app, which is where the confidence actually comes from.

What We Liked

  • The two part structure works, and the projects are large enough to feel like real software
  • Teaches testing, virtual environments and error handling, which most beginner books skip
  • The data visualisation project is a genuine bridge towards analysis and machine learning work
  • Exercises after every short section, so you cannot passively read your way through
  • The third edition modernised the tooling, including the deployment target for the web project

What Could Be Better

  • Slower and more conventional than Automate the Boring Stuff for the first two hundred pages
  • The Django project dates fastest and deployment steps drift with the hosting provider
  • Object oriented coverage is present but shallow for anybody going into engineering
  • Nothing on pandas, which is the obvious next thing a data oriented reader needs
  • The pygame project is fun and the least relevant part if you are here for AI

Detailed review

If Automate the Boring Stuff is the book that convinces people programming is worth learning, Python Crash Course is the one that teaches them to program. The two get recommended in the same breath and they are doing quite different jobs. Matthes wrote a textbook, in the good sense, and the discipline shows in how carefully the first half is sequenced. Variables, lists, dictionaries, loops, conditionals, functions, classes, files, exceptions and testing, each introduced in short sections with exercises attached, each building on what came before without gaps.

It is not thrilling and it does not try to be. It is thorough, and by page two hundred and fifty you can actually write Python rather than assemble it from remembered snippets. The inclusion of testing is worth flagging. Almost no beginner book covers writing tests, on the theory that beginners will not appreciate why.

Matthes puts it in anyway, keeps it simple with unittest, and the result is that readers pick up a habit most self taught programmers acquire years late or never. The same goes for virtual environments, which get explained rather than assumed. These are exactly the small professional practices that separate somebody who has read a book from somebody who has been taught. The second half is what people remember.

Three projects, each substantial. Alien Invasion is a full arcade game in pygame, built up over several chapters with proper refactoring along the way. The data visualisation project works through matplotlib and Plotly, pulls real data from APIs and CSV files, and produces charts you would not be embarrassed to show. The web project builds a learning journal in Django, with user accounts and authorisation, and deploys it.

Each takes real hours and each ends with something that runs. That last part matters more than it sounds, because the transition from following exercises to building something without a script is where most self teachers stall, and this book walks you across it three times. For anyone on this site because of AI, the middle project is the reason to pick this over the alternatives. It is the first place many readers meet the actual working pattern of data work, which is fetching messy data, reshaping it, and rendering it into something a human can interpret.

Nothing in it is machine learning, but the habits transfer directly, and the leap into a numpy and pandas course afterwards is much smaller than it would be from a pure scripting background. The complaints are real but modest. The first half is slower than Sweigart and less immediately rewarding, so people who need early wins sometimes bounce off it. The Django project ages fastest, because web frameworks and hosting providers move independently of the book, and readers regularly hit friction in the deployment chapter.

The third edition updated this and it will drift again. Anybody who has spent time deploying anything will shrug and work around it. A true beginner may not, and that is worth knowing before you start. The object oriented material is present and correct but light, which is fine for the audience and thin if you are aiming at software engineering.

And there is no pandas, which is the single most requested addition and understandably out of scope for a book that is already five hundred and fifty pages. You will need another resource immediately after, and the obvious one is McKinney. The pygame project splits opinion. It is genuinely well constructed and it teaches state management, event loops and incremental refactoring better than a dry example would.

It is also completely irrelevant to a data or AI career, and readers short on time skip it without much loss. I would still do it, because the refactoring passes in those chapters teach something the other projects do not. My 4.6 puts this level with Automate the Boring Stuff and slightly ahead of it for anybody with a technical destination in mind. Sweigart makes you want to program.

Matthes makes you able to. The ideal path is to read the free one first to find out whether you enjoy this, then buy this one to build the foundation properly.

[ final ]

The verdict.

Buy this if you want a proper foundation rather than a bag of scripts. The visualisation project alone justifies it for anybody planning to do data work.