

The Real Python Podcast
Real Python
A weekly Python podcast hosted by Christopher Bailey with interviews, coding tips, and conversation with guests from the Python community.
The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
Episodes
Mentioned books

May 29, 2020 • 58min
Advice on Getting Started With Testing in Python
Have you wanted to get started with testing in Python? Maybe you feel a little nervous about diving in deeper than just confirming your code runs. What are the tools needed and what would be the next steps to level up your Python testing? This week on the show we have Anthony Shaw to discuss his article on this subject. Anthony is a member of the Real Python team and has written several articles for the site.
We discuss getting started with built-in Python features for testing and the advantages of a tool like pytest. Anthony talks about his plug-ins for pytest, and we touch on the next level of testing involving continuous integration.
Anthony recently finished a talk for PyCon 2020 Online, titled “Why is Python Slow?” He had the idea for the talk while he was working on his upcoming book about the CPython source code.
I also want to give an update on last weeks episode with Kyle Stratis, where we discussed Kyle being let go from his job due to the pandemic. Here’s some good news, Kyle will be joining a Boston startup called Vizit, as a senior data engineer. Congratulations Kyle!
Course Spotlight: The Python print() Function: Go Beyond the Basics
This course will get you up to speed with using Python print() effectively. Prepare for a deep dive as you go through the sections. You may be surprised how much print() has to offer!
Topics:
00:00:00 – Introduction
00:01:46 – PyCon 2020 Online Talk - Why is Python slow?
00:04:05 – CPython Internals Book
00:07:08 – Attending Conferences
00:09:01 – Getting Started with Testing in Python
00:12:32 – Unittest
00:17:16 – What does a tool like pytest add?
00:19:53 – pytest plugins
00:21:03 – Anthony’s pytest plugins
00:21:58 – What does coverage mean?
00:25:23 – Test runners
00:27:12 – Testing environments with Tox
00:30:50 – Real Python Video Course Spotlight
00:31:49 – More on continuous integration (CI)
00:37:21 – Recent changes to GitHub
00:38:21 – PSF to move issue tracker to GitHub
00:41:01 – DRY (Don’t Repeat Yourself)
00:43:46 – Benefits of linters and code formatting
00:48:00 – What is a little known part of Python?
00:52:16 – What are you excited about in the world of Python?
00:56:06 – What is something you thought you knew about Python, but were wrong about it?
00:57:27 – Goodbye and thanks
Show links:
Why is Python slow?: PyCon 2020 Online Talk
Your Guide to the CPython Source Code: Real Python article
TalkPython Podcast Episode #265: Why is Python slow?
Getting Started With Testing in Python: Real Python article
pytest: helps you write better programs
pytest-azurepipelines: Plugin for pytest that makes it simple to work with Azure Pipelines
Effective Python Testing With Pytest
tox automation project: Command line driven CI frontend
GitHub Actions: Automate your workflow from idea to production
Continuous Integration With Python: An Introduction: Real Python article
Brian K Okken - Multiply your Testing Effectiveness with Parameterized Testing: PyCon 2020 Online Talk
Python Testing with pytest: Brian Okken - The Pragmatic Bookshelf
Test & Code: Python Testing for Software Engineering: Podcast
Python’s migration to GitHub
Refactoring Python Applications for Simplicity: Real Python article
Black: The uncompromising code formatter
Wily: A command-line application for tracking, reporting on complexity of Python tests and applications
PEP 554 – Multiple Interpreters in the Stdlib
Python Insider: Python core development news and information
Level up your Python skills with our expert-led courses:
Continuous Integration With Python
Test-Driven Development With pytest
The Python print() Function: Go Beyond the Basics
Support the podcast & join our community of Pythonistas

