I've been thinking a lot about teaching programming, and how it's often taught in the worst possible way, and how I learned it / self-taught in the worst possible way by bashing my head against the wall and never finishing any projects, followed by tutorial hell, until that post a month back or so ago and now I feel like the secrets of the universe have been unlocked. As far as learning to program goes, making arcade game/atari game clones is not a terrible way to do it. The real secret is that time is just another input state to be tracked, the same as controller inputs or anything else. Once you see time as an input to your system, then programming around time and real-time applications becomes not-so-hard or special.