Advanced Python

Python is a dynamic programming language that's used in a wide range of domains thanks to its simple yet powerful nature. Although writing Python code is easy, making it readable, reusable, and easy to maintain is challenging.

Overview

The course will start by taking you through the new features in Python. You’ll then learn the advanced components of Python syntax, in addition to understanding how to apply concepts of various programming paradigms, including object-oriented programming, functional programming, and event-driven programming. This course will also guide you through learning the best naming practices, writing your own distributable Python packages, and getting up to speed with automated ways of deploying your software on remote servers. You’ll discover how to create useful Python extensions with C, C++, Cython, and CFFI. We will cover code management tools, writing clear documentation, and exploring test-driven development enabling the student to write clean code.

Audience

This course is intended for experienced Python programmers.

Prerequisite: Python Programming – Basic/Intermediate or equivalent topical knowledge

Length

3 days

Outline

Upon completion, participants will have become proficient in writing efficient and maintainable Python code.  Participants will:

  • Explore modern ways of setting up repeatable and consistent development environments
  • Package Python code effectively for community and production use
  • Learn modern syntax elements of Python programming such as f-strings, enums, and lambda functions
  • Demystify metaprogramming in Python with metaclasses
  • Write concurrent code in Python
  • Extend Python with code written in different languages
  • Integrate Python with code written in different languages

Features of this class: 

  • Create manageable code that can run in various environments with different sets of dependencies
  • Implement effective Python data structures and algorithms to write optimized code
  • Discover the exciting new features of Python

Outline:

  • Current Status of Python
  • Modern Python Development Environments
  • Modern Syntax Elements – Below the Class Level
  • Modern Syntax Elements – Above the Class Level
  • Elements of Metaprogramming
  • Choosing Good Names
  • Writing a Package
  • Deploying the Code
  • Python Extensions in Other Languages
  • Managing Code
  • Documenting Your Project
  • Test-Driven Development
  • Optimization – Principles and Profiling Techniques
  • Optimization – Some Powerful Techniques
  • Concurrency
  • Event-Driven and Signal Programming
  • Useful Design Patterns
  • reStructuredText Primer