May 22, 2020 • 1h 20min
Python Job Hunting in a Pandemic
Do you know someone in the Python community who recently was let go from their job due to the pandemic? What does the job landscape currently look like? What are skills and techniques that will help you in your job search? This week we have Kyle Stratis on the show to discuss how he is managing his job search after just being let go from his data engineering job. Kyle is a member of the Real Python team and has written several articles for the site.
We discuss Kyle’s career and the skills that he’s developed, which are currently helping him in his job search. Kyle left academia to work as a data engineer. His background helps him to communicate between teams of scientists and engineers.
We also talk about Kyle’s recent article on combining data in Pandas. Kyle shares a tip on Pandas efficiency, and hints at some lesser known features of Python generators.
Topics:
00:00:00 – Introduction
00:01:27 – Kyle’s background on being let go
00:04:17 – Programming background and building connections
00:10:18 – Becoming a Data Engineer
00:15:59 – Translating between science and data teams
00:20:35 – Every job has different language requirements
00:23:44 – Getting out of your Python language comfort zone
00:27:08 – NASDANQ project - a stockmarket for Memes
00:30:34 – Learning the power of building a network
00:35:13 – Using skills developed in outside projects
00:38:45 – What does the job landscape look like currently?
00:49:52 – Writing for Real Python
00:52:53 – Combining data in Pandas article
00:55:22 – Merging in Pandas
01:03:05 – Feedback and community
01:10:37 – What are you excited ab out in the world of Python?
01:12:12 – What is something you thought you knew about Python but were wrong about it?
01:14:01 – What is a little known Python trick or tip?
01:14:33 – More efficient Pandas
01:15:52 – Using more of the advanced features of generators
01:18:55 – Thanks and Goodbye
Show Links:
Kyle’s Blog
Kyle’s LinkedIn
A MongoDB Optimization: Kyle Stratis’ Blog
Memes are serious business with their own stock exchange: CNET
How a group of Redditors is creating a fake stock market to figure out the value of memes: The Verge
The joke Meme Economy is a now real thing called NASDANQ: AV Club
Forbes Did A V. Serious Analysis Of NASDANQ, The Stock Market For Memes: Pedestrian
Domi Station in Tallahassee
Combining Data in Pandas With merge(), .join(), and concat(): Real Python article
A Visual Explanation of SQL Joins: Coding Horror
Wily: A command-line application for tracking, reporting on complexity of Python tests and applications
Refactoring Python Applications for Simplicity: Real Python article
Fast, Flexible, Easy and Intuitive: How to Speed Up Your Pandas Projects: Real Python article
How to Use Generators and yield in Python: Real Python article
Level up your Python skills with our expert-led courses:
Python Coding Interviews: Tips & Best Practices
Sorting Data With Python
Idiomatic pandas: Tricks & Features You May Not Know
Support the podcast & join our community of Pythonistas

May 15, 2020 • 1h 16min
Leveling Up Your Python Literacy and Finding Python Projects to Study
In your quest to become a better developer, how do you find Python code that is at your reading level? What are good code bases or projects to study? What are the things holding you back from leveling up your Python literacy? This week we have Cecil Phillip on the show to discuss all of these common questions. Cecil is a Senior Cloud Advocate at Microsoft.
Cecil has been learning Python in the open on Twitch with Brian Clark. They run a weekly event on Twitch, where they are live-streaming an interactive Python course. Cecil has a background in multiple languages and technologies, and now he’s learning Python, bringing an audience along the way!
We start things off with a listener question and jump into a conversation about building up your Python skills. Then we’ll discuss common Python language stumbling blocks. Next we consider the importance of making personal projects, and documenting that code.
We also touch on some unique skills employers are looking for. And we discuss working through impostor syndrome. Cecil talks about his podcast “Away from the Keyboard” and his plans to start it back up.
In the show notes this week you’ll find links to resources we discuss, and several more that we didn’t have time to cover individually.
Want your question featured on the show? Send us your question at realpython.com/podcast-question and we might feature it on a future episode of the show.
Topics:
00:00:00 – Intro
00:01:52 – Cecil’s role at Microsoft
00:03:35 – Twitch Stream with Brian Clark
00:05:07 – Learning in front of an audience
00:13:05 – Listener’s question
00:14:46 – Finding code that’s at your level
00:20:31 – Understanding more complex syntax in Python
00:23:40 – Breaking down complexity
00:29:17 – Translation of code
00:31:55 – Importance of making projects and comments
00:36:28 – Finding community
00:41:23 – Open source contributing
00:42:25 – Dealing with impostor syndrome
00:49:09 – Looking for that first position
01:00:58 – More project resources in show notes
01:02:55 – Cecil’s podcast - Away from the keyboard
01:08:29 – What are you excited about in the world of Python?
01:10:14 – What is something you thought you knew about Python but were wrong about it?
01:12:01 – What’s the next thing you want to learn in Python?
01:13:37 – Read the actual Python docs
01:15:24 – Thanks and goodbye
Show links:
Microsoft Developer Channel
Cecil Phillip’s Twitter
Cecil’s Github
Microsoft Developer Twitch
Official Microsoft Python Discord
Away from the Keyboard: Podcast
Python Decorators 101: Real Python video course
Python Type Checking: Real Python video course
13 Project Ideas for Intermediate Python Developers: Real Python article
Suggested project reading list:
Flask: The Python micro framework for building web applications.
Django: The Web framework for perfectionists with deadlines
Howdoi: instant coding answers via the command line
Curio: A coroutine-based library for concurrent Python systems programming
scikit-learn: machine learning in Python
SQLAlchemy: The Database Toolkit for Python
Requests: A simple, yet elegant HTTP library
Markupsafe: Safely add untrusted strings to HTML/XML markup
Ask HN: Good Python codebases to read?
The Hitchhiker’s Guide to Python: Reading Great Code
Welcome! This is the documentation for Python 3.8
Level up your Python skills with our expert-led courses:
Intro to Object-Oriented Programming (OOP) in Python
Python Decorators 101
Python Type Checking
Support the podcast & join our community of Pythonistas

