Course overview

Proficient Python is a free online course designed to help you build real confidence in Python β€” whether you're just getting started or reinforcing your foundations. Through a blend of interactive articles, hands-on exercises, and real projects, you'll develop a solid understanding of the Python language.

Ready to get started? Jump into the first unit!

What you'll learn

The course covers all the core topics needed to write useful Python programs, including:

  • Variables, expressions, and functions
  • Logical conditions and control flow
  • Loops, lists, and list mutation
  • Strings and dictionaries
  • File handling and randomness
  • Object-oriented programming (OOP), including classes, inheritance, and composition

How you'll learn

This course offers multiple learning modes to support different learning styles:

  • πŸ“š Articles with inline quizzes β€” Read short lessons with embedded self-checks to reinforce key ideas.
  • πŸ’» Coding exercises β€” Practice writing real Python code in your browser with an integrated test runner. Need help? You’ll find:
    • Video walkthroughs
    • Scaffolded starter versions for each challenge
  • πŸ““ Unit projects β€” Apply what you've learned with creative, open-ended projects in Jupyter notebooks (hosted on Google Colab).

Getting help

While this course is designed to be as self-guided and supportive as possible, questions are totally expected! Here's how you can get help along the way:

  • πŸ’¬ Ask in the community: Visit the GitHub Discussions board for the course to ask questions, share tips, or see what others have encountered.
  • πŸ€– Use AI tools thoughtfully: Tools like ChatGPT or Claude can be helpful if you're stuck, but try not to just ask them for the solution. Instead, share your code and ask:

    • "Can you help me understand why this function isn't returning what I expect?"
    • "Here's the error message I'm seeing. What could be causing it?"
    • "I'm trying to loop through a list of stringsβ€”why isn't this working?"

    You may need to even specifically add an instruction like "Do NOT give me the solution."

  • πŸ™ A note about support: Because this course is free and open, there's no dedicated 1-on-1 support.

Teaching resources

You are welcome to use this course in your own teaching!

This course is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. You are free to share and adapt the content for non-commercial purposes, as long as you provide appropriate credit, indicate if changes were made, and distribute your contributions under the same license.

Check out the lectures page for slides to complement the course content. If you have any suggestions for improvements, please open an issue or start a discussion on GitHub.

About the author

Pamela Fox

Pamela Fox is the creator of the course. She originally created the course for the Uplimit learning platform, where she taught it along with Murtaza Ali. The course was inspired by her experience teaching Python for UC Berkeley CS61A, the first course in the Computer Science curriculum.

Before that, she developed interactive programming courses for Khan Academy, covering topics like JavaScript, HTML/CSS, and SQL β€” helping millions of learners get their start in coding.

Today, Pamela works as a Python Cloud Advocate at Microsoft, where she focuses on making programming and cloud technologies more accessible to everyone through tutorials, talks, and open-source tools.