Reminder: “Python for non-programmers” continues tomorrow

This is just a reminder that my 100% free, weekly “Python for non-programmers” course is continuing tomorrow (Friday, March 27th) at 10 am Eastern. Join me for live discussion, coding, and Q&A as we march (slowly) through the Python language.

Sounds interesting? Sign up at !

We’ll be talking about making decisions with the “if” statement — one of the most common, but also important, parts of programming!

Signing up gives you reminders before each session, access to previous recordings, and access to our exclusive forum, where you’ll get homework questions, and be a part of our growing community of people who want to learn Python.

I hope to see you there. Questions or comments? Just contact me at, or on Twitter as @reuvenmlerner

Announcing: Three new advanced Python courses (and one free course for absolute beginners)

If you’ve been using Python for a while, and want to up your game, then I’ve got great news for you: I have released three new advanced Python courses, all available immediately from my online store:

Advanced Python data structures

This 5-hour course assumes that you’re familiar and comfortable with strings, lists, tuples, and dicts, and takes you to the next level. First, we review the built-in data structures, going deeper into understanding how they work, their relative efficiencies, and some more advanced techniques for working with them. Then we look at combinations of these data structures, and the trade-offs associated with such multi-level collections. Finally, we look at some the interesting data structures provided in Python’s standard library. Available at

Advanced Python functions

This 3.5-hour course assumes that you are familiar and comfortable with the basic writing and usage of functions, and want to go deeper. First, we talk about function objects and byte codes, and how Python creates them. Then we talk about Python’s various scopes, including nested functions — and some of the ways in which they can be useful. Finally, we talk about such topics as stack frames and type annotations. Available at

Advanced Python objects

Finally, this 7-hour course discusses Python objects in great depth. First, I introduce a number of the “magic” methods that you can implement on your objects.  Then we discuss such topics as context managers, multiple inheritance, properties, descriptors, and even metaclasses. If you’ve always wanted to learn about how Python objects work, and how you can use them to your advantage, this course is for you. Available at .

Python for non-programmers

is my 100% free, live, weekly course. Every Friday at 10 a.m. Eastern, I introduce you to the world of programming using Python. Anyone who signs up (for free) gets invited to the weekly Zoom session, as well as access to all of the videos (as they’re recorded) and Jupyter notebooks I use when teaching. If you’re new to programming, then I invite you to join me — and if you have friends, family, or colleagues who might be interested, please tell them! SIgnup is at .

Affected by the coronavirus?

I’ve long tried to make my courses as affordable as possible, giving discounts to students, seniors/pensioners/retirees, and people who live outside of the world’s 30 richest countries.

Today, I’m announcing a new discount code, for people whose job and/or finances have been disrupted by the coronavirus, covid-19, and the many types of pain that it is generating.  If you have been affected adversely by this crisis, and are interested in purchasing my courses, please e-mail me, at (You should also contact me if you’re eligible for any of the other discounts.) I’ll reply with an appropriate coupon code.


