Async Techniques and Examples in Python
Source code and course GitHub repositorygithub.com/talkpython/async-techniques-python-course
What's this course about and how is it different?
This is *the* definitive course on parallel programming in Python. It covers the tried and true foundational concepts such as threads and multiprocessing as well as the most modern async features based on Python 3.7+ with async and await.
In addition to the core concepts and APIs for concurrent programming, you will learn best practices and how to choose between the various APIs as well as how to use them together for the biggest advantage.
In this course, you will:
- See how concurrency allows improved performance and scalability
- Build async-capable code with the new async and await keywords
- Add asynchrony to your app without additional threads or processes
- Work with multiple threads to run I/O bound work in Python
- Use locks and thread safety mechanisms to protect shared data
- Recognize a dead-lock and see how to prevent them in Python threads
- Take full advantage of multicore CPUs with multiprocessing
- Unify the thread and process APIs with execution pools
- Add massive speedups with Cython and Python threads
- Create async view methods in Flask web apps
- And lots more
View the full course outline
Who is this course for?
Anyone who would like to write Python code that does more, scales better, and takes better advantage of modern, multicore CPUs. Whether you're a web developer or data scientists, you will find a host of techniques to do more faster.
The course is not a beginner Python course, so students with little to no Python language experience should take a foundational course first. We recommend our Python Jumpstart by Building 10 Apps as a prerequisite if needed.
Concepts backed by concise visuals
While exploring a topic interactively with demos and live code is very engaging, it can mean losing the forest for the trees. That's why when we hit a new topic, we stop and discuss it with concise and clear visuals.
Here's an example of introducing the concept of temporarily invalid states in thread safety.
Get hands-on for almost every chapter
Learning to code is an interactive experience. That's why it's important to write async code and explore the apps we build during this course. Most chapters have code samples stored in the GitHub repo saved at various stages throughout the chapter. This means you can grab whichever one you want and start trying the code for yourself.
Who am I? Why should you take my course?
My name is Michael, nice to meet you. ;) There are a couple of reasons I'm especially qualified to teach you Python.
1. I'm the host of the #1 podcast on Python called Talk Python To Me. On there, I've interviewed many of the leaders and creators in the Python community. I bring that perspective to all the courses I create.
2. I've been a professional software trainer for over 10 years. I have taught literally thousands of professional developers in hundreds of courses throughout the world.
3. Students have loved my courses. Here are just a few of quotes from past students of mine.
"Michael is super knowledgeable, loves his craft, and he conveys it all well. I would highly recommend his training class anytime." - Robert F.
"Michael is simply an outstanding instructor." - Kevin R.
"Michael was an encyclopedia for the deep inner workings of Python. Very impressive." - Neal L.
Free office hours keep you from getting stuck
One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.
That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.
Just visit your account page to see the upcoming office hour schedule.
Is this course based on Python 3 or Python 2?
This course is based upon Python 3.7. With Python 2 going unsupported in 2020, we believe that it would be ill-advised to teach or learn Python 2. Moreover, the latest async features are only available in Python 3.5 or above.
The time to act is now
The dawn of Python's full async power is here. It's time to gain all its superpowers to build your next Python project faster, better, stronger.