I had fun and also learned a lot when I retyped programs from magazines back in the day. I am not sure if it's suitable now but there is certainly some merit to the idea.

After typing in the program, I found that single stepping the program in a debugger greatly helped with understanding.