Course Description
This comprehensive course explores advanced Python topics and skills with a particular focus on utilization of Python for enterprise development. You'll learn how to leverage OS services, code graphical application interfaces, interact with network series, query databases, and process XML and other data types.
As part of a deep dive into the programming language, you'll gain an understanding of some of Python's lesser known but incredibly powerful functions such as meta-programming, decorators, context managers, generators, iterators, and descriptors. At the end of the course, you will be able to use Python to complete advanced tasks and write secure and scalable enterprise-grade code.
Course Outline
Day 1: Pythonic Python
- Pythonic Programming
- The Zen of Python
- Comments, docstrings, annotations
- String Handling
- List and Array optimization
- Tuple tricks
- Control structures in Python ñ effective use of Lambda functions, List comprehensions
- Creating efficient dictionaries
- Advanced unpacking
- Essential conventions for Pythonic classes
- Clean Python code patterns
- Code quality enforcement tools ñ Style and Logic guides
- Pythonic class conventions
- Effective handling of import
- Handling Decorators ñ Classes, Functions, accepting arguments, Multi decorators, singleton
- Decorators and the DRY principle
- Context Manager
- Iterators
- Generators for performance improvement
- Coroutines ñ yield from, async def, await
- Descriptors ñ types, chains, accessing attributes, benefits
Day 2: Python System Scripting
- OS Services
- The os and os.path modules
- Environment variables
- Launching external commands with subprocess
- Walking directory trees
- Paths, directories, and filenames
- Working with file systems
- Network Programming
- Built-in classes
- Using requests
- Grabbing web pages
- Sending email
- Working with binary data
- Remote access (SSH)
- Using FTP
- Scripting for System Administration
- Running external programs
- Parsing arguments
- Creating filters to read text files
- Logging
Day 3: Python Data Processing
- Serializing data - XML and JSON
- Working with XML
- XML modules in Python
- Getting started with ElementTree
- Parsing XML
- Updating an XML tree
- Creating a new document
- About JSON
- Reading JSON
- Writing JSON
- Translating JSON to Pythonic data
- Validating JSON data
- Reading/writing CSV files
- YAML, other formats as time permits
- Time Permitting Sessions
- Database access
- The DB API
- Available Interfaces
- Connecting to a server
- Creating and executing a cursor
- Fetching data
- Parameterized statements
- Using Metadata
- Transaction control
- ORMs and NoSQL overview
Day 4: Beyond Python
- Pythonic Architecture
- Python Design Patterns
- Architecture of Python applications
- Event driven programming architecture
- Microservices architecture
- Scaling Python applications
- Differentiate the features of event-based, microservice, and API architectures.
- Application security guidelines
- PyQt
- Overview
- Qt Architecture
- Using designer
- Standard widgets
- Event handling
- Creating a simple application
- Type hinting
- Annotate variables
- Learn what type hinting does NOT do
- Use the typing module for detailed type hints
- Understand union and optional types
- Write stub interfaces
- Writing real-life applications
- Reading input files in Unix
- Parsing command-line options
- Detecting the current platform
- Implementing logging
- Creating a calculator application in PyQt
- Perform CRUD operations by connecting to DB
Course Objectives
- Common practices for writing scalable and legible Python code
- Effective data processing practices and features like generators and decorators to improve complex computations on large datasets
- Pythonic design patterns for secure, large-scale applications.
- Enhancements to classes
- Advanced Python metaprogramming concepts
- Leveraging OS services
- Interacting with network services
- Coding graphical interfaces for applications
- Designing professional scripts
- Querying databases
- Processing XML, CSV, and JSON data
Course Prerequisites
- Students should have experience writing Python scripts, as well as a user-level knowledge of Unix/Linux, Mac, or Windows.
Course Information
Length: 4 day
Format: Lecture and Lab
Delivery Method: n/a
Max. Capacity: 16
Schedule
Contact Us
Do you have more questions? We're delighted to assist you!
Labs
- This very hands-on course includes more than 15 practical lab-based activities.
Who Should Attend
This in an intermediate and beyond level course designed for students who have experience writing Python scripts and who want to master design and architecture best practices and write enterprise-grade code.