How do the world's best engineering teams use Python? What language features to they use, and how? How do you do test-driven development, leverage Python's object model, build concurrent servers, and more?
This course for experienced developers helps you take your expertise in Python to a whole new level.
Students must have at least one year of full-time development experience in any language; understanding and experience with object-oriented design; and at least six months experience writing Python (2 or 3). While this course is primarily taught in Python 3, no prior knowledge of Python 3 is required.
Students will learn the most powerful patterns and tools modern Python has to offer, and how to leverage them to create reliable, maintainable applications - either individually, or as part of a development team. This course is taught using Python 3, with instruction throughout on how to apply the concepts to Python 2.
Test-driven Python development
Writing scalable Python code
- iterators and Python's iterator protocol
- Leveraging built-in types for improved performance
Python's logging module
- Getting the most out of Python's amazing and rich logging module
Python's concurrency model
- Understanding the important distinction between OS threads and Python threads, and the implications for concurrent Python software
- Scaling CPU-bound tasks with multiprocessing
- Asynchronous programming with asyncio
- Multiple threads in Python: when to do it, when to avoid it, and best practices
All about decorators
- Review of basic decorator patterns
- Creating decorators that take arguments
- Powerfully extensible class-based decorators
- Creating decorators for classes (which is a completely different thing)
Object-oriented programming with Python
- The Python object model
- Creating new syntax and expressive code with "magic methods"
- Patterns of abstraction and code organization
- Metaclasses: what they do, when to use them, and when to avoid them
- RESTful API integration
- Building REST servers in Python
Mastering list comprehensions
Functional Python programming
Practical agile software development in Python
- Virtual environments
- Package management
- Version control considerations
- Maintainability and readability
- Best Practices for reliability and robustness
Advanced data types and collections
Additional topics depending on goals and desires of participants
Aaron Maxwell is a technology entrepreneur, software engineer, author and instructor with a strong background in software engineering and scientific research.
As an engineer, his areas of impact and interest have ranged from the mobile web, to cloud computing, to building robustly concurrent systems and languages for company’s like Lyft, Grokr and SnapLogic. Lately, Aaron has been focusing on devops and Big Data engineering.
Aaron is a Databricks Certified Instructor for Apache Spark, and in addition to teaching Spark classes, has taught courses on Python, Django, Devops, and Ansible for professional development teams throughout the US and Europe.