Just contact me via e-mail ( or as @reuvenmlerner on Twitter!

Announcing: Free, weekly “Python for non-programmers” workshop

This is a tough time for the world. Wherever you live, you have likely been affected by covid-19, the coronavirus that has been making its way to every country, city, and town.

Many countries, companies, and individuals are now restricted to their homes.  This can be frustrating in many ways.  Moreover, I’m not alone in believing that we’re about to see some very troubled times for the world economy.

I’ve been trying to decide what I can do, as a Python instructor, to help people in these trying times.  And after some thought, I’ve decided to offer a free, weekly live workshop for people with little or no Python programming experience

This workshop will be run as a live Zoom session on Fridays, with me teaching Python programming from the ground up.  This is similar to the “Python for non-programmers” course that I’ve been giving to Fortune 500 companies for the last few years — although it’ll be broken up over many weeks, and will hopefully have many more participants than I’ve ever had before.

This is an experiment, and I’m asking for your help in letting people know about it. If you, or someone you know, wants to spend an hour a week learning programming basics, then I invite you to join me in my “Python for non-programmers” workshop. 

I’ll ask questions, I’ll give exercises, and I’ll take questions. And I’ll tell lots of bad jokes, too. But in the end, I hope that you’ll learn, gain some skills, and have some fun not thinking about the news.

Not only will this workshop be completely free of charge, but I’ll be sharing each week’s recordings, as well. So if you cannot attend, or if you want to catch up on old videos, or even check out the Jupyter notebooks I use in each class, then don’t worry — all of that will be available to you, for as long as you want.

Sounds good?  I sure hope so!  You can join here:

Join my free, weekly “Python for non-programmers” workshop

When you join, I’ll send a welcome message.  And then I’ll send you connection instructions on Wednesday or Thursday.

Questions? Just contact me, via e-mail ( or on Twitter (@reuvenmlerner).

Last chance to level up your skills with Weekly Python Exercise B1 (advanced topics 1)

If you’ve been using Python for a while, then you know that it’s easy to learn — and even fun to use. But you probably also find yourself stuck on occasion, frustrated that the ideas and techniques don’t flow more easily.

The only solution to that problem is practice. And in Weekly Python Exercise, you get that practice — 15 weeks of exercises, accompanied by “pytest” tests, a private discussion forum, and monthly office hours.

The B1 (advanced topics, part 1) cohort starts tomorrow, March 10th. If you want to improve your skills with data structures, functional programming, classes, generators, decorators, and threads, then this is for you.

But don’t delay, because this is the last time I’ll be offering B1 in 2020.

Learn more, and sign up, at the Weekly Python Exercise B1 home page.

“Python Workout” is Manning’s “Deal of the Day”

I’m delighted to announce that my book, “Python Workout,” is Manning’s “Deal of the Day” for February 28th.

The book contains 50 complete exercises and solutions on all of the core aspects of Python — data structures, functions, comprehensions, objects, and iterators. It also has an additional 150 “beyond the exercise” problems to keep you thinking and practicing, even after you’ve completed an exercise.

One early reader said, “This is the best Python book I have ever reviewed and read in all my years working with Python. The challenges presented, the level of the programming, and the quality of the explanations by Reuven make this book a true Python jewel, a must have book in my Python library!”

The book is going through its final phases of editing and production. But you can already learn from it as a “MEAP” (Manning Early-Access Program) book online.

Get it for 50% off today, at! Just use the coupon code “dotd022820” at checkout.


Want to spend more time coding Python, and less time on Stack Overflow?

How many times a day do you visit Stack Overflow?  (If you’re like most programmers, the answer is “many.”)  Wouldn’t it be nice to just be able to write Python code, without interrupting your work every few hours to check (or double-check) something?

After all, whether you’re a data scientist, app developer, or just a hobbyist, your goal isn’t to search for answers to your problems. Your goal is to actually solve those problems.

Consider what would happen if you were able to use all of that search-for-answers time on actually solving problems:

  • You wouldn’t have to read bad and semi-bad answers before (finally) finding the right solution.
  • You wouldn’t have to mess with the answer you found, to make it appropriate for your situation.
  • You could take on bigger and more complex projects, because you’d be able to concentrate on the higher-level ideas and problems, doing the simpler stuff easily and quickly.
  • You would write shorter and more expressive code, impressing others and making future maintenance easier.
  • You would be able to delight your clients with faster turnaround time and more sophisticated solutions.

People are using Python for all sorts of amazing things nowadays. But you’re only able to do those amazing things when you’re solving problems, not when you’re dealing with the nuts and bolts, or searching for answers online:

  • 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.

On March 10th, I’m starting a cohort of Weekly Python Exercise, my 15-week course specifically designed to improve your Python fluency.   (This is cohort B1, one of three advanced cohorts I offer each year.)

This cohort is aimed at anyone with at least 6-8 months of Python under their belt, who wants to go beyond basic data structures, function definitions, and objects — learning about and getting better at such topics as:

  • iterators
  • generators
  • decorators
  • advanced object-oriented techniques
  • threads and processes

Learn more, get a WPE trial, and sign up for Weekly Python Exercise B1

Questions or comments? Just contact me via e-mail ( or on Twitter (@reuvenmlerner)

Last chance for Weekly Python Exercise A1

This is a final reminder that in a few hours, registration will close for Weekly Python Exercise A1: Data structures for beginners.

Again and again, WPE participants have said that Weekly Python Exercise was the boost they needed to become more familiar with Python.

Now, if Python fluency is your goal, then that’s great.  But for most people, Python fluency isn’t the goal — it’s a means to an end.  And to what end?

  • With more fluent Python, you can spend time doing your job, rather than searching Stack Overflow and Google.
  • With more fluent Python, you’ll write tighter, more readable, code.
  • With more fluent Python, you’ll be able to solve bigger and more complex problems than before.
  • With more fluent Python, you’ll be able to interview for — and get — more senior Python development positions.

The $100 you spend for this 15-week course will more than pay for itself in future earnings.  But if you find that the price is out of reach, remember that I give discounts to students, seniors/pensioners/retirees, and anyone living outside of the world’s 30 richest countries.  If this applies to you, then just e-mail me, and I’ll gladly give you the appropriate coupon code.

But don’t delay, because the first exercise will soon be going out to subscribers!  And I won’t be offering WPE A1 again until 2021.

Click here to join Weekly Python Exercise A1: Data structures for beginners

Is Weekly Python Exercise for you?

In just a few days, I’ll be starting a new cohort of Weekly Python Exercise A1: Data structures for beginners. From my experience teaching Python for 20 years, I’d say that this is one of the best ways out there to improve your Python fluency. That’s because it combines actual practice, automated “pytest” tests, and community interactions.

But don’t believe me! Here’s what previous participants have said:

  • 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. You provided both… your teaching is instrumental in drilling some concepts into our brains.
  • 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 expected to see Python in real world examples. I am not disappointed. During WPE, there were many examples, with a wide variety of programming blueprints.
  • 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.

So, WPE was right for them.  But is it right for you

  • If you have been using Python for less than one year, then WPE A1 will help you to understand how and when to use core data structures.
  • If you haven’t quite grasped when to use lists vs. tuples vs. dicts vs. sets, then WPE A1 will make this clearer.
  • If you feel like you’ll never remember or understand the many methods on core data structures, then WPE A1 will help you to understand and remember.
  • If you’re tired of going to Stack Overflow and Google multiple times each day, then WPE A1 will help.

But don’t take my word for it: You can sample WPE, taking you through two questions and answers to show you how it works.

Moreover: I’m running a free Webinar on Monday, and will be happy to answer your questions about Weekly Python Exercise, and how it works.  It’ll take place on Monday, at 17:00 Israel time; to convert it to your time zone, click here:

You’ll then be able to join me at the Webinar via the following link:

There are six different WPE classes; this is one of three beginner-level classes I’ll be running in 2020. But it’s the only time I’ll be running A1 — data structures for beginners. So if you want to improve your understanding of data structures, including how and when to use them, this is your chance!

Join WPE A1: Data structures for beginners

Remember: I offer discounts for students, seniors/retirees/pensioners, and anyone living outside of the world’s 30 richest countries. E-mail me at if you qualify, and I’ll send you a coupon code.


Looking back at 2019, looking forward to 2020

Hi, and welcome to 2020! The last year (2019) was quite a whirlwind for me and my work — and I thus wanted to take a few minutes to summarize what I’ve done over the past year. But the coming year looks like it’ll be just as exciting, if not more so, and I wanted to fill you in on what you can expect.

Let me start off by saying that I’m extremely grateful to have the opportunity to teach Python to so many people around the world, both in person and online. Thanks so much for your interest in my writing and work, and (for so many of you) for taking the time to e-mail me with corrections and suggestions. It means a lot to me.

Summary of 2019

  • On-site training: I traveled quite a bit in 2019, teaching in-person courses at companies in the US, Europe, India, and China. (And of course, I’m teaching quite a bit in Israel, where I live.) 
  • Conferences: I attended PyCon in Cleveland, Ohio, where I also gave a talk on “Practical Decorators” and sponsored a booth, where I gave away more than 800 “Weekly Python Exercise” T-shirts.  I also attended Euro Python in Basel, Switzerland, where I gave my “Practical Decorators” talk a second time, and met lots of great Python developers.
  • Local talks: I gave talks to local Python user groups in Beijing, China and Hyderabad, India.  I also met some some subscribers to my “Better developers” list in San Jose, California when I was there!
  • Online courses: I released three new paid courses in 2019:  Intro Python Functions, NumPy, and Pandas.  All three courses include many exercises, as well as video lectures.
  • Weekly Python Exercise: There are now six distinct versions of Weekly Python Exercise, three for beginners, and three for intermediate/advanced Python developers.  Each cohort has been larger than the previous one.
  • Book: My book, “Python Workout,” was released in early edition (MEAP) format by Manning, and is slated to be complete within the next two months. It includes 50 Python exercises to improve your fluency, as well as a lot of background material, additional exercises, and insights that I’ve gained in teaching over the years. I have been very impressed with Manning and all they’ve done to make the book far better than I could have done on my own.
  • Free online course: I also released a new, free online course, aimed at helping people who are interviewing for Python programming positions, called “Ace Python Interviews.” So far, the response has been overwhelming; I hope to get this course out to as many people as possible, to help them get the Python job of their dreams.
  • YouTube: I started a series of videos, walking through the Python standard library.  I had to pause that series in order to do a few other projects, but hope to get back to it within the coming weeks, and thus explain more about the standard library to the world. Subscribe to my YouTube channel to get regular updates!
  • Twitter: I recently started tweeting interesting questions that I get in my courses, along with their answers.  I hope to keep doing this a few times a week, to give short insights about Python based on real-world questions and problems.  Follow me on Twitter to get the latest!
  • Blogging: I wrote a number of Python-related articles on my blog this year, including one about the search path for attributes in Python, which I call ICPO — instance, class, parents, and object. 
  • Trainer Weekly: I continue to write my newsletter for trainers, about training.  If you’re interested in the business, logistics, and pedagogy of the training industry, then feel free to sign up!
  • Better developers: My free, weekly list about Python has grown to more than 14,000 subscribers from around the world, up from about 8,000 subscribers on January 1st of 2019. You can subscribe here:
  • Podcast hosting: After several years of co-hosting the Freelancers Show podcast, I left, along with my co-panelists.  We’ll almost certainly be starting a new podcast in the near future to help people with their freelancing/consulting issues.
  • Podcast appearances: I appeared on a whole bunch of podcasts in 2019, including Talk Python (twice), Test & Code, Teaching Python, and Profitable Python.  I also appeared on the “You Can Learn Chinese” podcast, where I talked about my journey learning to speak, read, and write Chinese. 

What’s planned for 2020

  • On-site training: I’m already booked solid through March of this year, and partly through September. I already expect to return to the US, UK, India, and China, and will try to announce it when I’m in town, to meet up with subscribers.  If you want to book me for in-person training at your company, please reply to this message — we can chat about your needs!  You can even book time to speak with me via this link:
  • New courses: I’m adding two new courses to my existing list. First, I have a new one-day course in “pytest” testing, which I’m very excited to start offering. I’ve also decided to go back to my roots in Web development, and I’m developing a new course in creating Web applications using Flask. The first course is already being taught, and the second will be ready by the spring. 
  • Conferences: I’ll once be sponsoring a booth at PyCon 2020, which will take place this year in Pittsburgh, PA. (And yes, I’ll again be giving out T-shirts!)  If you plan to be at PyCon, please let me know; I’d love to meet you in person.  (I’ve applied to speak, and hope that I’ll manage to get a slot there, as well.)  I am also planning to attend Euro Python in Dublin, Ireland toward the end of July.  I’m open to attending other conferences; if you are running a conference and would like to have me speak there, please drop me a line.
  • Online courses: I’m planning to release 3-5 new courses during 2020. At this point, I’m going to divide things up between introductory and advanced courses. The beginner courses will likely be about working with files and modules, while the advanced courses will likely be about iterators/generators, decorators, and advanced object-oriented programming.
  • Weekly Python Exercise: All six existing WPE cohorts are already scheduled for 2020, with WPE A1: Data structures for beginners starting on January 14th.
  • New Weekly Python Exercise courses: I’m planning to start new cohorts of WPE on specific topics, such as Web development, design patterns, and data science. These will follow the same WPE format, but be on particular topics.  I’m hoping to start at least 1-2 of these by the summer.
  • Certification: A number of people have asked me about certification for my courses. I have some ideas for how I’ll do that, and I’m going to try some experiments with WPE cohorts early this year to see how it goes. I realize that getting a certificate at the conclusion of a course is worth quite a bit, and want to help people to that end.
  • More “workout” books: I’m already speaking with Manning about producing additional “workout” books.  I hope to start on at least one by the end of 2020, and to have a MEAP available for people to start looking, tinkering, and responding.
  • Podcast: As I mentioned above, my former “Freelancers Show” panelists and I are looking to start a new podcast about freelancing in the near future. I’ll announce more details here.  I’m also toying with the idea of starting a Python-related podcast — if you have thoughts about this, please let me know!
  • China: I’m setting up a new company in China to distribute my online courses there, with Chinese subtitles and mobile payment support (aka AliPay and WeChat wallet). I hope to have more details in the coming months, but if you’re based in China and have insights into what people might want, I would be happy to hear from you.  (For now, my Chinese isn’t nearly good enough to teach in the language, so the lectures will continue to be in English.)
  • PySpa training: Earlier this year, my family and I took a vacation to Rhodes, a Greek island in the Mediterranean. It was October, but still more than nice enough to go in the water and enjoy the weather. I’m thinking of offering one or more of my 4-day Python courses at a similar venue, with intensive training during the day — and free time for swimming, eating, and touring at night.  If this sounds interesting to you, then please tell me what you think!

I hope that you also have some big plans for 2020. Best of luck with them, and I hope to see you at one or more of my courses and visits during the coming year.

Start the year with better Python fluency

It’s 2020, and there has never been a better time to be a Python developer. Just about every company is adopting Python — for data science, devops, automated testing, or Web applications.

There are also lots of ways to learn Python: In-person courses, online courses, books, YouTube videos, and the like.

If you’re like many people, then even after you’ve learned Python, you still don’t feel 100% fluent. You’re still searching on Stack Overflow or on Google. You aren’t completely sure how the syntax works, or in what situations you want to use different data structures.

It’s for this reason that I run “Weekly Python Exercise,” a family of courses designed to help Python developers to improve their fluency. Over the course of 15 weeks, you’ll solve problems meant to help you deepen your understanding of Python.

Between the problems, detailed solutions, private community forum, and live office hours, WPE all but guarantees that you’ll become a better Python developer — able to do more in less time, and take on bigger and more complex projects.

On January 14th, I’ll be starting a new cohort of WPE A1: Data structures for beginners. This course is perfect for you if:

  • You’ve been using Python for less than a year, and don’t quite feel comfortable with all of the different data types
  • You want to become more fluent with strings, lists, tuples, dicts, and sets
  • You want to know how to maximize the use of these data types
  • You want to stop relying on (and copying from) Stack Overflow so much

Lots of additional information about this course, including a sample set of exercises, is available at the Weekly Python Exercise site.

Questions or comments? Or do you qualify for one of my many discounts? Just e-mail me at, or hit me up on Twitter at @reuvenmlerner. I’ll answer your question as soon as I can.

But don’t delay! WPE A1 starts on January 14th, and won’t be offered until 2021. Which sounds even more futuristic and distant than 2020.