Charles Severance‘s Python for Everybody is “the most popular programming course in the world, since 2014.” The course is completely free – and re-useable and re-mixable by anyone under a Creative-Commons license.
Severance is a really good teacher, and he does a lot of interesting things with free and open-source materials.
Recommended.
The first thing to understand is that the purpose of learning to program is because computers want to do things for us. They are built and created and designed and their hardware is set up so that they basically ask us “What do you want to do next?”
If you grab your phone, your phone sort of does nothing until you tell it what to do. It waits for you, and it’s just waiting for you, and all the hardware, computer technology around you, is generally waiting for you.
…
And it’s really, in a sense, in my mind, silly if you spend your whole life not really understanding this technology. And I think it’s important that we learn to tell these computers what to do rather than just let them increasingly control our lives.
…
So I’m bringing you into something where you’re going to learn the ways of programming and the ways of the computer because it’s easier to teach you how to program than it is to teach this [computer] how to work in your world, even though the goal is ultimately to get this to do work for you.
So part of what I’m trying to do is to move you from a user perspective, where you just look at the computer as something that someone else has constructed and you are the user of, to the point where you construct new things… to solve your own problems.
Charles Severance – Python for Everyone: Why Program?