Weekly Python Exercise

Become a more fluent, more professional Python developer — week by week, exercise by exercise. New cohorts open every 1-2 months, at both beginner and advanced levels.

Improve your Python fluency, and get the career you want

Become the fastest, most proficient Python programmer at your company.

What career opportunities would you have if you were a top 1% Python developer? 

Maybe you already have a decent understanding of it...

...but wouldn’t you rather know exactly what to code in every situation? To just “know” how to solve any problem off the top of your head, without spending hours scouring Stack Overflow or Google and rarely finding solutions that make sense?

If you were fluent in Python, you could...

  • Write better, cleaner, and more "Pythonic" solutions, more quickly than you could before.  Whether you're a freelancer or an employee, everyone will appreciate you churning out and creating reliable solutions more quickly than before.
  • Stand out as the local Python expert on your team.  Your boss will be impressed — and if they aren't, you'll be in a prime position to get another, better job.
  • Ace interviews at the jobs you most want, confidently answering their questions without secretly searching Stack Overflow on your phone.
  • Become a data scientist, contributing to everything from drug discovery to financial models to self-driving cars. (As you might know, Python is the leading language in data science and machine learning -- so knowing it is the key to getting a job in this hot industry.)
  • Create Web applications, using Python-based frameworks such as Django and Flask, to create sites like Instagram, Pinterest, and Dropbox.
  • Automate your home or office on a Raspberry Pi, integrating systems such as temperature sensors to microcontrollers in a single program.
  • Use a single language to automate everything on your computer, instead of using such domain-specific languages as VBA and bash.

Hi, I’m Reuven Lerner, and I help developers all around the world become fluent in Python

Companies like Apple, ARM, Cisco, Citibank, Ericsson, Intel, HP, PayPal, VMWare, and Western Digital regularly invite me to teach Python, Git, and data science classes to their employees.  

In the last year, I've taught people in the US, Europe, Israel, India, and China — and my schedule is packed solid months in advance, with courses scheduled in each of these companies.

In addition to my in-person courses, I make a lot of my knowledge available online, via my free newsletter and blog, as well as paid courses. But many of my students had certain feelings about online courses. And that is... 

Online courses and books about Python will never make you fluent

If you’ve learned Python through taking online courses, reading books, watching tutorials, or browsing forums, you’ve probably discovered something:

They only teach you basic concepts––they don’t help you become a well-rounded programmer that can understand any problem and quickly develop the best solution.

So what are these resources missing? What is it that’s going to take you from a “good enough” Python programmer to a fluent one that has full command of the language?

Practice. The very sort of practice I offer in Weekly Python Exercise.
Sign up for Weekly Python Exercise, starting May 5th

What students say

WPE is the best investment one can make. There are free MOOCs out there. I tried, but stopped before the end because they don't teach, they just show how to do some stuff.

I was a total python noob when I started.  I just wanted to learn the syntax, how to look at problems and find the solution.

WPE provided both.  Of course I did a lot of reading too but your teaching is instrumental in drilling some concepts into our brains.

Now, I'm doing CS level homework without thinking about the Python side.  
Jean-Pierre Bianchi
It works! The WPE has been very helpful in advancing my knowledge in Python. The exercises covered areas that I otherwise would have had a very difficult time finding information for. I would truly recommend this to anyone wanting to expand their understanding of Python.
Bill Kohler
I got what I wanted. I learned a lot of features of the language and had a fun time doing it. I also got to apply what I learned when programming for work.

I've told my friends and colleagues about WPE — because it's a great way to improve your Python.
Beirne Konarski

A warning before I go any further...

Most people who start learning Python on their own eventually hit a wall: they start getting stuck when they’re faced with complex problems that need to be solved with code.

At that point you’re “good enough” to write some code and execute some simple tasks. 

But the issue is that there are a lot of “good enough” Python developers who kinda just stay at this “not-a-total-noob-but-definitely-not-a-pro” skill level. 

And there are far fewer Python developers in that upper skill level who are the ones working on the really cool stuff like machine learning.

