CINXE.COM
Talk Python Courses
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="utf-8"> <title>Talk Python Courses</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="Home of the Talk Python courses. Find a beginning or deep-dive Python course on web, data science, or more in our library of over 270 hours of content."> <meta name="author" content="Talk Python"> <meta name="apple-itunes-app" content="app-id=1460583670"> <link rel="preload" href="https://images.talkpython.fm/static/img/hero-sized-80pc.webp" as="image" type="image/webp"/> <link rel="prefetch" as="image" href="https://images.talkpython.fm/static/img/talk_python_logo_mic.webp?cache_id=6287da" > <link rel="preconnect" href="https://fonts.bunny.net"> <link rel="preconnect" href="https://cdn.talkpython.fm"> <!-- <link rel="preconnect" href="${view.img_cdn_prefix}" tal:condition="view.cdn_prefix">--> <!-- <link rel="preconnect" href="https://uma.talkpython.fm" tal:condition="not view.dev_mode">--> <!-- <link href="https://fonts.bunny.net/css?family=ibm-plex-sans:300,300i,400,400i,500,500i,700,700i|lato:100,100i,300,300i,400,400i,700,700i,900,900i|open-sans:400|work-sans:400"--> <!-- rel="stylesheet" as="font"/>--> <link href='https://cdn.talkpython.fm/static/generated/css/packed.css?cache_id=f6f9ab' rel="stylesheet"> <link href="https://fonts.bunny.net/css?family=inter:300,400,700" rel="stylesheet"/> <link href="https://fonts.bunny.net/css?family=ibm-plex-sans:400,700" rel="stylesheet" as="font"/> <!-- Page specific content --> <link rel="alternate" type="application/rss+xml" href="https://training.talkpython.fm/courses/rss" title="Talk Python Courses"> <link rel="canonical" href="https://training.talkpython.fm"/> <script type="application/ld+json"> { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://talkpython.fm", "url": "https://talkpython.fm", "name": "Talk Python", "logo": "https://training.talkpython.fm/static/img/talkpython_logo.png", "sameAs": [ "https://x.com/talkpython", "https://twitter.com/talkpython", "https://github.com/talkpython", "https://fosstodon.org/@talkpython" ], "contactPoint": [ { "@type": "ContactPoint", "contactType": "Customer Support", "email": "contact@talkpython.fm" } ] }, { "@type": "WebSite", "@id": "https://training.talkpython.fm/", "url": "https://training.talkpython.fm/", "name": "Talk Python Training", "publisher": { "@id": "https://talkpython.fm" }, "potentialAction": { "@type": "SearchAction", "target": "https://training.talkpython.fm/search/all?q={search_term_string}", "query-input": "required name=search_term_string" } } ] } </script> <script async src="https://uma.talkpython.fm/script.js" data-website-id="e879edc5-0601-4db1-9412-2bc084d4c23a"></script> <link rel="shortcut icon" href='https://images.talkpython.fm/static/img/favicon.png?cache_id=c0dbfc'> <link rel="apple-touch-icon" href="https://images.talkpython.fm/static/img/apple-touch/apple-touch-icon-180.png?cache_id=b86ef5"> <!-- app version: 2025.3.17 --> </head> <body> <!-- Navigation --> <nav class="navbar navbar-default navbar-inverse navbar-fixed-top topnav" role="navigation"> <div class="container topnav"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand topnav image" href="/"> <img src="https://images.talkpython.fm/static/img/talk_python_logo_mic.webp?cache_id=6287da" class="logo-image hidden-xs img img-circle" style="height: 40px; width: 40px;" alt="Talk Python Logo - Nav Home" /> </a> <a class="navbar-brand topnav name" href="/"> <span class="logo-var">TalkPython</span><span class="logo-operator">[</span>'<span class="logo-key">Training</span>'<span class="logo-operator">]</span> </a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <li> <a href="/courses/all" title="Find your next Python course" >Courses</a> </li> <li class="hidden-sm"> <a href="/why-us" title="Why should you pick Talk Python Training for your Python courses?" >Why us?</a> </li> <li class="hidden-sm"> <a href="/business" title="See our special pricing for enterprise and corporate teams" >Business</a> </li> <li class="hidden-sm"> <a href="/apps" title="Install our mobile apps for the best experience taking our courses on your device." >Apps</a> </li> <li class="hidden-md hidden-sm"> <a href="/authors" >Authors</a> </li> <li class="hidden-md hidden-sm"> <a href="https://talkpython.fm/blog" data-umami-event="Blog" >Blog</a> </li> <li class="hidden-md hidden-sm"> <a href="https://talkpython.fm/episodes/all" title="Listen to the Talk Python To Me podcast" data-umami-event="Podcast" >Podcast</a> </li> <li> <a href="/account/register" title="Create a free account" >Register</a> </li> <li> <a href="/account/login">Log in</a> </li> <li> <a href="/search/all" title="Search our course library" ><i class="fa-duotone fa-magnifying-glass"></i></a> </li> </ul> </div> <!-- /.navbar-collapse --> </div> <!-- /.container --> </nav> <!--div style="margin-top: 50px; padding: 20px; background-color: #1f559c; color: white;text-align: center;font-family: 'Work Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; ">--> <!-- Notice: We will be offline from 10:00pm - 10:15pm US Pacific Time for a server hardware upgrade.--> <!--/div>--> <div class="home"> <link href='https://cdn.talkpython.fm/static/css/home.css?cache_id=02262b' rel="stylesheet"> <!-- Header --> <a name="about"></a> <div class="intro-header" style="background: white url(https://images.talkpython.fm/static/img/hero-sized-80pc.webp) no-repeat center center;"> <div class="container"> <div class="row"> <div class="col-lg-12"> <div class="intro-message"> <h1>Talk Python Training</h1> <h2>Online video courses for Python developers</h2> <div style="padding-top: 20px;"> <a class="btn btn-success btn-lg" style="font-size: 20px;border: 1px solid #333; border-radius: 5px; background-color: rgba(0,0,0, .6); padding: 15px; display: inline-block;" href="/courses/all" data-umami-event="Courses-via-CTA" title="Explore our catalog of over 270 hours of online Python courses." >Find your next Python course »</a> </div> </div> </div> </div> </div> <!-- /.container --> </div> <!-- /.intro-header --> <!-- Page Content --> <a name="newsletter-signup"></a> <div class="content-section-a newsletter-signup"> <div style="text-align: center;"> </div> <div class="container"> <div class="row"> <div class="col-sm-12 pitch"> <h3 class="notified-on-homepage">Get notified about new courses and more</h3> <a href="/getnotified" class="btn btn-lg btn-danger">Join our mailing list »</a> </div> </div> </div> <!-- /.container --> </div> <!-- /.content-section-b --> <a name="top-courses"></a> <div class="content-section-b top-courses"> <div class="container"> <div class="row"> <div class="col-sm-4 pitch"> <div class="course-image-container"> <a href="/courses/python-for-absolute-beginners" ><img src="https://images.talkpython.fm/static/course_images/absolute-beginners.webp?cache_id=621726" title="Python for Absolute Beginners" class="img img-responsive" alt="Python for Absolute Beginners"></a> </div> <h3><a href="/courses/python-for-absolute-beginners" >Python for Absolute Beginners</a></h3> <div class="subtext"> <a href="/courses/python-for-absolute-beginners" class="time">7.2 hours of content</a>, <a href="/courses/python-for-absolute-beginners" class="price">$49</a> </div> </div> <div class="col-sm-4 pitch"> <div class="course-image-container"> <a href="/courses/htmx-flask-modern-python-web-apps-hold-the-javascript" ><img src="https://images.talkpython.fm/static/course_images/htmx-course2x.webp?cache_id=22d67e" class="img img-responsive" title="HTMX + Flask: Modern Python Web Apps, Hold the JavaScript" alt="HTMX + Flask: Modern Python Web Apps, Hold the JavaScript"></a> </div> <h3><a href="/courses/htmx-flask-modern-python-web-apps-hold-the-javascript" >HTMX + Flask: Modern Python Web Apps, Hold the JavaScript</a></h3> <div class="subtext"> <span class="time">3.0 hours of content</span>, <span class="price">$39</span> </div> </div> <div class="col-sm-4 pitch"> <div class="course-image-container"> <a href="/courses/modern-fastapi-apis" ><img src="https://images.talkpython.fm/static/course_images/fastapi-modern2x.webp?cache_id=4cef06" class="img img-responsive" title="Modern APIs with FastAPI and Python" alt="Modern APIs with FastAPI and Python"></a> </div> <h3><a href="/courses/modern-fastapi-apis" >Modern APIs with FastAPI and Python</a></h3> <div class="subtext"> <span class="time">3.9 hours of content</span>, <span class="price"> <span class="price">$39</span> </span> </div> </div> </div> <div class="row"> <div class="col-md-4 "></div> <div class="col-md-4 more-courses"> <a href="/courses/all">See all our courses <i class="fa fa-angle-double-right" aria-hidden="true"></i></a> </div> <div class="col-md-4 "></div> </div> </div> <!-- /.container --> </div> <!-- /.content-section-* --> <a name="introduction"></a> <div class="content-section-a intro-summary"> <div class="container"> <div class="row"> <div class="col-sm-4 pitch"> <h3>Learn online</h3> <div class="icon red big"> <i class="fa-duotone fa-solid fa-circle-play"></i> </div> <div class="pitch-content lead"> Learn on-demand through high quality training videos. Our videos and additional resources are available 24/7 so you can learn what you need exactly when you need it. </div> </div> <div class="col-sm-4 pitch"> <h3>Lifetime access</h3> <div class="icon green big"> <i class="fa fa-unlock"></i> </div> <div class="pitch-content lead"> With our <a href="/policies/pricing" class="light-access-link" >pay once, own it forever</a> business model, you can rest assured that the courses you put time into become permanent resources for your career. </div> </div> <div class="col-sm-4 pitch"> <h3>High quality</h3> <div class="icon yellow sm"> <div class="spacer"></div> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> </div> <div class="pitch-content lead"> Online training from a source you can trust. Courses are written and presented by Michael Kennedy, the host of the Talk Python To Me podcast and professional trainer with over 10 years of experience. </div> </div> </div> </div> <!-- /.container --> </div> <!-- /.content-section-* --> <a name="bundles"></a> <div class="content-section-b bundles-section"> <div class="container"> <div class="row"> <div class="col-lg-4 col-lg-offset-1 col-sm-5 bundle-logo-home"> <a href="/courses/bundle/everything" class="light-access-link" ><img src="https://images.talkpython.fm/static/bundle_images/everything-bundle.webp?cache_id=883a95" alt="The Everything Bundle" class="img img-responsive"></a> </div> <div class="col-lg-6 col-sm-5"> <h3 class="section-heading">The Everything Course Bundle</h3> <div class="lead"> Are you serious about learning Python? Get the <a href="/courses/bundle/everything" class="light-access-link">The Everything Python Course Bundle</a>. <br> <br> With our bundles you own the courses forever, but you get all the courses at roughly 28% the list price.<br> <br> <div style="text-align: center"> <a href="/courses/bundle/everything" class="btn btn-primary " >See the courses <i class="fa fa-angle-double-right" aria-hidden="true"></i></a> </div> </div> </div> </div> </div> <!-- /.container --> </div> <!-- /.content-section- --> <a name="reviews"></a> <div class="reviews content-section-a"> <div class="container"> <div class="row"> <div class="col-sm-2"></div> <div class="col-sm-8"> <div class="clearfix"></div> <h3 class="section-heading">What students are saying</h3> <div class="lead"> <div> <blockquote class="review-text" > Can't recommend this highly enough to anyone who wants to learn to code or learn Python in particular. One of Michael's courses changed my career. Can't say enough good things about Talk Python training. <footer class="review-attribution" >Chris</footer> </blockquote> </div> <div> <blockquote class="review-text" > I just wanted to thank you for taking the time to make you're amazing training courses. I just got finished with the jump start by building 10 apps and it has been the best training course I've used by far. Most other courses or videos I've watched focus either on the concepts or just the application non have put them together and seamlessly as you have. I feel like i have an actual understanding of python now instead of just piecing things together i find on stack overflow. <footer class="review-attribution" >Gabe S.</footer> </blockquote> </div> <div> <blockquote class="review-text" > Michael, I just finished your "Modern APIs with FastAPI and Python" course - excellent course - very helpful, thank you for the great work! <footer class="review-attribution" >Tom</footer> </blockquote> </div> </div> <div class="text-muted"> Do you love our courses and want to tell the world?<br> <a href="/home/contact" >Send us a review</a> and we'll post it to the site. Thanks! </div> </div> <div class="col-sm-2"></div> </div> </div> <!-- /.content-section-* --> </div> <!-- /.content-section-* --> <a name="apps"></a> <div class="content-section-b apps-section"> <div class="container"> <div class="row"> <div class="col-lg-4 col-lg-offset-2 col-sm-5 podcast-logo"> <a href="/apps" class="light-access-link" ><img src="https://images.talkpython.fm/static/img/apps/tablet-screenshot.webp?cache_id=422332" alt="Talk Python To Me podcast" class="img img-responsive"></a> </div> <div class="col-lg-6 col-sm-5"> <h3 class="section-heading">Our courses, your device</h3> <div class="lead"> <br> Watch our courses on your device, on the go, or even offline! Our mobile apps are the best way to experience Talk Python courses on Android and iOS.<br> <br> <div style="text-align: center"> <a href="/apps" class="btn btn-primary " >Get the apps <i class="fa fa-angle-double-right" aria-hidden="true"></i></a> </div> </div> </div> </div> </div> <!-- /.container --> </div> <!-- /.content-section- --> <a name="office-hours"></a> <div class="content-section-a office-hours-section"> <div class="container"> <div class="row"> <div class="col-lg-6 col-sm-5"> <h3 class="section-heading">Courses come with free office hours</h3> <div class="lead"> <p> One of the challenges of self-paced online learning is if you get stuck it can be hard to get help to get yourself unstuck. </p> <p>That's why 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.</p> <p>Just visit your <a href="/account" class="light-access-link">account page</a> and click the <strong>office hours tab</strong> to see the upcoming office hour schedule.</p> </div> </div> <div class="col-lg-4 col-lg-offset-2 col-sm-5 "> <a href="/account" class="light-access-link" ><img src="https://images.talkpython.fm/static/img/landing/office-hours-sm.webp?cache_id=137608" alt="Office hours" class="img img-responsive"></a> </div> </div> </div> <!-- /.container --> </div> <!-- /.content-section- --> <a name="podcast"></a> <div class="content-section-b podcast-section"> <div class="container"> <div class="row"> <div class="col-lg-4 col-lg-offset-2 col-sm-5 podcast-logo"> <a href="https://talkpython.fm/" target="_blank" rel="noopener" class="light-access-link" ><img src="https://images.talkpython.fm/static/img/landing/talk_python_logo_500px.webp?cache_id=c8fd2b" alt="Talk Python To Me podcast" class="img img-responsive"></a> </div> <div class="col-lg-6 col-sm-5"> <h3 class="section-heading">Talk Python To Me podcast</h3> <div class="lead"> We created and host the <a href="https://talkpython.fm/" class="light-access-link" target="_blank" rel="noopener" >Talk Python To Me</a> podcast. This provides much of the inspiration and background for our courses.<br> <br> If you want to take your Python game to a higher level, you won't find a bigger assortment of interviews and insights with the leaders of the Python community.<br> <br> <div style="text-align: center"> <a href="https://talkpython.fm/episodes/all" target="_blank" rel="noopener" class="btn btn-primary " >Listen to an episode <i class="fa fa-angle-double-right" aria-hidden="true"></i></a> </div> </div> </div> </div> </div> <!-- /.container --> </div> <!-- /.content-section- --> <a name="pythonbytes_podcast"></a> <div class="content-section-a podcast-section"> <div class="container"> <div class="row"> <div class="col-lg-6 col-sm-5"> <h3 class="section-heading">Python Bytes podcast</h3> <div class="lead"> <br> <br> Looking to keep up with the latest headlines and news in the Python space? Be sure to listen to the <a href="https://pythonbytes.fm/" class="light-access-link" target="_blank" rel="noopener" >Python Bytes</a> podcast.<br> <br> <div style="text-align: center"> <a href="https://pythonbytes.fm/episodes/all" target="_blank" rel="noopener" class="btn btn-primary " >Listen to an episode <i class="fa fa-angle-double-right" aria-hidden="true"></i></a> </div> </div> </div> <div class="col-lg-4 col-lg-offset-2 col-sm-5 podcast-logo"> <a href="https://pythonbytes.fm/" target="_blank" rel="noopener" class="light-access-link" ><img src="https://images.talkpython.fm/static/img/landing/podcast-theme-img_500.webp?cache_id=0825e2" alt="Talk Python To Me podcast" class="img img-responsive"></a> </div> </div> </div> <!-- /.container --> </div> <!-- /.content-section- --> </div> <!-- Footer --> <footer> <div class="container"> <div class="row"> <div class="col-sm-2"></div> <div class="col-sm-3"> <div class="footer-column first"> <a href="/policies/pricing" title="Pricing policies and group discounts" ><i class="fa-duotone fa-dollar-sign"></i> Pricing</a> <a href="/expense-your-course" title="Use our pre written expense template to use your company's training budget with us"> <i class="fa-duotone fa-building"></i> Expense <span class="hidden-xs hidden-sm hidden-md">course</span> <span class="hidden-sm">template</span> </a> <a href="/purchase/redeem" title="Redeem a code for one of our courses" ><i class="fa-duotone fa-money-check-dollar-pen"></i> Redeem code</a> <a href="/authors"><i class="fa-duotone fa-people-group"></i> Authors</a> <a href="/policies/privacy"><i class="fas fa-user-secret"></i> Privacy</a> <a href="/policies/terms" title="Terms of Service"><i class="fa-duotone fa-file-contract"></i> Terms</a> <a href="/policies/environment"><i class="fa-duotone fa-wind-turbine"></i> Renewable</a> <a href="/courses/rss" data-umami-event="Subscribe-Courses"><i class="fa-solid fa-rss"></i> Course RSS</a> <a href="/office_hours/rss" data-umami-event="Subscribe-Office-Hours"><i class="fa-solid fa-rss"></i> Office Hours RSS</a> <a href="https://talkpython.fm/blog/posts.index.xml" data-umami-event="Subscribe-Blog"><i class="fa-solid fa-rss"></i> Blog RSS</a> <a href="/help/video-playback-issues"><i class="fa-solid fa-video"></i> Playback Help</a> <a href="/home/about"><i class="fa-duotone fa-circle-info"></i> About</a> </div> </div> <div class="col-sm-3"> <div class="footer-column social"> <a href="/courses/all" title="Take one of our world class Python courses" > <div class="icon-box"><i class="fad fa-phone-laptop"></i></div> <span class="footer-title">Courses</span></a> <a href="/apps" title="Download our free mobile apps to take our courses and learn offline" > <div class="icon-box"><i class="fa-duotone fa-mobile"></i></div> <span class="footer-title"><span class="hidden-sm">Mobile</span> Apps</span></a> <a href="mailto:contact@talkpython.fm" target="_blank" rel="noopener" title="Shoot us an email"> <div class="icon-box"><i class="fal fa-envelope"></i></div> <span class="footer-title"> Email <span class="hidden-xs hidden-sm hidden-md">us</span></span> </a> <a href="https://talkpython.fm" data-umami-event="Podcast" title="Listen to our popular Python podcast: Talk Python To Me"> <div class="icon-box"><i class="fa-duotone fa-mp3-player"></i></div> <span class="footer-title">Podcast</span> </a> <a href="https://uptimekuma.talkpython.fm/status/talk-python" target="_blank" title="Talk Python Operational Status" data-umami-event="Server-Status" > <div class="icon-box"><i class="fad fa-server"></i></div> <span class="footer-title">Server <span class="hidden-sm hidden-xs">Status</span></span></a> </div> </div> <div class="col-sm-3"> <div class="footer-column social"> <a href="https://talkpython.fm/youtube" target="_blank" title="Subscribe to us on YouTube"> <div class="icon-box" ><i class="fab fa-youtube" ></i></div> <span class="footer-title" ><span class="hidden-xs hidden-sm hidden-md">More on</span> YouTube</span></a> <a href="https://talkpython.fm/blog" target="_blank" title="Visit our blog" data-umami-event="Blog" > <div class="icon-box"><i class="fa-duotone fa-solid fa-blog blog-link"></i></div> <span class="footer-title" ><span class="hidden-xs hidden-sm hidden-md">Our</span> Blog </span> </a> <a href="https://bsky.app/profile/talkpython.fm" target="_blank" rel="noopener" title="Follow us on Bluesky" > <div class="icon-box"> <img src="/static/img/bluesky.svg" style="height: 32px;" alt=""> </div> <span class="footer-title" ><span class="hidden-xs hidden-sm hidden-md">Connect on</span> Bluesky </span> </a> <a href="https://fosstodon.org/@talkpython" target="_blank" title="Follow us on Mastodon" > <div class="icon-box"><i class="fa-brands fa-mastodon" ></i></div> <span class="footer-title" ><span class="hidden-xs hidden-sm hidden-md">Connect on</span> <span class="hidden-sm hidden-xs">Mastodon</span> </span> </a> <a href="https://talkpython.fm/github" target="_blank" rel="noopener" title="The Talk Python GitHub organization" > <div class="icon-box"><i class="fab fa-github" ></i></div> <span class="footer-title" >GitHub </span> </a> </div> <div class="col-sm-1"></div> </div> </div> </div> <div class="copyright-footer"> <p class="copyright text-muted small">Copyright © <a href="https://pdxwebproperties.com/">PDX Web Properties, LLC</a> 2016-2025. All Rights Reserved</p> <p class="made-with-love text-muted small">Made with <i class="fa fa-heart"></i> in Portland, OR, USA</p> </div> </footer> <!--suppress ES6ConvertVarToLetConst --> <script> var debug = debug || {}; debug.level = "prod" </script> <link href="https://fonts.bunny.net/css?family=ibm-plex-sans:300,500|work-sans:400" rel="stylesheet" as="font"/> <!-- RAW JavaScript (unpacked) --> <!-- Optimized JavaScript (packed) --> <link rel="preload" href="https://cdn.talkpython.fm/static/fontawesome-pro/web-fonts-with-css/css/font-awesome-training.css?cache_id=f304fa" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript> <link rel="stylesheet" href="https://cdn.talkpython.fm/static/fontawesome-pro/web-fonts-with-css/css/font-awesome-training.css?cache_id=f304fa" > </noscript> <script defer src='https://cdn.talkpython.fm/static/generated/js/packed.js?cache_id=71a700'></script> <a rel="me" href="https://fosstodon.org/@talkpython" style="display: none">Talk Python's Mastodon</a> <a rel="me" href="https://fosstodon.org/@mkennedy" style="display: none">Michael Kennedy's Mastodon</a> <!--link href="https://fonts.bunny.net/css?family=ibm-plex-sans:300i,400i,500i,700,700i|lato:100,100i,300,300i,400,400i,700,700i,900,900i|open-sans:400"--> <!-- rel="stylesheet" as="font"/>--> </body> </html>