Python 3.11: A Guided Tour of What's New Through Code Course

Course Summary

Python 3.11 is one of the most significant releases in years. It's also one of the biggest with the change log weighing in at over 175,000 words of updates. You may have seen the headline features. But have you had a chance to explore them with code and really see how they can make your apps better? This 2-hour course is your guided tour of the changes to Python with this important release.

What students are saying

Absolutely. It is an outstanding survey of Python with plenty of great projects. I learned a great deal...
-- Mike Fisher (@fisheranalytics)

Source code and course GitHub repository

github.com/talkpython/python-311-code-tour

What will you learn?

In this course, you will:

  • Gain a comprehensive understanding of Python 3.11's features
  • See how TaskGroups can clean up and improve multiple coordinated async tasks
  • Handle multiple errors with Python's new except * syntax
  • See how 3.11's new and improved error messages will help both with developing and fixing errors in production
  • Add notes to exceptions to improve the context and understanding of what went wrong
  • Coordinate multiple async tasks with asyncio.Barrier
  • Add a timeout to a group of async tasks with the new timeout context manager
  • See why and how 3.11's zero-cost exceptions work
  • Learn about Python 3.11's new specializing, adaptive interpreter and see how it makes Python code faster
  • Use Specialist to visualize and actually improve your applications most critical loops
  • Avoid SQL-Injection and other nasty traps with 3.11's new LiteralString type.
  • And lots more

  • View the full course outline.

Who is this course for?

For anyone who wants to take advantage of the latest Python features. In this course we focus on Python 3.11's new features of course. But in doing so, we tie them back to many of modern Python's latest idioms and capabilities.

As for prerequisites, we assume:

  • Basic familiarity with the Python programming language and core tools (e.g. pip)

The tools chosen and featured during this course are 100% free and most of them are open source.

Concepts backed by concise visuals

While exploring a topic interactively with demos and live code is very engaging, it can lose 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 a graph showing Python 3.10 vs. Python 3.11 performance on the pypi.org web app.

Example: Concepts backed by concise visuals

Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Who am I? Why should you take my course?

Who is Michael Kennedy?

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. Over 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 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.

This course is delivered in very high resolution

Example of 1440p high res video

This course is delivered in 1440p (4x the pixels as 720p). When you're watching the videos for this course, it will feel like you're sitting next to the instructor looking at their screen.

Every little detail, menu item, and icon is clear and crisp. Watch the introductory video at the top of this page to see an example.

The time to act is now

Now that Python 3.11 has had its second release (3.11.1), the industry is moving quickly to adopt it. Lead the way with confidence and a deep understanding of what this update has to offer. Take the course today.

Course Outline: Chapters and Lectures

Introducing Python 3.11
6:07
Welcome to the Course
1:02
Releasing Python: The Live Stream
1:03
Python 3.11 is Massive
1:46
Code Github Repo
0:28
Installing Python 3.11
1:08
Meet Your Instructor
0:40
Error Messages
25:30
Why Better Error Messages Matter
0:46
PEP 657: Fine-grained Error Details
1:02
What's The Problem with Error Reporting Now?
2:59
Opening the Code for the Course
1:39
Demo: Better Error Messages
9:21
PEP 678: Enriching Exceptions with Notes
2:48
Demo: Adding Notes to Exceptions
5:34
PyCharm 3.11 Language Features Bug
1:21
Concurrency Improvements
22:59
Intro to Async Changes in 3.11
0:36
TaskGroup Introduction
1:01
TaskGroup Demo
8:25
Summarizing TaskGroups
0:41
AsyncIO Timeout Context Manager
1:25
Barrier Introduction and Demo
7:11
Other asyncio Changes
3:40
Error Handling Improvements and except*
22:15
Error handling intro
0:32
What Happens When There are Multiple Errors?
2:06
Except* Demo
9:17
Except* is not Just for Async
1:49
No Cost Exceptions, Seen Through Byte Code
6:07
Performance Demo of Zero Cost Exceptions
2:24
Python 3.11 Performance
18:55
Headline Feature: Python 3.11 Performance
1:15
Python 3.11 is Delivering on Performance
3:25
Specializing Adaptive Interpreter
3:24
Installing Specialist
1:06
Python's Specializing Interpreter in Action
5:47
Timing the More Specialized Code
3:58
Type Updates for 3.11
12:49
What's New in Types for 3.11?
0:52
Class Types Don't Work Within Classes So Well
3:11
Self Type Demo
3:47
What is a Literal String and Why We Heed It
2:03
Pythons LiteralString Type
2:56
A Grab Bag of Minor Updates
5:28
Introduction to Assorted Others
0:35
File Formats
1:24
Performance
2:10
Removing Dead Batteries
1:19
Course conclusion
0:57
Thanks and bye
0:57
Buy for $39 + tax Bundle and save 85% Team Gift

Questions? Send us an email: contact@talkpython.fm

Talk Python's Mastodon Michael Kennedy's Mastodon