<<Download>> Download Microsoft Word Course Outline Icon Word Version Download PDF Course Outline Icon PDF Version

Intermediate Python

Class Duration

  • 5 days of comprehensive training
  • Focus on expanding and deepening Python skills

Target Audience

  • Experienced programmers familiar with Python basics
  • Ability to write simple Python scripts
  • Basic understanding of data types and program structures

Description

The Intermediate Python Programming training course is for experienced programmers who want to expand and deepen their Python programming skills. The class starts with a focus on configuring a proper development environment, including editor configuration, code formatters/linters, static type checking, virtual environments, and package management. Then, the class goes deeper into Python concepts such as iteration, specialized data structures, advanced functions, and classes. Next, the focus transitions to the many concurrent programming options within Python. Topics like the GIL, variable locks, and such are covered.

Learning Objectives

  • Learn to set up a modern Python development environment with Visual Studio Code.
  • Explore how to create virtual environments and manage packages.
  • Apply static typing to Python scripts through Type Hints.
  • Go deeper into iteration through built-in data types, generators, and comprehensions.
  • Leverage specialized data structures and classes provided by the Python standard library.
  • Improve script execution with concurrent programming techniques, including multiprocessing and asynchronous programming.
  • Learn how better to leverage the file system and networking in Python scripts.

Training Materials

All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises.

Software Requirements

Students will need a free, personal GitHub account to access the courseware. Students will need permission to install Python and Visual Studio Code on their computers. Also, students will need permission to install Python Packages and Visual Studio Extensions. If students are unable to configure a local environment, a cloud-based environment can be provided.

Training Topics

Introduction
  • Course overview and objectives
Development Environment
  • Visual Studio Code Extensions for Python
  • Code Reformatting with Black
  • Code Linting with Ruff
  • Type Hints with MyPy
  • Debugging Python Scripts with VS Code
Package Management
  • Configure Python Version with Conda/Mamba
  • Setup a Python Virtual Environment
  • Setup a Conda/Mamba Virtual Environment
  • Managing Packages with Pip
  • Managing Packages with Conda/Mamba
Type Hints
  • Built-In Types
  • Generic Types
  • Optional, Union, Any
  • Function Types
  • Generator Types
Iterators
  • For-In vs. While Loops
  • Iterating over Lists and Dictionaries
  • Iterating over Generators
  • Range, Enumerate
  • Itertools Module
  • Slicing Lists
Strings
  • String Encoding
  • Formatting Strings
  • Multiline Strings
Logging
  • Using the built-in logger
  • Handlers
  • Formatters
  • Filters
Comprehensions
  • List
  • Dictionary
  • Set
  • Generator
  • Conditional Comprehensions
Data Structures
  • List
  • Dictionary
  • Sets
  • Collections
  • Named Tuple
  • Counters
  • Default Dict
  • Deque
  • Ordered Dict
Functions
  • Unpacking Parameters
  • Packing Arguments
  • Nested Functions
  • Function Decorators
  • Generators
  • Multi-Dispatch
Classes
  • Setter and Getters vs. Properties
  • Class Data and Class Methods
  • Static Methods
  • Inheritance
  • Multiple Inheritance
  • Mixin Pattern
  • Abstract Classes
  • Protocols
  • Special / Magic / dunder methods
  • Monkey Patching
Packages and Modules
  • Namespaces and Scoping
  • Creating Modules
  • Import Modules
  • Dynamic Importing of Modules
  • Executing Modules as Scripts
  • Using the init File Effectively
Concurrent Execution
  • What is Concurrent Execution?
  • Concurrent Execution Models
    • Threads
    • Async/Await
    • Multiprocessing
    • Subprocesses
  • CPU bound vs. IO Bound
  • Process Pools
  • Async Programming
  • Async File Systems
  • Async Http Requests
  • Using Threads with Async
Files, Folders, and Operating System
  • Current Working Directory
  • File / Folder Paths
  • Asynchronous Reading and Writing Files
  • Create, Remove, & List Directories
Text Data Formats
  • Reading/Writing XML Files
  • Reading/Writing CSV Files
  • Reading/Writing JSON Files
  • Reading/Writing YAML Files
  • Reading/Writing Excel Files
Networking
  • HTTP Requests
  • Sending Email
  • Sending/Receiving Files over FTP
  • Sending SMS Messages with Twilio
  • Connecting via SSH to Servers
Conclusion
  • Course wrap-up and next steps
<<Download>> Download Microsoft Word Course Outline Icon Word Version Download PDF Course Outline Icon PDF Version