O'Reilly logo
live online training icon Live Online training

Python for Applications: Beyond Scripts

Everything you need to know to get started

Aaron Maxwell

Compared to small scripts, large-scale applications need thoughtfully organized modules, expressive logging, intelligent error management, and a different approach. Otherwise, the whole effort collapses from its crushing complexity.

Join expert Pythonista Aaron Maxwell to explore modern Python’s key features for successful, graceful, and effective development of large-scale software. Over two three-hour sessions, you'll learn how to write and modify larger Python applications quickly and efficiently - without getting bogged down in those complex, baffling bugs that take all day to fix. You'll learn how to leverage Python’s rich error model; keys for leveraging test-driven development and test automation; and how to intelligently organize larger code bases so that they can be written in parallel by several engineers at once (without anyone stepping on anyone's toes).

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

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

  • The different needs of robust, mission-critical Python applications compared to one-shot scripts
  • How to successfully develop increasingly complex software so it doesn't collapse under its own complexity
  • Principles of writing Python for easier automation and code reuse
  • Python’s mechanisms for error management and delegation of error handling
  • The techniques, principles, and best practices for useful logging

And you’ll be able to:

  • Leverage Pythonic features to improve reliability, maintainability, and robustness
  • Organize your codebase so it can be worked on by a team of developers in parallel
  • Write more powerful Python code, packaged in ways more easily reusable by other developers
  • Use higher-level abstractions to produce reusable code and reduce complexity and errors
  • 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’re a web developer ready to take on more complex and extensive web applications.
  • You’re a QA engineer who wants to develop robust, higher-level test automation frameworks.
  • You’re a data scientist ready to build sophisticated and reliable data engineering applications.
  • You’re a tech lead or engineering manager who wants to improve code reuse and organization within your team and increase the velocity of your sprints.
  • You want to improve your Python knowledge to ace an interview and land that dream job.
  • You’re a software engineer who cares about robust, reliable, and maintainable code and wants to see a wider positive impact from your coding efforts.


  • Experience writing Python scripts and small programs for practical work situations
  • Basic mastery of Python data structures (like dicts and lists), writing simple classes in Python, and object-oriented programming principles
  • Experience writing mid-sized and larger applications in any language (useful but not required)

Required materials and setup:

A machine with Python 3.5+ (recommended) or Python 2.7 installed

Recommended Preparation:

Introduction to Python

Intermediate Python: Introduction

Further Learning:

Python Cookbook, 3rd edition (book)

Become Fluent in Python (learning path)

About your instructor


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

Day 1

  • Introduction & course logistics
  • Python's Logging System
  • Logging Design Patterns
  • Python's Exception Model
  • Exception Patterns & Anti-patterns
  • Wrap-up and Q&A

Day 2

  • Introduction
  • Module organization
  • How to evolve reusable Python modules as requirements change
  • Automated Tests and Unit Tests
  • Test-driven development
  • Building command-line programs
  • Wrap-up and Q&A

THROUGHOUT: Live Q&A and in-class coding exercises.