Python: Beyond the Basics
Published by O'Reilly Media, Inc.
Python Beyond the Basics: Best Practices for Writing Expressive, Scalable, and Maintainable Code
No matter how much Python you already know, there’s always more that you can make it do. In this course, you’ll join expert Pythonista Aaron Maxwell for a hands-on, in-depth exploration of Python for users who want to take their Python skills up a level. You’ll learn to write code that’s simultaneously more concise, readable, powerful, and highly maintainable, and develop a deeper understanding of Python’s object system.
The course uses a mix of lectures, ebook downloads, Q&A sessions, and realistic code examples. Aaron includes simple quizzes throughout the course to track your progress, and provides hands-on lab exercises that you’ll complete by passing provided unit tests.
What you’ll learn and how you can apply it
By the end of this live, hands-on, online course, you’ll understand:
- How to write more maintainable, readable, and expressive Python
- The capabilities of Python’s object system
- How to create more responsive and scalable Python software
And you’ll be able to:
- Write more powerful Python code
- Write Python code that’s concise, readable, and highly maintainable
- Advise your teammates on potently powerful Python patterns and crucial best practices
This live event is for you because...
- You are a web developer using Python frameworks
- You’re a QA engineer using Python for scripting and writing tests
- You’re a data scientist using Python and you want to get more done, faster
- You’re a software engineer aiming to be more productive, and write more robust, reliable, maintainable Python code
- You want to improve your Python knowledge to ace an interview or land that dream job
- You feel you’ll benefit from deeply understanding the Python language and ecosystem, and how to use it to its fullest potential
Prerequisites
- Ability to write simple Python programs using lists and dictionaries
- Familiarity with basic types (int, str, float, etc.) and defining classes
- Experience using modules in the standard library
To fully participate in this hands-on class, install either Python 3 (3.4 or later); or Python 2.7. Python 3 is recommended. You will be able to do the programming exercises in either version. Since almost everything in the course applies to both versions, the class will be taught primarily using 3, pointing out where 2.7 is different as we go along. (Note that Python 3.x safely installs alongside Python 2, with no conflict; for example, the interpreter is named "python3" instead of "python".)
You can use any Python-aware IDE or editor; Pycharm is one good choice. You should also be able to open a Python interactive interpreter on the command line, and run simple programs ("python3 helloworld.py") either on the command line or in your IDE. On Windows, you will need to set your system path: http://goo.gl/LJJT4Z
Links:
- Install Python (3 or 2): https://www.python.org/downloads/
- Pycharm: https://www.jetbrains.com/pycharm/download/
Recommended Preparation:
Further Learning:
Python Cookbook, 3rd edition
Become Fluent in Python - learning path
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Day 1
Pythonic Scalability
- Generators For Efficient, Scalable, Well-Encapsulated Code
- Demystifying Python’s Iterator Protocol
- Understanding Views, Iterators, and Iterables
- Patterns for Scalable Composability
Rich And Expressive Data Structures
- List Comprehensions For Expressive, Readable List Creation
- Comprehensions of dicts, sets, and more
DAY 2
Rich And Expressive Data Structures, Part 2
Generator Expressions
Quick Review of Python’s Object Syntax
Special Features of the Python Object Model
- Properties For Clean Design and Refactoring
- Special Methods
Python OOP Patterns
- The Factory Pattern
- The Observer Pattern
- How OOP in Python is fundamentally different from other languages
Your Instructor
Aaron Maxwell
Aaron Maxwell is author of the book "Powerful Python: The Most Impactful Patterns, Features, and Development Strategies Modern Python Provides." As a software engineer, he has worked in devops, test automation, and machine learning, and now divides his time between coding, writing, and teaching