So how do you jump that barrier from “good enough” to “hard core” pro developer?

Introducing ... Weekly Python Exercise

WPE is a family of 15-week courses, each at a different level. Each cohort presents 15 problem-and-solution exercises that sharpen your Python skills and improve your fluency. Week by week, exercise by exercise, you'll move from “good enough” to “fluent.”

The best and fastest way to become fluent in any language is by putting yourself in situations where you are challenged to use it in new and unfamiliar ways. That’s called immersion.

But Weekly Python Exercise offers you 2 unique advantages over just pure immersion:

  1. It’s a “safe place” where there are no consequences when you try and fail
  2. You’re given the correct answer to every new problem you’re tasked with solving after you’ve had time to try solving it yourself

WPE is like no other Python course

Weekly Python Exercise is a series of problem-and-solution exercises that are delivered to you by email  (one exercise every week). Here’s how it works:

  1. The course always starts on a Tuesday. On that day, and every Tuesday thereafter for 15 weeks, I’ll e-mail you a new problem  for you to solve with Python code. I include tests written in pytest, both to check your solution and to learn more about testing.
  2. You’ll have 6 days (Wednesday through Sunday) to formulate a solution.
  3. On Mondays (6 days after each problem that’s sent out), I send  the best solution to the previous exercise and an explanation of how I got there.

You're never on your own

You’ll also have access to the Weekly Python Exercise private forum. In this forum you’ll be able to discuss the exercises with your fellow peers in the Weekly Python Exercise cohort. It has become traditional for people to share their code with others, so that students can learn from one another.

Plus, I host live office hours every few weeks. You can ask me questions and get clarifications on the exercises. (And if you’re unable to attend any live office hours session, you’ll have access to the recorded version).

What do we cover in beginner-level (A) cohorts?

See for yourself: Try a sample of beginner-level WPE here.

Beginner-level cohorts are focused on particular topics:

  • Data structures: Lists, tuples, dictionaries, sets, and files — alone, and in conjunction with one another.
  • Functions and comprehensions: Basic functions, positional and keyword arguments, *args and **kwargs, as well as list, dict, and set comprehensions.
  • Object-oriented programming: Classes, instances, instance attributes, class attributes, inheritance, composition, and magic methods.

What do we cover in advanced (B) cohorts?

See for yourself: Try a sample of advanced-level WPE here.

Advanced-level cohorts
cover a wide variety of topics, including:
  • Unlocking the immense power of decorators – learn how and where to implement them
  • Understanding threading and multiprocessing – and comparing the two of them
  • Advanced object-oriented techniques – finally getting them to “click” in your brain if you’ve been stumped until now
  • How to use lambdas – and exactly why you would use them in certain situations
  • Using functions and nested functions – optimize your programs to be more efficient, expressive, and easily maintainable
  • Passing functions as arguments to other functions – have control over how your functions work
  • The “collections” module – how “namedtuple”, “Counter”, and other classes can make your code shorter, more clear, and easier to maintain
  • Implementing iterators, generators, and the “itertools” module – make your job––and others’––easier by understanding the most important protocol in Python
  • Harnessing Python for consuming web services – automate the gathering of information from the Internet and use it in Python
  • Using Python as a “glue” language – automate translating file formats, retrieving and publishing data with JSON, and executing external programs.
Join the upcoming B1 cohort, starting March 10th

The most common objections to Python courses… and why Weekly Python Exercise is different

“I can get just as good at using Python by just putting in the time and effort to learn it on my own.”

I’m not going to lie to you, this is true. But just how much time are you willing to put in to become fluent? How much time are you able to put in? If you’re like most people, your time is already stretched thin. And learning through trial and error and searching the Internet for answers can take years… especially if you’re looking for solutions for very specific problems.

Weekly Python Exercise is designed to give you the most relevant, widely applicable skills so you quickly understand how to solve a large variety of Python problems. Each 15-week session moves you ahead, advancing your Python knowledge at a level that's right for you..