4 snips
May 8, 2020 • 56min
Docker + Python for Data Science and Machine Learning
Docker is a common tool for Python developers creating and deploying applications, but what do you need to know if you want to use Docker for data science and machine learning? What are the best practices if you want to start using containers for your scientific projects? This week we have Tania Allard on the show. She is a Sr. Developer Advocate at Microsoft focusing on Machine Learning, scientific computing, research and open source.
Tania has created a talk for the PyCon US 2020 which is now online. The talk is titled “Docker and Python: Making them Play Nicely and Securely for Data Science and ML.” Her talk draws on her expertise in the improvement of processes, reproducibility and transparency in research and data science. We discuss a variety of tools for making your containers more secure and results reproducible.
Tania is passionate about mentoring, open-source, and its community. She is an organizer for Mentored Sprints for Diverse Beginners, and she talks about the upcoming online sprints for PyCon US 2020. We also discuss her plans to start a podcast.
Topics:
00:00:00 – Introduction
00:01:43 – Microsoft Senior Developer Advocate Role
00:04:07 – PyCon 2020 Talk - Docker and Python: making them play nicely
00:05:34 – What is Docker?
00:10:08 – Reproducibility of project results
00:12:03 – What are the challenges of using Docker for machine learning?
00:15:06 – Getting started suggestions
00:16:26 – What metadata should be included?
00:17:48 – Creating images through stages
00:21:16 – What about your data?
00:22:40 – Kubernetes: Orchestrating containers
00:24:37 – Continuing stages into testing
00:25:37 – What are tools for testing security?
00:27:07 – Challenges in using containers for ML
00:28:52 – What types of databases?
00:29:39 – Are you doing initial research on a local machine?
00:30:59 – An example of a recent ML project
00:32:16 – Papermill: parameterizing and executing notebooks
00:33:16 – NLP: Natural Language Processing
00:33:58 – Kaggle: Help us better understand COVID-19
00:34:42 – What are other best practices for data intensive projects?
00:39:13 – Resources to get started in machine learning?
00:40:30 – Mentored Sprints for Diverse Beginners
00:45:34 – Tania’s upcoming podcast
00:48:38 – A visiting fellow at the Alan Turing Institute
00:49:08 – Weight lifting
00:50:16 – Craft beer
00:52:09 – What is something you thought you knew in Python but were wrong about?
00:53:50 – What are excited about in the world of Python?
00:54:42 – Thank you and Goodbye
Show links:
Tania Allard: Personal site
Docker and Python: making them play nicely and securely for Data Science and ML - Tania Allard
Slides for Docker and Python Talk
Docker
XKCD: Python Superfund Site
Best practices for writing Dockerfiles
Run Python Versions in Docker: How to Try the Latest Python Release
Kubernetes: Production-Grade Container Orchestration
Snyk: Securing open source and containers
papermill: A tool for parameterizing and executing Jupyter Notebooks
Natural Language Processing: Wikipedia article
Natural Language Processing With spaCy in Python: Real Python article
Kaggle: Help us better understand COVID-19
datree.io: Scale Engineering organization
repo2docker: Build, Run, and Push Docker Images from Source Code Repositories
Jupyter Docker Stacks: A set of ready-to-run Docker images
binder: Turn a Git Repo into a Collection of Interactive Notebooks
Hands-On Machine Learning with Scikit-Learn and TensorFlow: O’Reilly
Data Science from Scratch: O’Reilly
Python for Data Analysis: Wes McKinney - Creator of Pandas
Mentored Sprints for Diverse Beginners
The Alan Turing Institute
Easy Data Processing With Azure Fun - Tania Allard - PyCon 2020
PEP 581 – Using GitHub Issues for CPython
Python’s migration to GitHub - Request for Project Manager Resumes
Level up your Python skills with our expert-led courses:
Using Jupyter Notebooks
Histogram Plotting in Python: NumPy, Matplotlib, Pandas & Seaborn
Idiomatic pandas: Tricks & Features You May Not Know
Support the podcast & join our community of Pythonistas

