Where to start learning python and what should I load on my Ubuntu 16 Lenova laptop

I am trying to learn programming, starting with python, I want to know the best sight to get free lessons and if, and what I need to download to do so