[python] Best ways to teach a beginner to program?

Use real world analogy and imaginary characters to teach them programming. Like when I teach people about variables and control statements etc.

Usually I start with calculator example. I say imagine u have a box for every variable and u have 10 card boards with numbers 0 - 9 printed on them. Say that the box can hold one cardboard at a time and similar ways to explain how programming elements work

And emphasis on how every operator works.. like the simple '=' operator always computes the right hand side first into one value. and put that value into box named "num_1" (which is variable name)

This has been very very effective, as they are able to imagine the flow very quickly.