Weekly Python Exercise A3: Object-oriented Python by Reuven M. Lerner

Weekly Python Exercise A3: Object-oriented Python

15 exercises for Python beginners, focusing on object-oriented programming.  Starts on Sept 17. 

Why do you use Python?

(Psst: Want to skip this text, and get two free, sample exercises from WPE?  Just click here.)

What’s your reason for using Python? Here are some of the most common reasons my students have told me (see if any of these resonate with you):

  • To harness Python’s power for data science, machine learning, and deep learning
  • To become an in-demand developer and get a satisfying, well-paying career
  • To develop your own personal projects that you’re passionate about

These are all totally legitimate reasons for wanting to learn Python. And many of the people who have learned Python from me have achieved these goals.

Most people who take my courses eventually want to get a rewarding, mentally stimulating, well-paying career using their Python skills.

And I can tell you that they chose the right programming language to do that. Here’s why:

Knowing Python is a valuable professional skill

There are TONS of jobs for people who can code Python. It's hard to exaggerate just how desperately companies are looking for people who know the language.

That’s why the majority of my time is taken up by being yanked around the globe by big companies that are begging me to come in and teach their developers how to write Python.

And a lot of the content in my online Python courses is adapted straight out of the classes I teach to developers who work for Apple, HP, VMWare, and others.

A warning before I go any further...

I’ve got good news and bad news. First the good news:

Python is a pretty darn easy language to jump into, whether you’re already familiar with some programming or you’ve never coded a single word. That’s why there are so many people out there trying to learn it. But…

Here’s the bad news:

Most of the 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.

Here’s the thing: once you know a bit of Python you’ll want to start using it to accomplish cool stuff (like machine learning or data science). 

But here’s the problem: the learning curve gets steeper at this point.

And you’ll find it more difficult to figure out solutions to problems that you don’t have enough knowledge to solve.

That’s a difficult barrier to get over. That’s just kinda how it is with Python. 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?

The key to getting over that skill barrier is Python fluency

Here’s an illustration to show you what I mean by “fluency”:

Picture yourself moving to a foreign country (where they don’t speak your language). And the only knowledge you have of their local language is from 2 years of language class you took in high school.

Living there would be really hard, right? With such a limited knowledge of the language you’d have a difficult time trying to communicate exactly what you wanted to say.

It’s the same thing with Python: only having a “survival level” knowledge of the Python language holds you back from really unlocking its full power and accomplishing what you want with it (and getting the attention of people who will pay you to write it)

How do you achieve Python fluency then? There are tons of resources out there on the Internet that you can use to get there, right?

Well, here’s the problem...

Online courses alone can never make you fluent in Python

If you try to learn Python by taking online courses, reading books, watching tutorials, or browsing forums, you’ll eventually discover the main issue they all have:

They only teach you basic concepts––they don’t help you become a well-rounded programmer that can see what needs to be done and instantly know how to write the code that’s going to accomplish it.

So what are these learning resources missing? What is it that’s going to take you from a “good enough” Python programmer (who can’t ever get past that skill barrier and start doing really awesome things with Python) to a “fluent” developer that has full command of the language?

There’s gotta be another way to learn… right? There is.


Weekly Python Exercise (for beginners)

15 Python problems designed specifically for beginners — that kick start your skills enough to actually be useful

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

Weekly Python Exercise helps immerse you in the language of Python. And it offers you 2 unique advantages:

  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

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 alone, I've taught courses for companies in the US, Europe, Israel, and China — and my schedule is packed solid through December 2019, with multiple courses scheduled for each of these countries and 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... 

WPE is not a Python course

Rather than being an online course where you simply read material, watch video lessons, and complete “assignments” that are never actually reviewed by the instructor, WPE is a series of 15 problem-and-solution exercises that are delivered to you by email over the course of 15 weeks (one exercise per week). Here’s how it works:

  1. When you sign up, you’ll be added to the “WPE A3 cohort” (a group of Python developers who are enrolled in WPE A3 at this time).
  2. Starting on September 17th, 2019, I’ll send you a new problem each Tuesday for you to solve by writing Python code
  3. You’ll have the following 6 days (Wednesday through Sunday) to formulate a solution 
  4. Each Monday (6 days after you receive each problem) I’ll send you the best solution to the exercise, plus an explanation of how I got there

You’ll also have access to the Weekly Python Exercise private forum. In this forum you’ll be able to discuss the exercises with others in your A3 cohort. 

Plus, I’ll host live office hours every month for the duration of Weekly Python Exercise. Here you’ll be able to 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).

Who is Weekly Python Exercise: A3 for?

Here’s the cool part: I created WPE: A1/2/3 because a lot of people on my email list asked me to make it.

The original version of WPE (now the B1/B2/B3 courses) were aimed at people with a couple years of experience using Python. 

