I have learned all the basic c++ thing pretty much the whole tutorial on this site. I want to learn game programming with c++ and I don't know which skills it requires, what should I learn first?
If you're going to learn Direct X I think you'll need to learn how to create a basic window using win32 programming first I believe.
It's probably much easier to learn a simple graphics library next like SFML in my opinion. So you can simply concentrate on the code for your game instead of trying to understand how the inner workings of direct x or opengl work behind the scenes. Here's a link to SFML:
You'd most likely try to learn Direct X or OpenGL later on if you really want to try creating a game engine of your own. But that is much too technical, and if you start with Direct X you may never even be able to apply it immediately to create a game.
I went through the SFML tutorials a few months ago and learned so much. It handles Win32 for you in addition to OpenGL and a few extras. This has three benefits:
1. Everything takes less effort to do (you can use a single SFML command to do something that would require 70 lines of code in Win32) so you learn faster.
2. It uses a C++ implementation on what would typically be C-code making code much more re-usable.
3. When you've got a handle on what you are doing, you can check out the open-source code and see exactly how it works, expanding on your own methods and relieving your dependency on that library.
Part of what I really like about this library is that it isn't just graphics, they have audio and networking libraries with simple tutorials as well which helped me to branch out a bit further and do some way more interesting stuff.
If you want to go straight to Win32 (which you CERTAINLY have to do before looking at DirectX or OpenGL), then try the following site for a good tutorial: http://www.winprog.org/tutorial/
Well, if you read the tut's on this site, you should be equipped to take on game-programming. You should be good at classes, if and else statements, and making templates, as well as pointers.