Bridge the gap between novice and professional.
You’ve completed a basic Python programming tutorial or finished Al Sweigart’s best selling Automate the Boring Stuff with Python. What’s the next step toward becoming a capable, confident software developer?
Welcome to Beyond the Basic Stuff with Python. More than a mere collection of advanced syntax and masterful tips for writing clean code, this book will teach you how to advance your Python programming skills by using the command line and other professional tools like code formatters, type checkers, linters, and version control. Sweigart takes you through best practices for setting up your development environment, naming variables, and improving readability, then tackles documentation, organization and performance measurement, as well as object-oriented design and the Big-O algorithm analysis commonly used in coding interviews. The skills you learn will boost your ability to program—not just in Python but in any language.
- Coding style, and how to use Python’s Black auto-formatting tool for cleaner code
- Common sources of bugs, and how to detect them with static analyzers
- How to structure the files in your code projects with the Cookiecutter template tool
- Functional programming techniques like lambda and higher-order functions
- How to profile the speed of your code with Python’s built-in timeit and cProfile modules
- The computer science behind Big-O algorithm analysis
- How to make your comments and docstrings informative, and how often to write them
- How to create classes in object-oriented programming, and why they’re used to organize code
Toward the end of the book you’ll read a detailed source-code breakdown of two classic command-line games, the Tower of Hanoi (a logic puzzle) and Four-in-a-Row (a two-player tile-dropping game), and a breakdown of how their code follows the book’s best practices. You’ll test your skills by implementing the program yourself.
Of course, no single book can make you a professional software developer. But Beyond the Basic Stuff with Python will get you further down that path and make you a better programmer in the process as you learn to write readable code that’s easy to debug and perfectly Pythonic.
Al Sweigart is a celebrated software developer, creator of a wildly popular Udemy Python course, and a programming teacher. A fellow at the Python Software Foundation, Sweigart is also the author of three other Python books with No Starch Press, including the worldwide bestseller Automate the Boring Stuff with Python.
Table of Contents
PART 1: Getting Started
Chapter 1: Dealing with Errors and Asking for Help
Chapter 2: Environment Setup and the Command Line
PART 2: Best Practices, Tools, And Techniques
Chapter 3: Code Formatting with Black
Chapter 4: Choosing Understandable Names
Chapter 5: Finding Code Smells
Chapter 6: Writing Pythonic Code
Chapter 7: Programming Jargon
Chapter 8: Common Python Gotchas
Chapter 9: Esoteric Python Oddities . . .
Chapter 10: Writing Effective Functions
Chapter 11: Comments, Docstrings, and Type Hints
Chapter 12: Organizing Your Code Projects with Git
Chapter 13: Measuring Performance and Big O Algorithm Analysis
Chapter 14: Practice Projects
PART 3: Object-oriented Python
Chapter 15: Object-Oriented Programming and Classes
Chapter 16: Object-Oriented Programming and Inheritance
Chapter 17: Pythonic OOP: Properties and Dunder Methods
"My early Python programs work but could be improved massively with what Al writes about . . . a small goldmine of knowledge that beginners, intermediates and probably even advanced programmers will benefit from."
"This is the kind of book every python developer can use... I cannot recommend Beyond the Basic Stuff with Python enough for every person who wants to learn fundamentals surrounding coding and specifically coding in python."
- Ian Mizer, Atlanta Python Programmers Group
"A great new book . . . Sweigart focuses on three major subjects: common difficulties in getting started (seeking help, setting up a work environment); best practices, tools, and techniques; and using object-oriented Python. The second section is the largest in the book . . . but each section can be read on its own. The book is all the more useful for collecting together between one pair of covers material that you would typically dig up from multiple resources."
- Serdar Yegulalp, InfoWorld
Page xii: We changed "Part III" to "Part II"
Page xiii: We deleted the "Using the timeit Module to Measure Performance" line from the table of contents
Page 92-93: We deleted all content from "Using the timeit Module to Measure Performance"
Page 100: In the last code block, both instances of:
should now read:
Page 105: We deleted "You can use Python’s timeit module to quickly profile code runtime, which is always better than simply assuming some code runs faster."
Page 123: We added a space between "the" and "code" in the first paragraph following "Block vs. Clause vs. Body"
Page 128: We changed
description in the code block to