Hey, I am a Junior in college as a computer science major. I have been programming primarily with C & C++ on fedora using vim and gcc or g++ compilers.
I am curious though as to how to go from what I am doing and do some basic game programming, where I should start. I would like to use my free time/ Christmas break to learn a little bit and maybe get a mediocre 2d game working.
You'll want a library for graphics. The most popular are SDL (C) and SFML (C++). There is also Allegro which is C++ IIRC.
Looking for tutorials for the library you choose should be enough to get you started.
@Shren, the OP said that he was using Fedora, which is NOT windows. Therefore, C# (and other .NET options provided by Microsoft) won't work unless using some kind of windows emulator (or just switching to a windows operating system).
From my point of view, I taught myself OpenGL as another option instead, though it can take a bit more work than the others to do the same thing, and (unlike SFML or SDL) is simply a graphics library, rather than a multimedia library, so that it doesn't have functionality for things like opening a window, playing sound, recieving input, etc, so you'd either have to fiddle around with the X11 system or use a third party library (I used GLFW).
Of course, I did find another option the other day that I started learning, that is a C++ library for making 3d games, called IrrLicht. If you want to create a cool-looking 3D program without too much effort, I would recommend this, as it has a very intuitive API, and is also cross platform. It also has the advantage that it does most of the common things in 3D programming for you, such as calculating collision detection, implementing gravity, making a first person camera, etc. It also allows you to make maps and models in a graphical manner and simply load them with the engine, meaning that creating the world is no longer simply drawing lots and lots of rectangles, or implementing a heightmap, or other (simpler) ways of doing it.