Intermediate Python course

Overcome plateaus to keep growing your skills

You’ve mastered the basics – now it’s time to go further. If you can write small functions, scripts, and simple programs but struggle with larger, more complex projects, this practical and hands-on course is for you.

You'll learn how to code like a fluent Python developer by leveraging powerful tools, best practices, and workflows, that boost developer productivity and code efficiency and readability.

Next intensive cohort: 31st March – 4th April.

Next paced cohort: 6th – 20th June.

Live sessions

You will have a total of 20 hours of live sessions where you learn about new tools and concepts. Then, you will have assignments to practice the tools and concepts you learned between live sessions. Each live session lasts 2 hours and you have 2 per day.

In the intensive course, you have 4 hours of live sessions per day during a full week.

In the paced course, you have 4 hours of live sessions on the following days:

Week 1 Week 2 Week 3
Tuesday x x
Friday x x x

Supporting material

As supporting material, you will have access to the recordings of the sessions, the assignments to practice, and a private discussion forum to get help from me and the other students for your assignments.

Why this course?

Many developers plateau after learning Python basics. Writing small scripts is one thing, but creating scalable, efficient, and maintainable software is another challenge. This course bridges that gap by giving you the skills and confidence to build larger, more sophisticated projects.

  • Stop writing inefficient code – Learn to optimize your scripts for performance and memory usage.
  • Master real-world development tools – Utilize the same frameworks and best practices used by professional Python developers.
  • Accelerate your career growth – Gain skills that will make you stand out in job applications and promotions.
  • Solve complex problems – Go beyond basic scripts and start structuring your projects like a professional.

If you want these benefits for yourself, sign-up now and grab your spot in the upcoming cohort:

What you will learn

When you finish the course you will be able to

  • write code that is more time- and memory-efficient by leveraging generators and better looping techniques;
  • code idiomatically by leveraging the most useful tools from the standard library;
  • write modular and reusable code by learning practical OOP techniques, decorators, and more;
  • structure your functions, classes, files, and projects, in a way that is easy to manage;
  • detect bugs even before running your code by using typing and static analysis with mypy; and
  • package your code to share privately across your own projects or publically with every single Python users.

This will only be possible because the course goes beyond theory. During the live sessions, I introduce new concepts and tools with live coding and examples, but the true learning will happen after the live sessions. That is when you will get your hands dirty as you work on hands-on assignments.

Who should take this course?

This course is perfect for:

  • Developers who are comfortable with Python basics but struggle with larger projects.
  • Software engineers looking to write cleaner, more efficient code.
  • Data scientists who want to optimize their scripts for performance and maintainability.
  • Anyone looking to improve their Python workflow, debugging, and packaging skills.

If this is you, sign-up for the next cohort and prepare to evolve your skills:

Praise for my teaching

20250307-2219-will-mcgugan

Rodrigo is an excellent communicator of Python technical content. You can rely on him to thoroughly analyze code and algorithms, yet express his findings in a way that is digestible for beginner and experienced developers alike.

Will McGugan – Creator of rich & Textual

20250307-2224-guilherme-latrova

Rodrigo has a unique and very practical way of teaching, mixing different concepts and applying them with Python and this unique ability makes complex problems look easy by how Rodrigo approaches them.

Guilherme Latrova – Python speaker & blogger

20250307-2221-mike-driscoll

Rodrigo is a great teacher who excels at showing how different approaches to the same code work. Rodrigo is able to break down difficult problems into easy-to-digest pieces that will help you understand the problem AND the solution.

Mike Driscoll – Author of “Python 101” & other Python books

About the instructor

Hi, I'm Rodrigo Girão Serrão from sunny Portugal 🇵🇹.

I've been using Python since 2012/2013 and writing about it since 2015 on my blog. I also self-published 8+ books and given multiple talks at the largest Python conferences of the world.

I have extensive experience teaching people from all walks of life – from kids in school to retirees – and there is a consensus: my students tend to enjoy my clear examples, my live coding during the sessions, and most surprisingly, my quirky sense of humour.

Frequently asked questions (FAQ)

What's the difference between the intensive and paced versions?

The content of the course is exactly the same. What changes is the time span over which the live sessions take place. The intensive course takes place in a single week, with 4 hours of live sessions per day. The paced course spans over 3 weeks (Friday of week 1, Tuesday + Friday of week 2, and Tuesday + Friday of week 3) with 4 hours of live sessions for each of the mentioned days. Regardless of the version you choose, when the course is over you keep access to the course resources, like live session recordings and exercises.

At what time will the live sessions take place?

The live sessions will take place from 3pm to 5pm and 7pm to 9pm, UTC time.

Where will the course take place?

The live sessions will take place on Zoom (the link for the meeting will be provided after you sign-up). The assignments will be hosted in a private GitHub repository and the discussion forum will be the associated GitHub Discussions page.

What are the prerequisites for the course?

This course assumes you are comfortable with programming and you know your way around Python; this is not a course for complete beginners.

The type of people who will benefit the most from this course include people who use Python to get things done but who are always putting out fires and don't have the time to learn Python best practices, or people who have been programming with other languages for some time and are transitioning to Python.

What time commitment is expected of me?

You will make the most of this course if you have time to attend the live sessions and work on the assignments between live sessions. If you don't set aside time to learn you will never make visible progress. So, expect a challenging but fun couple of days.

Are there any discounts?

The course has purchasing parity pricing (PPP) enabled, so you might get a discount based on the cost of living and local currency of where you are located. (This requires you to use a payment method from the same country you're located in, to prevent fraud.)

If you are a student or are unemployed, you are eligible for an additional discount; just email me with proof of your unemployment/student status and I will send you a discount code.

Sign up

Cohort Intensity Price
31st March – 4th April intensive $490 Sign up
6th – 20th June paced $490 Sign up

After signing up, I will reach out to you to give you access to the assignments, the discussion forum, the meeting for the live sessions, and to answer any final enquiries you might have before the course starts.

Questions?

Do you have any questions regarding this course? Use the form below to reach out to me, this goes straight to my inbox 📩.