Even the best programmers make mistakes, and experienced programmer Mike Pirnat has made his share during 15+ years with Python. Some have been simple and silly; others were embarrassing and downright costly. In this O’Reilly report, he dissects some of his most memorable blunders, peeling them back layer-by-layer to reveal just what went wrong.

For example, you could install every third-party package that looks interesting and end up with a tangled mess where nothing works right. Or you could write a test that manages to break the build. Mike’s done both and so much more. By avoiding these missteps, you’ll be free to make truly significant mistakes—the ones that advance the art of programming.

Setup: the ills of an incautiously prepared environment

the ills of an incautiously prepared environment Silly things: trivial mistakes that waste a disproportionate amount of energy

trivial mistakes that waste a disproportionate amount of energy Style: poor stylistic decisions that impede readability

poor stylistic decisions that impede readability Structure: assembling code in ways that make change more difficult

assembling code in ways that make change more difficult Surprises: those shocking mysteries that only time can turn from OMG to LOL

Code examples are in Python 2, but still relevant for Python 3.