Learning a language's syntax and learning to program are two different things. This free course is about the second one. It assumes no prior coding knowledge and builds a working mental model of Python — types first — rather than a pile of memorised keywords.
It moves from the type system and variables through control flow, data structures, functions, and object-oriented programming, then puts the ideas to work in a couple of small projects before opening the door to more advanced territory.