Overview
This comprehensive advanced-level course on Python programming involves hands-on lab exercises, engaging lectures, demos and activities to ensure participants get a thorough understanding of the concepts being discussed. The course leads participants through a series of progressively advanced topics such as OS services, modules, unit tests, databases, XML data, packages, meta programming, network programming, threads, etc. The course is a skill-centric course, focusing on helping participants master advanced Python and web development skills, the latest techniques and coding practices. The course does not cover Python fundamentals.
What You'll Learn
- Leverage OS services
- Code graphical interfaces for applications
- Build modules
- Create and run unit tests
- Define classes
- Working with network services
- Query databases
- Handle XML data
Curriculum
- Data types
- Sequences
- Mapping types
- Program structure
- File and console I/O
- Conditionals
- Loops
- Built-ins
- The OS module
- Environment variables
- Launching external commands
- Walking directory trees
- Paths, directories and file names
- Working with file systems
- Dates and times
- Basic date and time classes
- Different time formats
- Converting between formats
- Formatting dates and times
- Parsing date/time information
- What is Binary Data?
- Binary vs text
- Using the Struct module
- The Zen of Python
- Common idioms
- Lambda functions
- List comprehensions
- Generator expressions
- String formatting
- Implicit properties
- Globals() and locals()
- Working with attributes
- The inspect module
- Decorators
- Monkey patching
- Class/static data and methods
- Inheritance (or composition)
- Abstract base classes
- Implementing protocols (context, iterator, etc.) with special methods
- Implicit properties
- globals() and locals()
- Working with object attributes
- The inspect module
- Callable classes
- Decorators
- Monkey patching
- Analyzing programs with pylint
- Using the debugger
- Profiling code
- Testing speed with benchmarking
- What is a unit test?
- Writing tests
- Working with fixtures
- Test runners
- Mocking resources
- 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
- Overview
- Qt Architecture
- Using designer
- Standard widgets
- Event handling
- Extras
- Builtin classes
- Using requests
- Grabbing web pages
- Sending email
- Working with binary data
- Consuming RESTful services
- Remote access (SSH)
- The threading module
- Sharing variables
- The queue module
- The multiprocessing module
- Creating pools
- About async programming
- Running external programs
- Parsing arguments
- Creating filters to read text files
- Logging
- 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
- Reading/writing CSV files
- YAML, other formats as time permits
- Discover the collections module
- Use defaultdict, Counter, and namedtuple
- Create dataclasses
- Store data offline with pickle
- 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
Who should attend
- Software developers
- Back-end developers
- Software engineers
- Programmers
- System administrators