13 snips
May 1, 2020 • 1h 27min
AsyncIO + Music, Origins of Black, and Managing Python Releases
Łukasz Langa, release manager for Python 3.8 and 3.9, discusses AsyncIO with Music at PyCon 2020. Topics include event loop comparisons, coroutines, uvloop, and origins of his code formatter, Black. He also shares insights on EdgeDB and transitioning back to Poland.

Apr 24, 2020 • 55min
Python REST APIs and The Well-Grounded Python Developer
Are you interested in building REST APIs with Flask and SQLAlchemy? This week we have Doug Farrell on the show. We talk about his four-part Real Python article series on Python REST APIs.
We discuss the various Python tools and libraries used in the series. Doug also shares his practices for continuous learning. Doug has worked in process control, embedded systems, and has a long background in software development.
He’s currently a developer at ShutterFly, and discusses developing tools for his internal customers. He also teaches Python to kids at a STEM school near where he lives.
Doug is writing a book for Manning Publications, “The Well-Grounded Python Developer”. The book is currently available in an early access state. And as always please check out all the additional resources and tools that Doug discusses, they are all gathered for you in the show notes.
Topics:
00:00:00 – Introduction
00:01:30 – Doug’s programming background
00:06:16 – Building a Polargraph
00:08:51 – When did you get into Python?
00:10:43 – Working at Shutterfly
00:13:45 – How does Python help at Shutterfly?
00:16:21 – Difficulties for a self-taught developer
00:18:58 – How do you keep honing your skills?
00:20:32 – Writing articles
00:22:04 – Python REST APIs With Flask, Connexion, and SQLAlchemy Series
00:27:54 – Picking tools for REST APIs
00:36:27 – The Well-Ground Python Developer Book
00:39:27 – What topic are you most interested in covering?
00:42:35 – How has working with hardware helped you become a better programmer?
00:45:36 – Something you thought you knew about Python, but were wrong about?
00:46:25 – What’s a good tool to use for profiling?
00:47:34 – Getting up to speed on data science
00:50:45 – What are you excited about in the world of Python?
00:53:26 – Contact info, thank you and sign off
Show links:
Python REST APIs With Flask, Connexion, and SQLAlchemy
Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 2
Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 3
Build a JavaScript Front End for a Flask API (Previously Part 4)
API Integration in Python – Part 1
Flask Tutorials - Real Python
SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper
marshmallow: simplified object serialization
Swagger - API Development for Everyone
Connexion - Swagger/OpenAPI First framework for Python
Serialization - Wikipedia article
Working With JSON Data in Python - Real Python Article
Ajax - Wikipedia article
What’s a polargraph
Polargraph (vertical plotter / drawing machine) written in Go
The Python Profilers - docs.python.org
Python Timer Functions: Three Ways to Monitor Your Code - Real Python
Doug’s personal website
The Well-Grounded Python Developer - Early Access Book
Doug’s Linked-In Profile
Level up your Python skills with our expert-led courses:
Working With JSON in Python
Exploring Basic Data Types in Python
Support the podcast & join our community of Pythonistas

