I know a few other people have mentioned it, but I think programs like Game Maker, Construct 2 or Stencyl are great for beginners. Particularly Game Maker, since it is still fairly code-focused. They are designed specifically for games, and I think a new dev could learn a lot simply by playing around with them. They will learn how animated sprites work, what the game loop is, how basic collision detection and physics work (from a high level), among many, many other things. Plus, most of these packages have some kind of "event" or "action" system that allows the new dev to simply drag'n'drop logic blocks around. While it can be easy for coders to look down on this type of development, there are thousands of game developers who basically learned programming logic from working with these type of systems. And learning to "think like a programmer" is the biggest hurdle for any new developer.
It is a great learning environment for making games, and would be a good foundation to then move on to all coding, or even stay with them, as they are quite capable of making high-quality games (particularly Game Maker Studio).