I am a game programming major and although I am not an expert, I have created small games in Java, C++, C and Flash. I know most beginners would want to try to take the "easy way out" and jump into software such as XNA Game Studios, but dont. A lot of these applications auto-generate code which most beginners will not understand. Plus, these beginners usually lack the knowledge about the basic structure and logistics of game design for them to so easily jump into such software.
What I recommend is to start out very simple like in notepad or notepad++ and code a small game such as Pong in a format such as a java applet. That way, you can program in a widely used language making it easier to pick up. Plus a game such as pong will help you understand scoring, win and lose conditions and more importantly, game loops and collision detection.
If you find the Java and strictly OOP languages and having to manually import or draw graphics too difficult, then I recommend using Flash with Actionscript 3.0. All the crazy collision detections many people have trouble with is done with one function: hitTestObject() and graphics and movie clips can easily be tied together with code to have animations work seamlessly with code. These very same advantages are also considered disadvantages by many for Flash. It tends to do too much for beginners trying to understand game programming in terms of graphics and collision detection. This will definitely not help when switching to a language used to code much bigger 3D and graphics intensive games such as in C++.
If the objective is to code small, simple games, then try Flash first but if it is to eventually make a career in game development and work in a game studio that makes huge 3D games such as for Kaos, Relic, or Blizzard, then game programming in C++, and maybe C is a must.
Tutorials? em....there are some tutorials online. For Flash tutorials, you will see a lot of game programming tutorials written in Actionscript 2.0, but dont worry. There arent so many differences in the code, that it is unusable. A lot of the math and way the code is structured can easily be ported over.
Hope this helps

and tell me if you want to see some example code to get you started.