Apr 17, 2020 • 1h 3min
Exploring CircuitPython
Have you ever wanted to explore using Python with electronics? CircuitPython is a great platform to get started with. This week we have Thea Flowers on the show. Thea has been creating several hardware projects based around CircuitPython, and she talks about getting started on the platform.
She also answers questions about how she taught herself to design and prototype printed circuit boards. Thea discusses several of her open source projects, including Nox, ConductHotline, and getting involved with CircuitPython.
Thea was the conference co-chair for PyCascades, and we talk about how someone could get involved in volunteering for conferences. We also discuss building diversity in the community.
This episode was initially recorded at an earlier date, so we asked Thea to come back for a few minutes to discuss updates on her projects and about a recent honor she received.
Topics:
00:00:00 – Introduction
00:01:25 – Thea’s programming background
00:02:45 – Working with Google Cloud Platform
00:04:10 – Flutter developer relations
00:04:52 – Learning Python
00:06:07 – Working on open source projects
00:06:33 – Nox - Automated Python testing
00:07:03 – ConductHotline
00:07:38 – Contributing to CircuitPython
00:07:53 – More background on Nox and Tox
00:10:03 – Getting involved with CircuitPython
00:12:38 – MicroPython and CircuitPython
00:14:20 – Suggestions for starter board or kit
00:15:49 – What are you excited about in CircuitPython?
00:16:31 – Nina Zakharenko CircuitPython project
00:17:47 – Things you’d like to see improved in CircuitPython?
00:21:30 – Working toward consensus in open source projects?
00:25:41 – Winterbloom - Big Honking Button
00:30:25 – Creating circuit boards
00:34:32 – Winterbloom - Sol
00:38:49 – Code editor for CircuitPython
00:40:08 – Something you thought you knew about Python, but were wrong about?
00:42:14 – What are you excited about in the world of Python?
00:44:21 – Do you listen to music when coding?
00:45:29 – Being an organizer for PyCascades
00:46:53 – Getting involved and volunteering for events
00:48:16 – Ways to increase diversity
00:53:51 – Extended episode conversation
00:54:25 – Updates on the WInterbloom projects
00:55:24 – 2020 Q1 PSF Fellow Member!
00:56:32 – PyCon 2020 moves to online only
00:58:45 – How would you learn Python if starting from scratch?
01:02:10 – Thanks and ending
Show links:
Thea’s blog: thea.codes
GameMaker
Google Cloud platform
Flutter: UI toolkit
Nox
Break the Cycle: Three excellent Python tools to automate repetitive tasks - Pycon 2019
ConductHotline
Genesynth: Creating a Sega-inspired synthesizer
Circuit Python
Contributing to CircuitPython
Lessons learned from building a custom CircuitPython board
Circuit Playground Express
Nina Zakharenko CircuitPython Twitch Streams
Thea’s thoughts on CircuitPython: Blog post
Winterbloom Store
John Edgar Parks: Sol quantizing demo
DigiKey KiCad series
Code with Mu
Celeste: video game soundtrack
PyCascades
PSF Fellows 2020 Q1
PyCon 2020: Online
Level up your Python skills with our expert-led courses:
Threading in Python
Arduino With Python: Getting Started
Test-Driven Development With pytest
Support the podcast & join our community of Pythonistas

