1. What programming lang should I learn first? I don't care about the whole 'it's too hard for beginners' or 'you should start small and go big' so please give the most efficient and useful program lang.
If you don't mind the difficulty of the programming language and want to go for the most efficient and useful language, then the clear choice is C++. It is powerful, flexible, fast, and efficient - but even more important than that, it also has a lot of momentum behind it. C++ is essentially the industry standard for game development, and for that reason there are loads of resources for it. It is easy to find documentation, tutorials, books, and all kinds of information on C++ and more specifically using C++ for game development. Here are just a couple resources: http://www.cplusplus.com/, and http://www.learncpp.com/
2.I've been looking around and saw lots of IDE, compilers, APIs, library. Do I need these to make games with a program lang? What do I need to make a website-based game and a game that is software-based.
Think of an IDE as a Word program - but for coding. While it's not entirely needed, it provides a bunch of useful features that make software development much easier. A compiler is necessary - it turns the code you've written into a format the computer can understand. Most IDEs come with a compiler. As has been mentioned before, Visual Studio Express is a great choice of IDE for C++ on a Windows computer.
APIs are essentially a layer of code between the hardware of the machine and your own code. APIs allow access to things like video, sound, and input (such as the keyboard and mouse), among other things. Popular choices for APIs around here are SDL and SFML. APIs are in fact libraries, but there are extension libraries to add functionality. These libraries are not necessary, but there are at least a few you'll inevitably end up using.
3.How should I begin making graphics for games?
Start with 2D graphics. It is easy to implement and both SDL and SFML come with support for 2D graphics.
4.Also, any general tips that you can give me would be greatly appreciated!
Don't bite off more than you can chew. Start with making simple games like tic-tac-toe before moving onto things like Tetris, and later side-scrolling platformers. After that you may consider developing a 3D game.