After I released WPE, I was shocked with the huge number of of responses from people who wanted to enroll, but who felt they were too inexperienced with Python to understand the more advanced exercises. So I got to work on building the A-level WPE courses.

So who is Weekly Python Exercise A3 for? It’s perfect for you if:

  • You’re a Python newbie: you’ve recently started learning Python, but you’ve quickly become confused by the mess of information and learning resources available online or otherwise
  • You’re a programmer of another other language: you’re already into programming another language, but now you want to learn Python
  • You have always wanted to program, and have heard that Python is a great way to learn and you are simultaneously taking a Python course or reading a book. (WPE won't teach you Python or programming, but it'll reinforce the concepts you're learning in your course.)

Here are the topics that WPE A3 covers

The WPE cohort starting in September is for beginners.  There are three such beginner-level courses, called A1, A2, and A3.  The cohort starting on September 17th is A3, and will focus on object-oriented programming in Python.  (A1 focuses on basic data structures, and A2 focuses on functions and modules.)

  • Defining classes and instances
  • Defining methods
  • Composition of objects
  • Keeping track of shared state among instances
  • Inheritance
  • Basic "magic" methods, such as __str__ and __len__
  • Class methods

Join Weekly Python Exercise A3

Don’t wait: enrollment is only open until September 15th... here’s why

WPE courses are not always open.

Rather, each is a real-time “class”  delivered to you in separate pieces over a period of 15 weeks.

There are 4 reasons it’s done this way:

  1. So you can collaborate with others in your 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) 

So don’t wait to enroll until it’s too late! Sign up for Weekly Python Exercise today.

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 can start getting over that Python skill gap faster than if you were learning on your own.

“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 give you a valuable knowledge of Python that allows you to tackle challenges you’d face in real life settings.

“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 actually understand the material 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 

100% Money Back Guarantee (no time limit)

I’m confident that Weekly Python Exercise is going to help you get a valuable start in learning Python. So I’ll put my money where my mouth is. 

If you enroll in WPE (any cohort, not just this one) 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!

Join Weekly Python Exercise A3 today

Fifteen weeks to fluency in core Python skills. If you’ve been wanting to learn the same language that hard-core developers, devops engineers, and data scientists are using, Weekly Python Exercise A3 will short cut your path to get there.

Sign up for Weekly Python Exercise before enrollment closes on September 10th — or better yet, before early-bird pricing ends on September 3rd!


How much Python do I need to know to enroll in Weekly Python Exercise A3?

WPE is a family of courses, each 15 weeks long.  The A series, including A3, is meant for people who (a) took an intro Python course, and need to reinforce the ideas they learned, (b) never took a Python course, but use it every day in their work and want to really understand what they're doing, or (c) experienced programmers in other languages who want to make the transition to Python, and enjoy the "jump in, head-first" approach to things.

If you've never programmed before, then WPE A3 will probably demand a bit too much.  But if you're willing to put in the time and effort, then you might be able to make it work!  

Along with each weekly exercise, I’ll point you to resources (blogs, tutorials, and videos) that teach you what you need to know in order to figure out each exercise. This ensures that even if the course or tutorial you took isn't fresh in your mind, you'll still have the tools you need to answer the question.

And of course, a huge part of WPE is the community on the forum, in which people help one another.  Don't forget that by communicating with others and working through the problems with them, you'll be learning quite a lot

How long will the weekly exercises take me to complete?

Usually about 1 hour’s worth of work per week on average (if you’ve already been learning some Python basics). If you have no knowledge of Python, it will take longer, since you’ll need to read up on the learning resources I suggest each week.

What version of Python does WPE use?

Python 3 (as of this writing, 3.7).

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.

However, 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 (email me for exact discount percentage)

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?

You bet!  Just go here:


This is the "mini" version for all A-level WPE courses.  You'll get  two exercises (and their solutions), just as you would in the full version of WPE. This sample squeezes it into five days.

What topics do you cover in A3?

The WPE A series is for relative beginners in Python. I've divided them up into the following broad categories of exercises:
  • A1: Data structures and files
  • A2: Functions and modules
  • A3: Object-oriented programming

These aren't hard-and-fast rules, but they generally indicate the focus that I'll be putting on the exercise topics.

WPE sounds like a great way to increase our company's Python fluency. Can we have a private cohort, with our own forum and on our own schedule?

Yes, absolutely. Contact me, and we'll work out the details.

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!

When will other cohorts be opening?

B3, the third 15-week series for intermediate/advanced Python developers, will start in October 2019.

New cohorts will start again in January 2020.  I intend to have not just the existing ones (A1/A2/A3 and B1/B2/B3), but also to develop C-level courses, on specific topics.  Which topics, and when they'll open, is something I'm still developing.  I'll announce details as soon as I have them.