my notion would be to recreate the backbone of one game type or another from language to language...engine to engine---displaying something, sound functioning, movement, triggers, etc relative to whatever. My reasoning is that the classic hello world example might not give an accurate impression of how a given thing handles the variety of responsibilities it would have to live up to in realistic terms of game development.
I agree up to a point. Such a backbone is quite a huge task for a beginner, because it requires knowledge in many fields.
- Language syntax
- Methodology (procedural, functional, object oriented ...)
- General handling of data
- General handling of events
- Domain specific knowledge: Sound, Graphics
- Representation of game objects in the chosen language and methodology
I may have blown up this list a bit more than necessary. But I hope to show that such a backbone needs a lot of knowledge in a lot of fields, and I think it is too big for a training project, unless you already know about at least 30% of the issues.
Besides the points above I'd like to add:
- User interface design
or, more general, human-machine-interaction. It is not a key to success, but if you do it wrong, people will not like your products. So it is important to know about it, for the later projects of yours.
For the huge list of books, I'm not sure if this is good. My first book to learn C was bad. The second one was good, and got me going. You don't need more than one book for this, if you get the right one at the beginning. try to shrink the list to the essentials, and get one book - to get into programming, I'd either suggest a language specific book, or a methodology specific book. The more practical people will like the first, the more theory inclined the latter.
I'd save on books about game design, graphics and such until you have a firm idea of how programming languages work, what sets the one apart from the other, and which methodology suits your way to think the best - for example, some people like to think in objects, others find object oriented programming very counter-intuitive. You must find out what suits you, or train yourself to "think" in the way that fits to your tools. If it means something, it took me 3 years to get used to object oriented design after some years of procedural design work, and I never really got a good grasp on functional programming, although that is a very mighty concept too.