Where to learn Python for free?

December 23, 2015

Hi everyone,

Soon I’ll make some posts about Python, explaining interesting functions, basic stuff, data analysis with Pandas, Numpy, Scikit-learn, among others.

But, while I don’t do that, I gathered some resources so that you can learn Python any way that you want. The initial idea for this post is due to some lack of good resources to learn Python in portuguese. There are just a few, and they are mostly basic and none of them focus on specifics like Data Analysis, for example.

While I don’t work something out, I gathered some resources, evaluated them and listed them here. Every resource on this list is free, and for each one I’ll talk a little about them, their advantages, strengths. First, I’ll list the resources in english and them, the ones in portuguese. Here we go:

Resources in english

Learn Python The Hard Way

Classic reference for anyone learning Python, it goes from the very beginning, covering the most basic stuff and passing through operations, functions, lists, working with files. Excelent.

Official Tutorial: Python 2 or Python 3

Official tutorial for both Python 2 and Python 3. Complete references and always up to date, with constant revisions as the language releases new updates. So much information.

Automate The Boring Stuff With Python

This one is very cool. It teaches you the basics of Python and then shows you how to automate some repetitive and boring tasks with it. Tasks like renaming files, working with Excel sheets, extracting information from web pages. Very, very useful.


Another great one. Lots (really, lots) of tutorials with code and explanations, divided between themes (Basics, Web Dev, Game Dev, Finance, among others). Lots of content, from beginner to advanced. Highly recommended.

Making games with Python and Pygame

From the same creator of “Automate Boring Stuff”, this one is for those who think that they will have more motivation programming games. The author recommends a minimum knowledge of Python, but says that you can enjoy and learn even if you are a complete beginner.

How to think like a computer scientist

Interactive representation of the famous book “How to Think Like a Computer Scientist”. Explains a lot of stuff, with lots of code and lots of theory.

In Portuguese

Well, if you’re a portuguese speaker and want to check some resources in portuguese, there you go.


Codecademy is a website focused on programming learning. They have free courses on some programming languages, Python being one of them. In the courses, a lesson will be shown about a subject and then you will have to do some exercise to go to the next lesson. This will help you to fix everything you learn. You just need to create an account so you can track your progress. When you get stuck on the exercises, you can get some hints. Which helps a lot.

The courses start on the very beginner level and eventually cover some more advanced content. Highly recommended for complete beginners who wants to get a feel for how the language works.

Aprenda a Programar Tutorial

Great tutorial created by Luciano Ramalho, covering a good portion of Python. Great starting point, with code for Python 2.

Blog Python Help

The Python Help Blog, despite not having a structured tutorial, have many posts with tips and codes for specific subjects. The posts are usually well explained, with example codes (in Python 3 and 2) and comments.

Aprendendo Python Blog

Blog with lots of Python content, with posts talking about code and programming and also some more general posts, talking about the market, profiles of community people and more.

Python para Desenvolvedores Book

The “Python para Desenvolvedores” book, from Luiz Eduardo Borges, covers a lot of Python, including some more advanced content. Python 2.6 version is free to download on the link above, while the Python 3 version can be bought. Excellent book.

Well, I guess that is good for a start. As we could see, we have more complex resources in english, specially with we’re talking about more specific uses of Python, like Game Dev, Web Dev, financial applications. For Python Basics, there are some good resources in portuguese, but for more specific cases, there is a considerable scarcity.

Let’s try to change this? :)