11 snips
Apr 10, 2020 • 1h 10min
Learning Python Through Errors
Do you get upset and frustrated when you experience errors running your Python code? This week we have Martin Breuss on the show. We discuss how to learn Python through errors, and how errors really are your friends.
Martin is a video course creator here at Real Python, and we talk briefly about several courses he’s created. We focus on his course about getting started with Django, as a jumping off point for the discussion.
Martin talks about his work with Coding Nomads, and teaching Python around the world. He also provides some tips on debugging and writing good questions.
This episode was recorded at an earlier date, and because of recent events Martin came back to discuss a new #StayAtHome Mentorship Program he’s working on. The program is meant not only for learners but also for those who want to try their hand at being a mentor. We also answer our first listener submitted question.
Topics:
00:00:00 – Introduction
00:01:18 – Martin Breuss - Introduction
00:04:52 – Programming background and MOOCs
00:10:17 – Creating Courses for Real Python
00:12:02 – Real Python - Django Course
00:14:50 – How can errors teach you?
00:18:27 – Reading errors from Django
00:22:31 – Working with Coding Nomads
00:24:16 – Common frustrations for students
00:26:52 – Comments and forums
00:29:46 – Asking good questions
00:34:24 – Debugging tips
00:36:37 – Course: Finding the right python code editor
00:42:46 – What are you excited about?
00:46:05 – MacOS Catalina Python issue
00:47:30 – Music for programming
00:48:51 – Extended episode details
00:49:29 – #StayAtHome Mentorship Program
00:58:48 – Listener submitted question
00:59:17 – How would you learn Python from scratch?
01:09:39 – Final thanks and links
Show links:
Finding the Perfect Python Code Editor - Video Course
Get Started With Django: Build a Portfolio App - Video Course
Get Started With Django Part 1: Build a Portfolio App - Original Article
Using Jupyter Notebooks - Video Course
Variables in Python - Video Course
Beautiful Soup: Build a Web Scraper With Python - Article
CodingNomads
CodingNomads Platform
AI Course With Sebastian Thrun and Peter Norvig
Rice University - An Introduction to Interactive Programming in Python
MacOS Catalina Python/GCC compiler issue
I don’t like notebooks - Jupyter Notebook talk by Joel Grus
FoxDot_ Live music coding with Python and SuperCollider
Leap Motion Controller (The hand tracker)
Geco - for making music with Leap Motion Controller
#StayAtHome Mentorship Program
Teaching Python Podcast
Humble Bundle
Pythonista Café
Real Python Community
Project Euler
Sololearn - Code learning app
m1m0 - Code learning app
Music to code to links:
Chillhop (The eternally studying girl)
Related Article on Her Test Results
Noisli - Just Noises
Classical music playlists on youtube
Level up your Python skills with our expert-led courses:
Getting Started With Django: Building a Portfolio App
Finding the Perfect Python Code Editor
Using Jupyter Notebooks
Support the podcast & join our community of Pythonistas

Apr 3, 2020 • 43min
Effective Python and Python at Google Scale
Have you been using Python for a while, but want to be more effective with your code? This week we have Brett Slatkin on the show. We talk about the 2nd edition of his book Effective Python.
Brett talks about the revisions he made for the book, and updating it for the newest versions of Python 3. He answers questions about who is the intended developer for the book.
Brett also discusses working on Google App Engine, and what it’s like to develop and maintain Python applications at Google Scale. Brett mentions a brief anecdote about working with Guido van Rossum, while they both worked at Google. He also provides advice about maintaining a large and aging Python code base.
Topics:
00:00:00 – Introduction
00:01:13 – Brett Slatkin - Programming background
00:02:00 – Python background and start at Google
00:03:22 – Working on Google infrastructure
00:05:36 – Is Python a good tool for infrastructure?
00:07:28 – PubSubHubbub
00:09:06 – Lobste.rs
00:10:03 – Starting to write Effective Python
00:11:12 – Who is the intended developer for the book?
00:12:45 – About the Effective series book structure
00:14:39 – What were the sections you were excited to rewrite?
00:18:41 – Moving away from Metaclasses in modern Python
00:20:43 – Python 3.8 in the book
00:21:03 – Using the walrus operator to build a switch/case statement
00:23:22 – Why did you feel Python made you a more productive developer?
00:28:02 – Working with Guido van Rossum
00:31:15 – What’s it like to work on the same code base for years?
00:33:35 – What is code rot?
00:35:10 – What would you put in a book about refactoring?
00:37:06 – What’s something you thought you knew about Python, but were wrong?
00:38:42 – What are you excited about in the world of Python?
00:40:24 – Do you listen to music when you code?
00:42:00 – End Credits
Show links:
Brett’s Blog - One Big Fluke
Real Python Community Interview with Brett Slatkin
PubSubHubbub - An open, simple, web-scale and decentralized pubsub protocol
Google App Engine
Alex Martelli - Wikipedia
Python in a Nutshell by Alex Martelli
Effective Python - 2nd Edition
“The Best Python Books” - RP Review of “Effective Python”
What is the appeal of dynamically-typed languages?
Python Type Checking - Real Python Article
Item 10: Prevent Repetition with Assignment Expressions
Lobste.rs - Computing-focused community
Scott Myers - Effective Effective Books - Blog Post
Bret Victor - “The Future of Programming”
Bret Victor - References for “The Future of Programming”
PyCon 2016: “Refactoring Python: Why and how to restructure your code”
What are you excited about in the world of Python?
Brett’s Pick:
PEP 554 – Multiple Interpreters in the Stdlib
Level up your Python skills with our expert-led courses:
Threading in Python
Cool New Features in Python 3.8
Python Type Checking
Support the podcast & join our community of Pythonistas

