Advanced Python Mastery
Upcoming Course Dates (Chicago):
- Breakfast and lunch
- Course materials
- Python Cookbook, 3rd Ed.
Other Courses | FAQ
This is a no-holds barred course that aims to cover the entirety
of the core Python language. Major themes include
advanced data manipulation, object oriented programming,
metaprogramming, design tradeoffs, customization features, and knowing
how Python works under the hood.
This course is aimed at Python programmers who want to move beyond
the realm of small scripts into the land of libraries, frameworks, and
large applications. If you've used various frameworks and wondered
about their magic, this course will peel back the layers and explain
the mysteries. You'll walk away with a new awareness for what's possible
in your own programs.
Each course day consists of a mix of prepared presentation
and hands-on programming exercises. Plan to
spend at least 4-5 hours each day working on the exercises and
using Python. The course is fully supported by a 580-page
guidebook, exercise solutions, and materials to allow further review
and study upon course completion.
This course assumes a working knowledge of Python
programming. You should already know know to write and debug
programs and be generally familiar with core language features such as
functions, classes, and modules. Some prior background with
object-oriented programming is also advised.
- Python Review (Optional).
An accelerated review of the Python language focused on features
that you should already know. Covers the basic language statements, program
structure, common datatypes, functions, exceptions, modules, and classes.
- Idiomatic Data Handling. An in-depth look at data handling
and data structures. A major focus of this section is on Python's
built-in container types (tuples, lists, sets, dicts, etc.) with an
eye towards studying their performance properties and resource
use. Also covers important programming data-processing idioms such as
the use of list comprehensions and generator expressions.
- Classes and Objects.
A review of the class statement and how to define new objects in Python.
A major focus is on how to properly encapsulate data,
and when to use features such as static methods, class methods, and properties.
Concludes with a review of some common object-oriented programming techniques
and advanced topics including mixin classes and weak references.
- Inside Python Objects. A look at how the
Python object system is put together under the covers. Major topics
include instance and class representation, attribute binding, inheritance,
attribute access methods, and the descriptor protocol.
- Testing, Logging, and Debugging.
Learn how to test and debug your code. Covers the doctest, unittest, and logging modules. Information on assertions, optimized run mode, the debugger,
and profiler is also presented.
- Working with Code.
A detailed look at more advanced aspects of Python functions.
Topics include variable argument functions, anonymous functions (lambda),
scoping rules, nested functions, function introspection, closures, delayed-evaluation, and partial function application.
Finally understand the secret techniques used by the Python
framework builders. This section covers features that allow
you to manipulate code. Topics include decorators, class decorators,
context managers, and metaclasses.
- Iterators, Generators, and Coroutines.
Covers the iteration protocol, generator functions, and coroutines. A
major focus of this section is on applying generators and coroutines to
problems in data processing. You will learn how to apply these features
to large data files and data streams.
- Modules and Packages.
This section covers details related to using modules and packages to organize larger programs.
A major focus is understanding the underlying behavior of the import statement and some
of the more tricky issues related to organizing packages.
About the Instructor
The course is taught by David Beazley, author of the Python
Essential Reference, 4th Edition (Addison Wesley) and Python
Cookbook, 3rd Edition (O'Reilly Media). David has been actively
involved with the Python community since 1996 and was one of the early
pioneers of using Python with scientific software. From 1998-2005, he
was an assistant professor in the Department of Computer Science at
the University of Chicago.
On-site and Virtual Training
This course is available for on-site or virtual training of your team. More
information about on-site training can be found here.