Your guide to Python and Pandas mastery
Want to learn Python, Git, and Pandas? Here is my recommendation for what to learn, and when, using the courses and exercises here at LernerPython.
Once you’ve joined LernerPython, where do you start? There are oodles of courses and exercises, and it’s not super obvious which one to take first. Yes, you can filter courses by name and level on the “course list” page, but if you want a clear roadmap, that’s not enough.
That’s where this page comes in. It points you to the courses you should take, in the order I suggest taking them. Of course, you might come to other conclusions; that’s fine, but please share your thinking in our Discord channel.
New to programming?
If you’re completely new to programming, then even my Intro Python courses will be a bit fast for you. You’ll want to start with “Python for non-programmers,” the 15-hour recording of a webinar I did back in 2020, when everyone was locked down during the pandemic. You can watch it here: https://lernerpython.com/ld-courses/python-for-non-programmers/ .
I use Jupyter in nearly all of my classes, and while you don’t have to do so, it’ll be easier if you install it, too. Here’s a YouTube video in which I describe how to install it on your own computer: https://www.youtube.com/watch?v=i2zM8OwxZok.
Intro Python courses
If you have some programming experience, but are relatively new to Python — and by “relatively new,” I mean that you’ve been using it for less than one year — then you should take my intro Python series.
- Intro Python: Fundamentals (https://lernerpython.com/ld-courses/intro-python-fundamentals/) — variables, values, loops, and core data structures.
- Intro Python: Functions (https://lernerpython.com/ld-courses/intro-functions/) — arguments, parameters, and scoping
- Intro Python: Files (https://lernerpython.com/ld-courses/intro-python-files/) — reading from and writing to files, including CSV and JSON
- Comprehending comprehensions (https://lernerpython.com/ld-courses/comprehending-comprehensions/) — list, dict, and set comprehensions, as well as nested comprehensions
- Intro Python: Modules (https://lernerpython.com/ld-courses/modules-and-packages/) — how to use and write modules, work with virtual environments (venvs), and work with PyPI and pip
Object-oriented Python
You can’t really know Python without knowing how to use objects — classes, instances, methods, inheritance, and the like.
If you’re totally new to object-oriented programming, then you might want to watch, “Object-oriented Python for newbies” at https://lernerpython.com/ld-courses/objects-for-newbies/.
Once you’ve gone through those “newbies” courses, or if you already have experience with objects in other languages, then you should take my full-fledged Object-oriented Python class, at https://lernerpython.com/ld-courses/objects-for-newbies/.
Finally, it’s not enough to write code. You also need to test it, and “pytest” is the best library for doing that. You’ll want to take my pytest (https://lernerpython.com/ld-courses/pytest/) class, a webinar in which I introduce how to test your code. I include this in the object-oriented section, because knowing objects really helps when working with pytest.
Exceptions
When something goes wrong in your program, the program doesn’t crash. Rather, it generates an “exception” — something that you can actually trap, or even raise, if you want to tell others that something unusual has happened.
Here’s a recording of a webinar that I did on October 2024 about exceptions: https://lernerpython.com/ld-courses/pandas-exceptions/
Practice makes Python
Before you go onto other, more advanced Python courses, you’ll really want to solidify what you’ve already learned.
As a LernerPython subscriber, you have access to Weekly Python Exercise, a set of 15-week courses that are 100% exercise. You get a new problem to solve each week, and then the solution comes to you (via e-mail) a few days later. (That way, you can’t peek!)
The three beginner-level WPE courses have general themes:
- A1 (https://lernerpython.com/ld-courses/weekly-python-exercise-a1/) is about data structures
- A2 (https://lernerpython.com/ld-courses/weekly-python-exercise-a2/) is about functions and modules
- A3 (https://lernerpython.com/ld-courses/weekly-python-exercise-a3/) is about object-oriented programming
Because these courses start as soon as you sign up for them, the LernerPython site is configured to give you access to the WPE courses, but not to start them until you actively enroll.
If you want even more exercises, you might want to check out my book, Python Workout, with more than 200 exercises to improve your Python skills. Unfortunately, I cannot give you a free copy of the book. (Sorry!) But you can get it in either hard-copy or e-book from https://PythonWorkout.com.
Learn Git
Git is an amazingly powerful version-control system, saving you from all sorts of mistakes and problems. Beyond that: Git also knows how to connect to servers (e.g., GitHub), which allows you to collaborate with other people without everyone stepping on each others’ toes. And if you’re looking for a job using Python, you’ll almost certainly need to use Git for collaboration.
Next, then, take my “Understanding and mastering Git” class, at https://lernerpython.com/ld-courses/git/.
One big thing that changed since I created that class is that Git’s default branch is now “main”, rather than “master”. Other than that, the course continues to be accurate, and will guide you toward Git understanding and mastery.
Advanced Python
If you feel comfortable and confident with all of the Python content you’ve gotten so far, you can move onto the advanced classes:
- Advanced Python data structures (https://lernerpython.com/ld-courses/advanced-data-structures/) — Go deeper into Python’s builtin data structures, and learn about some other useful ones in the Python standard library
- Advanced Python functions (https://lernerpython.com/ld-courses/advanced-functions/) — Learn how functions work behind the scenes, how to define and use nested functions, and other function-related tricks
- Advanced Python objects (https://lernerpython.com/ld-courses/advanced-objects/) — Understand how objects work, including properties and descriptors. Finally, understand why we need `self`, how functions differ from methods, and how inheritance works behind the scenes.
- Iterators and generators (https://lernerpython.com/ld-courses/iterators-and-generators/) — Learn about how `for` loops work, how you can add functionality to your own objects, how to write generator functions, and the role of generator expressions
- Python decorators (https://lernerpython.com/ld-courses/decorators/) — I recently gave a special lecture about decorators to our community, and that’s a good place to learn about them. Another option is to watch a recording of the tutorial I gave at PyCon US 2024, at https://www.youtube.com/watch?v=THv-m8niDho .
- Threads and processes (https://lernerpython.com/ld-courses/threads-processes-oct-2021/) — how to use threads and the “multiprocessing” module in Python for concurrency
- asyncio (https://store.lerner.co.il/live-class-asyncio) — recording of a webinar from 2021 on the subject; I will update this in the coming year, to reflect advances with the API in the Python standard library, but this is a good introduction to the subject.
Data analysis with Python
If you’re a member of my Python+data plan, then you have access to a wide variety of data-related courses I’ve created to get you up to speed:
- NumPy (https://lernerpython.com/ld-courses/numpy/) — learn the data structures and methods at the heart of data in the Python world
- Pandas (https://lernerpython.com/ld-courses/pandas/) — a monstrously huge course covering many, many elements of Pandas, which I will start to re-record in 2026 to include even more content, but broken up into smaller pieces (a la my intro + advanced Python courses)
- Applying functions in Pandas (https://lernerpython.com/ld-courses/pandas-applying-functions/) — how to apply functions to your data frames, and why you would do so
- Pandas dates and times (https://lernerpython.com/ld-courses/pandas-dates-and-times/) — the many ways in which Pandas handles date and time data
Practicing with Pandas
We’ve already seen how important it is to practice your Python skills. But practicing your Pandas skills is, in some ways, even more important. That’s because Pandas is such a huge, complex package, and the number of ways that you need to work with data is huge, too.
Here are two ways to improve your Pandas skills:
First, as a member of my Python+Data tier, you get a free subscription to Bamboo Weekly. Every Wednesday, I send a bunch of questions having to do with current events and using a real-world data set. The following day (Thursday), I send you my detailed answers, in the form of a Jupyter notebook.
Second, there’s my book Pandas Workout, with more than 200 exercises to improve your data-analysis skills. Sadly, I cannot give you a free copy of my book, but you can get either a paper or online copy at https://PandasWorkout.com.
Office hours and Discord
If you have questions about Python, Pandas, or Git, then I want to help!
First, check out our private Discord server, where you can ask questions about courses, share useful links, or show off what you’ve done with our community. Go to the “account details” tab on the “edit profile” page, https://lernerpython.com/my-account/edit-account/, and enter your Discord ID. Then click on the Discord link, and join our server.
Second, I hold office hours on a regular basis — once each month for Python, and a second time each month for Pandas. I announce the time of office hours in the forum (https://discord.com/channels/1249743821508710531/1297875604049231954 for Python, and https://discord.com/channels/1249743821508710531/1297876125749608479 for Pandas). Office hours are always recorded, and you can see those recordings (along with my notebooks) in Discord, as well.
But wait, there’s more!
I’m constantly doing “special lectures” on Python and Pandas, and trying to create content that’ll help you with whatever Python-related problems you’re having. Those are also announced in Discord, and the recordings are posted there, too.
I value your membership, and want to make it worthwhile, now and in the future. So please don’t hold back; if you have suggestions, ideas, or constructive criticism, you can always reach me at reuven@lernerpython.com.