12 snips
Mar 27, 2020 • 55min
Learn Python Skills While Creating Games
Is game programming a good way to develop your Python programming skills? This week we have Jon Fincher on the show. Jon is an author on the Real Python team, and we talk about his recent articles on PyGame and Arcade.
Jon talks about his background working at Microsoft. We discuss if a game would make a good portfolio piece. We compare and contrasts the two popular Python game libraries of Arcade and PyGame. Jon also reveals ways to find assets for your own creations.
Want your question featured on the show? Here’s a new thing we’re trying out. Send us your question at realpython.com/podcast-question and we might feature it on a future episode of the show.
Topics:
00:00:00 – Introduction
00:00:56 – Jon Fincher
00:05:17 – Start with Real Python
00:07:08 – Is game programming a good way to learn?
00:13:16 – Setting specific goals and limits
00:19:28 – Is a game a good portfolio piece?
00:21:07 – PyWeek 29
00:22:58 – Al Sweigart books
00:25:00 – Comparing PyGame and Arcade
00:37:34 – Finding game art and other assets
00:41:04 – Licensing game assets
00:44:29 – Packaging your game and sharing
00:47:34 – What are you excited about in the world of Python
00:50:20 – Final Thoughts
00:54:13 – Conclusion
Show links:
TEALS: Help us close the computer science gap
Scrum for One
Raymond Chen: The Old New Thing Blog - You don’t know what you do until you know what you don’t do
PyGame
Real Python Article - PyGame: A Primer on Game Programming in Python
Pygame Zero
Arcade
Real Python Article - Arcade: A Primer on the Python Game Framework
The Python Arcade Library: Reddit Group
PyWeek 29: March 22, 2020
Quill Creates
Quill Twitch Stream
Al Sweigart Twitch Stream:
Al Sweigart: Automate the Boring Stuff With Python
Al Sweigart: Invent With Python & Pygame
Scratch (non-Python)
Snap! (non-Python)
Godot Game engine (non-Python)
Unity Game Engine (non-Python)
Unreal Game Engine (non-Python)
Tiled Map Editor
Pymunk: Pythonic 2D Physics library
OpenGameArt
Font assets
Distributing your Game: Real Python article on PyInstaller
Beeware: Write once. Deploy everywhere
Audacity: Free, Open Source, Cross-platform audio software
What are you excited about in the world of Python?
Jon’s pick:
ursina 3D Engine: Open Source Game Engine
Panda3D: The Open Source Framework for 3D Rendering and Games
Chris’s pick:
Real Python Podcast: Submit a Question
Level up your Python skills with our expert-led courses:
Make a 2D Side-Scroller Game With PyGame
Intro to Object-Oriented Programming (OOP) in Python
Support the podcast & join our community of Pythonistas