My son showed me a game on his iPad called Cargo-Bot. It's a game where you give instructions to a robot arm to move/sort colored blocks. The really cool thing is, it gives you four separate "program" tracks (functions), allows each instruction to be attached to a conditional based on what color block is in the arm's grabber (conditionals) and lets you call programs recursively (loops). It's basically programming 101, but with a simple, visual interface.
Initially, he was trying to brute-force solutions by sending long sequences of instructions, but I told him the trick was to find repeating patterns of instructions and to isolate those into their own "program" tracks. He picked up the concepts remarkably fast.
In any case, other than being proud that my boy is wicked smaht, I think this game could be really useful for adults wanting to learn to code. It gives practical puzzles to solve using a small toolkit of basic concepts that cover a huge chunk of the core logic in real world programming. If you want to learn, but are intimidated by code, give it a shot.