Where To Learn Python Programming

I am in a number of Python (programming language) groups on Facebook. One very common question in those groups is “Where can I learn Python?” I assume that people also ask this question outside Facebook, so here is a list of free resources to learn Python (and other technologies) for beginners. The list is not exhaustive, of course.

Image by Pexels from Pixabay

Online Courses


Udemy is an online platform where you can learn about almost any subject on earth through video lessons. There are numerous courses on different technologies and programming languages, including Python. You can search for Python courses and filter for the free ones. (A few times I have found the filter was not available. Maybe there was some maintenance going on). The free courses are usually introductory but they can help you become familiar with Python.


Coursera offers video-based courses on a wide variety of subjects. Many of these courses are offered by universities and prominent companies such as IBM, Google and Amazon. You can take most of the courses for free or you can pay if you want to get a certificate.

NetAcad/Python Institute

NetaAcad offers courses in various technologies, including Python. Python courses are offered by Cisco Networking Academy in collaboration with OpenEDG Python Institute. Self-paced classes at NetAcad are free while instructor-led classes attract a fee. You can also pay for exams and certification.

Py4e (PythonForEveryBody)

Python For Everybody is a free Python course by Dr. Charles Severance. You can find the course on Coursera, on YouTube and at a dedicated site


W3Schools offers several tutorials on programming technologies, including Python. You can start as a total beginner, though, in my opinion, the material is more suited to be used as a reference rather than as lessons to follow step by step, especially for a beginner. The tutorials are text-based. You read on the web and you can try the code shown on an online editor right on the website, or you can try it on your own computer. They also have video tutorials that you access for a fee.

Harvard’s CS50

This free online course offered by Harvard University is not for Python only, but other languages as well. I have seen many people praise it as being excellent for beginners.

FreeCodeCamp offers lessons mostly on web technologies but also in data science technologies. Some lessons are text-based and some are video-based. They also offer learning paths that can lead to specific ob groups, such as front-end development, back-end development, machine learning and so on. They also have a job interview preparation section.


TutorialsPointt is quite similar to w3schools and also offers free, text-based tutorials on different technologies. You can also buy the same tutorials in a convenient pdf format.


Of course, there is good, old YouTube with numerous videos ranging from some on very specific coding techniques to entire courses as playlists or videos that are hours long.

Python Books (Or Reading Material)

If you want a book or material you can read, you can try the following.

Python Documentation

The official Python documentation is available to read online or download.

Conversational Python

Conversational Python is an online ‘book’ that is well suited for complete beginners and takes readers step by step in learning Python (and programming in general).

Beej’s Guide

Brian “Beej Jorgensen” Hall has written a beginner’s guide to Python. You can read it online and also download it as HTML or PDF.

Automate The Boring Stuff

Al Sweigart has written the Python book Automate The Boring Stuff that you can read online for free at

Brian Heinold

Dr. Brian Heinold has also written an introduction to Python programming that you can download as PDF or read online.

Think Python

Think Python is a free book by Allen B. Downey that provides an introduction to Python programming for beginners. You can download a PDF version, read it online or buy a copy at Amazon.

A Note On Certification

When it comes to programming, certifications matter only a little. A certificate shows that you have undertaken a certain course. However, a potential employer would be much more interested in seeing actual projects that you have worked on because projects show actual experience implementing the things you have learnt. Therefore, when choosing a course, especially if you are going to pay, I suggest you pay more attention to the projects that you will build in that course, than to the fact that you will get a certain certificate.

Please see this article on what to do after you have learnt the basics.

One-on-one Lessons

If you wish to have one-on-one lessons in Python (or PHP) or support from time to time as you learn, please consider the lessons/service that I offer.

I wish you well in your programming journey.