Learn Python: 7 of my favorite resources

Over the years, I've honed my Python skills thanks to these open source resources.
Register or Login to like
How to write a web service using Python Flask

Yuko Honda on Flickr. CC BY-SA 2.0

I made a decision recently that I wanted to learn more Python so I could improve my instructional skills and broaden the horizons of my students. In the process, I have discovered these excellent resources that have me learning new code and improving my understanding of Python in general.

1. Teach your kids to code

I began the Python journey about seven years ago when I discovered connections between Apple LOGO and the Turtle module in Python. The Linux computer I was using at the time defaulted to Python 2.7, and I soon discovered that I wanted to use Python 3. I managed to get it installed and began writing some simple programs using the Turtle module. After reading Dr. Bryson Payne’s Teach Your Kids to Code, I realized there was a lot more to Python than just Turtle. That’s when I installed IDLE.


Working with IDLE, the interactive interface improved my experience and made me confident enough to consider teaching Python to students. I volunteered to help a group of home-schooled children in my community and soon found myself teaching a class of sixteen! I’m glad their parents stayed and agreed to be my assistants, otherwise I think I’d have been overwhelmed. The experience whetted my appetite to learn more so I could teach more.

3. Mu Editor

The following spring in 2018 I attended PyConUS. I listened to a talk by Nicholas Tollervey, a middle school teacher, who had written a Python development environment for school-age children. The Mu editor has a linter built into it, which helped me to see where my errors in programming were. Mu helped me improve my coding skills, and I was able to share that with students, who benefitted as well.

As my confidence and experience grew, I became eager to share the Python journey with still more students. I co-wrote a grant the following year to teach a class that used Raspberry Pi 4 computers and Python. The pandemic interrupted that experience. In the interim, the Raspberry Pi Foundation released the Pi 400. In the spring of 2021, I used the materials I had developed the previous year and a generous grant from a local library to teach two groups of students how to program. That event was so successful that it was repeated this year.

4. Codium

Several years ago, I learned that Microsoft’s Visual Studio Code is an open source code editor that can be used on Linux. One of the aspects of my Python learning journey that had eluded me until recently was how to set up and use a virtual environment for Python programming, which had been suggested when using VS Code. My questions were answered here on Opensource.com in an article about venv, and that opened the door to learning how to set up and configure Python virtual environments on my Linux computer. Around the same time, I found Codium, a community project built around VS Code.

Now I want to share the VS Codium experience with my students and open their understanding of Python beyond the Turtle module. This zest for learning has me looking for training resources that are open source and freely available on the internet.

5. Python gently explained

The book Automate the Boring Stuff with Python by Al Sweigart has long been a favorite of mine. Now, the author has released Python Programming Exercises, Gently Explained. Both books are available online for free and are openly licensed with Creative Commons license.

6. Python for everyone

Dr. Charles Severance released Python for Everyone in 2017, which I highly recommend. He provides "bite size" lessons for aspiring programmers like me. The code for the course is available on GitHub, so you can download it and install it on your own computer or school network.

7. Python videos

Recently I learned that Opensource.com alumnus Jay LaCroix has an excellent series of twenty-eight videos available for free on YouTube that begin with Python basics and span the gamut of a solid introduction to Python programming. Best of all, he uses a Linux computer, so his lessons are especially appropriate for a Linux programming environment. One of the takeaways from these videos is learning to use nano as a programming environment, and it’s included by default in most Linux distributions.

Your learning path

These seven resources have helped me grow as a programmer, and it’s all open source and available to share with others. How have you been honing your programming skills? What would you like to share? Let us know in the comments.

User profile image.
Educator, entrepreneur, open source advocate, life long learner, Python teacher. M.A. in Educational Psychology, MSED in Educational Leadership, Linux system administrator, Follow me at @Don_Watkins . Mastodon ID

1 Comment

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.