What is the best IDE for game programming? (I was thinking about Visual Studio, but I want to hear your opinion).
Visual Studio is a great Windows-based IDE that is very popular and widely used, and is generally well regarded amongst people who make games. The majority of popular engines and libraries will provide project files or build instructions for Visual Studio. If you're comfortable with Visual Studio then personally I would suggest you proceed with it. Other popular options include Qt Creator and Code::Blocks.
What is better - OpenGL or DirectX (I know that they are both have good sides and bad sides, but I want to know which is used commonly and which is more peformance) and do you have any good tutorials or books for them?
This one often gets into holy war territory and both are quite capable but my impression is that DirextX is more commonly used for Windows-based games, and unless there are reasons to decide otherwise my personal preference would be to use DirectX rather than OpenGL. Either will be just fine, and you would probably best be advised to use whichever you are more comfortable with.
As for learning resources, both our "DirectX and XNA", and "OpenGL" forums have some great resources listed in the green "getting started" block you'll find in the right-hand sidebar when viewing the site in a non-mobile view. I would suggest taking a look at some basic tutorials for each and picking whichever feels more comfortable to you.
And of course do you have any advices or tips about making games for beginners.
Start small. You need to spend the time working your way up with smaller projects rather than trying to jump straight into your dream project. Take the time to learn your chosen programming language (apparently C++; I would personally recommend C+ Primer 5th Edition if you're after a book, or LearnCpp.com if you want an online resource), then work your way through some smaller games such as Pong, Breakout, etc. to learn the basics. Take a read through the article "Your First Step to Game Development Starts Here".
Don't be afraid to make mistakes or ashamed to ask for help when you need it. You're going to make lots of mistakes, but they're one of the absolute best ways of learning. There's no substitute for experience, so go out there and get some and don't let the mistakes you make along the way discourage you.
Dig in for the long haul -- there's always more to learn, and programming is really a life-long journey. See "Become a Good Programmer in Six Really Hard Steps". Don't let that scare you off though, it's also really rewarding, and you can make some really cool stuff while you're still learning!
Hope that helps!