Master the same tools, mental models, and techniques I used while working full-time on popular open-source Python projects with a combined 90,000 GitHub stars.
Join dozens of others who are writing more efficient code with more confidence.
I come from a data science background without a formal computer science education, and this course helped me better understand how to write clearer, more structured code and follow functional programming principles. It challenged me to rethink how I approach coding and gave me a better foundation to improve.
One of the most valuable things I learned wasn’t just specific tools, but a new way to think about Python — as a set of building blocks you can assemble to solve problems. It was absolutely worth the financial and time investment.
You watch YouTube videos, read blog posts, and maybe even bought a course or two.
And make no progress.
You're missing a cohort of other students. You need to exchange ideas with other devs with the same struggles as you.
Learn in an engaging environment with no boring slides, only live-coding. Solve hands-on exercises during the live sessions to verify your understanding.
Learning in an interactive manner is helpful and the most effective to me. Also being able to ask questions and get them resolved in real time is very beneficial.
I like your teaching style, and I think you make topics approachable and engaging. I learned things that were not necessarily the core point of the material by watching you work through rough code and answer questions. It is useful to hear questions from others in the course who have different experience levels or perspectives. It's also just more fun to work together in real time rather than on my own.
Learn to structure Python projects and publish them to PyPI.
Learn better looping techniques that allowed me to speed up a script by a factor of 1,300x.
I’m especially excited to apply generators to better handle messy data and recover from errors while processing iterables. I also appreciated the deep dive into tools like uv, mypy, and publishing to PyPI — I’ve already switched from Anaconda to uv because of this course.
Decorators and generators were especially exciting, and I’m looking forward to applying them in my own work.
Design code that you can reuse across your project, reducing the amount of duplicated code, duplicated logic, and duplicated structure in your codebase.
Increase the robustness of your codebase by using type hints and a static type checker to catch bugs in your programs without even having to run your code.
Learn how to use flexible type hints to express the invariants present in your code, so that you can benefit from the dynamic nature of Python and also the safety of statically typed code.
The most exciting part for me was typing, a very interesting module to explore further.
I learned something I did not know on each day. [...] Modularity was something I knew about but I really learned some fantastic rules on how to apply it. [...] This was one of those rare classes that I came away feeling like I learned WAY more about any of the given topics than I thought I already knew.
This cohort was exactly at the right level for me. The live sessions were engaging, and I learned a lot from you and the other people on the call. Decorators and generators were especially exciting, and I’m looking forward to applying them in my own work.
We’re really fortunate to have you put on these sessions — it’s not always easy to find mentors who can communicate difficult things simply, or who can truly meet you where you are. This course struck that balance perfectly. I really enjoyed attending and came away with a lot to solidify and apply.
The course was really interesting and fun. The live sessions were definitely the best way to learn, and the material felt well balanced — neither massive nor tedious. I’m leaving with the feeling of wanting more and going deeper into the topics. Having access to all the references and exercises will give me plenty of time to digest everything properly.
The live sessions were fantastic — your teaching style makes topics approachable and engaging. I learned a lot not just from the material itself, but from watching you work through code and answer questions. The course was a lot of fun, and it gave me more confidence in my programming skills. I wasn’t even sure I qualified as ‘intermediate’ before, but now I feel confident that I am.
Thank you for an excellent course and for sharing your experience and practical tips. I’m especially excited to apply generators to better handle messy data and recover from errors while processing iterables. I also appreciated the deep dive into tools like uv, mypy, and publishing to PyPI — I’ve already switched from Anaconda to uv because of this course.
I really liked the course, especially the focus on modularity — it makes code more expressive and structured. The exercises were particularly valuable because I could work through them at my own pace. I’d love to see more project-based learning like this.
I learned more in one week than I could have learned in multiple weeks teaching myself. Decorators and generators were completely new to me, and I now see how powerful they are. The interactive live sessions were incredibly effective — being able to ask questions and get them resolved in real time made a huge difference. This was well worth the time and energy.
The live sessions were very helpful, and I’m especially excited to apply decorators. I come from a data science background without a formal computer science education, and this course helped me better understand how to write clearer, more structured code and follow functional programming principles. It challenged me to rethink how I approach coding and gave me a better foundation to improve.
This was one of the best learning experiences I’ve had. I came away feeling like I learned WAY more about each topic than I thought I already knew, and now I really want to apply the concepts to get an even deeper understanding. The live sessions, exercises, and reference materials were all extremely useful. One of the most valuable things I learned wasn’t just specific tools, but a new way to think about Python — as a set of building blocks you can assemble to solve problems. It was absolutely worth the financial and time investment.
It was really a fun and very fruitful time! I had no doubts about the quality and usefulness of your course before joining, but it revealed to be really over the top. I learned more things than I thought was possible in such a limited time frame.
The sessions were very interesting, mixing fundamental knowledge with a lot of practical tips, with a little humour spread, and the exercises were spot on for applying the various notions so as to remember them instead of letting them disappear in the clouds of lost memory.
The supporting documentation is incredibly abundant and will prove very useful for future reference.
Thank you Rodrigo for hosting and animating such a great course.
I attended Rodrigo's Intermediate Python course last week and had the most excellent time. Rodrigo is articulate, knowledgeable and engaging, and the live sessions were a lot of fun. The roughly 50:50 split of theory and exercises meant there was plenty of time to consolidate learning. And there're a lot more exercises to continue the learning experience beyond the week. I strongly recommend Rodrigo and this course to anyone wanting to improve their Python skills.
I attended Rodrigo's Intermediate Python course. The course definitely showcases the depth of knowledge Rodrigo has. For me the biggest takeaway, it helped me to approach and solve problems in a more concise and pythonic way, which was a big positive in the coding interviews.
Rodrigo is a consistent source of generous, high‑quality technical insights about the [Python] language we know and love.
What I take from my experience is that Rodrigo tries – and succeeds – in explaining concepts in the simplest way possible, which makes learning much easier. Additionally, he is interactive with the students and always available to provide exercises and any other information we may need. I really enjoyed my experience, and I am sure that many others will also have an excellent learning experience with Rodrigo.
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.
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.
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.
Hi, I'm Rodrigo Girão Serrão from sunny Portugal 🇵🇹.
I'm a prolific Python author and speaker, with multiple books published independently and dozens of talks and tutorials given at the largest Python conferences in the world. I also blog frequently about Python and publish two Python newsletters: the mathspp insider 🐍🚀 and the daily Python drops 🐍💧.
I have extensive experience teaching people from all walks of life – from kids in school, to professionals in various industries, to retirees – and there is a clear consensus that my students enjoy my clear examples, the live-coding during my lessons, and most surprisingly: my quirky sense of humour.
itertools.collections.Many companies have training/self-development budgets for developers to use to improve their skills by taking courses, buying technical books, and more. To figure out if your company will pay for this course, you will have to ask them.
Here is an email template you can use to ask your company to pay for you to take this course:
Subject: Request for Training Expense Approval – Intermediate Python Course
Dear [Manager’s Name],
I hope you’re doing well. I’d like to request approval to enroll in the Intermediate Python Course offered by mathspp.com. This course is designed to strengthen practical Python skills for intermediate developers, covering topics such as typing, generators, packaging, and advanced OOP patterns.
The course includes live sessions, exercises, and opportunities for discussion, which I believe will directly support my growth as a developer and help me apply advanced Python techniques in our projects. By improving my skills in areas like code quality, maintainability, and project structure, I expect to be able to contribute more effectively to our team’s technical goals.
- Course name: Intermediate Python Course
- Provider: mathspp.com
- Format: Live cohort-based (4h/day for a week) with offline exercises and forum discussions
- Cost: $490
- Dates: [insert dates you're considering]
I believe this course will be a valuable investment in my professional development, and in turn, will benefit the team and company through more efficient coding practices and deeper technical knowledge.
Please let me know if I can provide any additional information to help with the decision. Thank you for considering this request.
Best regards, [Your name]
The live sessions take place from 3pm to 5pm UTC time on Tuesdays and Thursdays.
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.
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.
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 weeks.
You'll need 4h/week for the live sessions and about 2–4h/week for the exercises.
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.)
Please note: purchase parity pricing (PPP) is for individuals who are paying for their own course. If your company is paying for you to take this course, please remove the PPP discount during checkout.
If you are a student or are unemployed, you are eligible for an additional discount; just contact me and we'll sort you out.