“Most courses only teach bare basics… they don’t help me understand how to solve most real-life problems.”

That’s true. One of the complaints I get most from Python users about other courses is that they’re too “top level”. The example problems they give you are way too simple… and the problems you face in real life are rarely as cut and dry.

This is literally why I created Weekly Python Exercise: to solve this issue. Every exercise has been thoughtfully constructed to help you cultivate a true mastery of Python through the kinds of challenges you’ll face in real life.

“Python courses can’t give me feedback or help when I’m stuck like a real person could.”

Yep. It’s extremely frustrating when you get stuck on something that a Python expert could easily help you with… but a lifeless online course just keeps moving forward, whether you’re read or not.

As a Weekly Python Exercise student, you can get help from real people in three different ways:

  1. Through discussions with other students in the private WPE forum
  2. By mentioning me in a forum post so I can respond directly
  3. During live office hours each month with me 

Get access to Weekly Python Exercise

Weekly Python Exercise is NOT an “evergreen” course (that is, a course that you can sign up for at any time and complete whenever).

Rather, it’s a real-time “class” that is delivered to you in separate pieces over the course of 15 weeks.

There are 4 reasons it’s done this way:

  1. So you can collaborate with others in the cohort who are working at solving the same exercises as you (through the private forum)
  2. So each office hours session revolves around the most recent exercises (rather than an unrelated mess of questions about other topics)
  3. So I can keep the exercises current and updated for each new cohort (and you’re not learning outdated or irrelevant information)
  4. So you can learn at the best pace to become fluent in Python (not too fast so you forget, not too slow so you get bored) 

100% Money Back Guarantee (no time limit!)

I’m confident that Weekly Python Exercise is going to help you become fluent in Python. So I’ll put my money where my mouth is. 

If you enroll in Weekly Python Exercise and find at any point that it’s not helping you move towards fluency, just email me and ask for your money back. No need to feel bad. 

I’m not even going to give you a time limit. No 30 or 60 day refund restriction. I’m a reasonable person, and I trust that you are, too!


The exercises are perfect for me because they are right in my "wheelhouse". I have enough background knowledge that the context of the problems is relevant in my experience, yet I can't just rattle off the solutions instantly. I have to puzzle over them as I try to solve them. I do usually achieve my goal of coming up with a solution that I am pleased with prior to the answer coming out on the following Monday. 

The course was really excellent in every significant way.
Doug Blanding
The thing is about programming is that you can read books til you're blue in the face, but you really need to use the language for it to all sink in.  Okay fine, but how can you tell if you’re writing "good code"?  This is where Reuven's Weekly Python Exercises really helped me. The best part is that you're not just working in a vacuum... there's an online community of others working on the same project each week. You not only get to see Reuven's answer, but what others have posted too, so you really get a spectrum of answers, and you learn a lot from comparing your code to others.
Larry Marek
The course requires that you research and try, and then try some more. I learn by doing and stepping through my code. Sometimes this is a quick process, at other times it’s slow and tedious. Either it helps reinforce what I have learned.

I’ve learned more in a short time from your courses than I have from other big name courses.
Alan O'Dannel

Weekly Python Exercise for beginners

WPE A1: Data structures

Starting January 5, 2021
Join WPE A1

WPE A2: Functions

Starting April 27, 2021
Join WPE A2

WPE A3: Beginner objects

Starting September 14, 2021
Join WPE A3

Weekly Python Exercise, advanced topics


Starting February 23, 2021
Join WPE B1


Starting June 22, 2021
Join WPE B2


Starting October 19, 2021
Join WPE B3


How much Python do I need to know for advanced cohorts of Weekly Python Exercise?

I'll admit that the term "advanced" is very ambiguous.  I divide the two levels of WPE as follows:
  • Beginner-level cohorts (A1/A2/A3) are for people with less than six months of Python experience. People with more experience will still learn something, but might find the challenges to be too simple.
  • Advanced-level cohorts (B1/B2/B3) are for people with at least 6-8 months of daily experience writing in Python. The topics are more of a grab bag, and there is a greater expectation that you'll find and research things on your own.

