O'Reilly logo
live online training icon Live Online training

Python: Beyond the Basics

Python Beyond the Basics: Best Practices for Writing Expressive, Scalable, and Maintainable Code

Aaron Maxwell

No matter how much Python you already know, there’s always more that you can make it do. In this course, you’ll join expert Pythonista Aaron Maxwell for a hands-on, in-depth exploration of Python for users who want to take their Python skills up a level. You’ll learn to write code that’s simultaneously more concise, readable, powerful, and highly maintainable, and develop a deeper understanding of Python’s object system.

The course uses a mix of lectures, ebook downloads, Q&A sessions, and realistic code examples. Aaron includes simple quizzes throughout the course to track your progress, and provides hands-on lab exercises that you’ll complete by passing provided unit tests.

What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • How to write more maintainable, readable, and expressive Python
  • The capabilities of Python’s object system
  • How to create more responsive and scalable Python software

And you’ll be able to:

  • Write more powerful Python code
  • Write Python code that’s concise, readable, and highly maintainable
  • Advise your teammates on potently powerful Python patterns and crucial best practices

This training course is for you because...

  • You are a web developer using Python frameworks
  • You’re a QA engineer using Python for scripting and writing tests
  • You’re a data scientist using Python and you want to get more done, faster
  • You’re a software engineer aiming to be more productive, and write more robust, reliable, maintainable Python code
  • You want to improve your Python knowledge to ace an interview or land that dream job
  • You feel you’ll benefit from deeply understanding the Python language and ecosystem, and how to use it to its fullest potential


  • Ability to write simple Python programs using lists and dictionaries
  • Familiarity with basic types (int, str, float, etc.) and defining classes
  • Experience using modules in the standard library

To fully participate in this hands-on class, install either Python 3 (3.4 or later); or Python 2.7. Python 3 is recommended. You will be able to do the programming exercises in either version. Since almost everything in the course applies to both versions, the class will be taught primarily using 3, pointing out where 2.7 is different as we go along. (Note that Python 3.x safely installs alongside Python 2, with no conflict; for example, the interpreter is named "python3" instead of "python".)

You can use any Python-aware IDE or editor; Pycharm is one good choice. You should also be able to open a Python interactive interpreter on the command line, and run simple programs ("python3 helloworld.py") either on the command line or in your IDE. On Windows, you will need to set your system path: http://goo.gl/LJJT4Z


Recommended Preparation:

About your instructor

  • Aaron Maxwell is author of the book "Powerful Python: The Most Impactful Patterns, Features, and Development Strategies Modern Python Provides." As a software engineer, he has worked in devops, test automation, and machine learning, and now divides his time between coding, writing, and teaching


The timeframes are only estimates and may vary according to how the class is progressing

Day 1

Pythonic Scalability

  • Generators For Efficient, Scalable, Well-Encapsulated Code
  • Demystifying Python’s Iterator Protocol
  • Understanding Views, Iterators, and Iterables
  • Patterns for Scalable Composability

Rich And Expressive Data Structures

  • List Comprehensions For Expressive, Readable List Creation
  • Comprehensions of dicts, sets, and more


Rich And Expressive Data Structures, Part 2

Generator Expressions

Quick Review of Python’s Object Syntax

Special Features of the Python Object Model

  • Properties For Clean Design and Refactoring
  • Special Methods

Python OOP Patterns

  • The Factory Pattern
  • The Observer Pattern
  • How OOP in Python is fundamentally different from other languages