Programming fundamentals

Advanced Python: objects, concurrency, tests and performance

Write robust, efficient Python: decorators, generators, advanced OOP, threads, networking, tests and optimization.

Request this program
Duration
21 h · 3 days
Level
Intermediate
Format
On site · Remote · Blended
Max. group size
12 participants

Overview

This program deepens Python for developers who already master the basics: higher-order functions, generators, decorators, advanced object-oriented programming, concurrency, sockets, serialization, database access, tests and optimization. It also shows how to interface Python with other languages.

Who this program is for

  • Intermediate Python developers
  • Data engineers and back-end engineers
  • Teams industrializing scripts

Prerequisites

  • Regular practice of Python (functions, classes, modules)

Learning objectives

  • Use generators, decorators and higher-order functions
  • Apply advanced object-oriented programming
  • Write concurrent code with threads
  • Communicate over the network with sockets
  • Persist with JSON, pickle and databases
  • Test with unittest and pytest
  • Profile and optimize

Detailed curriculum

6 modules · 21 h · 3 days

Day 1
Advanced functions and generators3.5 h
50% theory · 50% practice
  • Higher-order functions
  • The collections module
  • Generators and iterators
  • Decorators
  • Introspection
Advanced object-oriented programming and concurrency3.5 h🛠 1 workshop
30% theory · 70% practice
  • Multiple inheritance and MRO
  • Abstract classes and descriptors
  • Metaclasses: principles
  • Threads, locks and semaphores
  • Thread pools
🛠 Hands-on workshops
Concurrency workshop1.5 h

Parallelize a data processing job.

✅ Deliverable : A measured concurrent script
Day 2
Networking and serialization3.5 h
50% theory · 50% practice
  • TCP and UDP sockets
  • Simple client and server
  • Serialization: JSON and pickle
  • Handling XML
  • Deserialization security
Databases3.5 h🛠 1 workshop
30% theory · 70% practice
  • SQLite and MySQL from Python
  • Prepared statements
  • Transactions
  • Introduction to ORMs
  • Organizing the data layer
🛠 Hands-on workshops
Data layer2 h

Write a reusable data access module.

✅ Deliverable : A persistence module
Day 3
Integration with other languages3.5 h
50% theory · 50% practice
  • Calling C code with ctypes or cffi
  • Modern bindings (pybind11)
  • Interoperability with Java
  • When to choose a native extension
  • Packaging
Testing and optimization3.5 h🛠 1 workshop
30% theory · 70% practice
  • unittest and pytest
  • Mocks and coverage
  • Profiling
  • Algorithmic complexity and data structures
  • Performance best practices
🛠 Hands-on workshops
Optimize a script2 h

Profile and speed up a slow script.

✅ Deliverable : A before/after report

Tools and technologies

MySQLPythonSQLiteVisual Studio Code

Teaching methods

  • Alternating short lectures and hands-on work
  • Live demonstrations by the trainer
  • Capstone project built throughout the modules
  • Group corrections and discussion of best practices

Assessment

  • Hands-on exercises corrected in each module
  • Mini-project completed at the end of the course
  • Knowledge-check quiz

Required equipment

  • A computer with an internet connection
  • Python 3 and a code editor

Resources provided

  • Course materials and repository of corrected exercises

Career outcomes

  • More idiomatic, faster code
  • An automated test suite
  • A toolbox of Python patterns

Related video courses

My video courses that go with this program, to get ready for the training or to review afterwards. Free with an account.