If you're unsure, then you can (a) ask me what I think, based on your background, and (b) try the sample exercises to see how closely they track your experience.

If you sign up, and find that you've chosen the wrong level, then I can either move you to another cohort or refund your money.  I've done both with previous students.

Do I have to take the courses in order?

You can take WPE cohorts in whatever order you want. The beginner-level cohorts are themed, whereas the advanced-level cohorts are always a mix of many different topics that I've found Python developers need to practice and better understand.

There are even people who take the beginner-level (A1/2/3) courses after they've already taken the intermediate (B1/2/3) courses, and learn a great deal.

What version of Python does WPE use?

Python 3. As of this writing, 3.8 was just released. I don't believe that we'll use any 3.8-specific functionality, so 3.7 or even 3.6 should be fine.

Am I required to participate in the forums or live office hours?

No, of course not! But in my career as a Python instructor, I’ve seen over and over that people who solve exercises together learn and retain more than those who don't.

If you can't make it to office hours, then submit your questions in an email, and I'll answer them — then, when you have a chance, you can view the office hours recording.

Am I really committing to a 4 month long course, 15 weeks in a row?

Yes and no. The content of the exercises, the discussions in the forum, and the topics of the live office hours will be tied to one another, and will reflect the most recent exercises.

But no one is forcing you to do the exercises along with everyone else! You can skip exercises or do them later. The forum and office hours recordings will be available for you to use, watch, and review at any time, forever.

I developed WPE to help you start learning Python in the most efficient, effective way possible. And it should only take about an hour each week, which is a very achievable time investment that will yield huge benefits for your career (or other Python-related goals).

Are there any discounts available for Weekly Python Exercise?

Yes, there are 3 discount options:

  • If you join with a group of 5 or more, each person gets 20% off
  • If you’re a student or pensioner, you get 20% off
  • If you live in any country outside the 30 wealthiest countries in the world, you can get a discount, as well

If you’re eligible for any of these discounts, contact me via e-mail, and I'll be delighted to provide you with the appropriate coupon code.

Is there a “trial” version or sample?

Yes.  There are two trials, one for the A (beginner) level courses, and a separate one for the B (advanced) level courses.

To try beginner (A) level WPE, go here:


For advanced (B) level WPE, go here:


Each sample consists of five e-mail messages:
  • Introduction
  • Question 1 + tests
  • Solution 1
  • Question 2 + tests
  • Solution 2
This mimics the way in which WPE works, albeit without having to wait until Monday to get the solution.

How long does each exercise take to solve?

It should take less than 1 hour. However that time will vary according to your Python skills, and the specific topic that we're addressing each week.

Are the exercises in WPE the same as those in your books and courses?

No. All WPE exercises are new and different from those in my books and courses. There will obviously be some similarity, since the same person (me) is writing them, but these are specially written and designed for Weekly Python Exercise.

Is automated testing a part of WPE?

Yes.  When you receive a new question each Tuesday, you'll also receive tests (written using pytest) that outline the functionality that your code is expected to answer.  This will not only help to clarify the specifications, but also drive your development in the direction of a working solution.  And it'll help you to better understand and use pytest!

WPE sounds like a great way to help my team improve their Python. Do you offer private cohorts for companies?

Yes, absolutely! Contact me via e-mail (reuven@lerner.co.il), and we'll find a time to talk.

I live in Israel. How do you handle issues like VAT?

If you live in Israel, then please don't buy any of my products (including Weekly Python Exercise) via this online platform. I'm obligated to collect VAT from you, and then to pass it along to the government.  Instead, please e-mail me for information about sending me a bank transfer. I'll then add you to the course, but we'll be able to handle it in the standard and legal way. I apologize for this frustration -- believe me, I wish that the platform I use for selling courses would support Israeli VAT, and I keep asking them to do so.

My question isn't answered here. How can I contact you, to ask for additional information?

Just e-mail me at reuven@lerner.co.il!