Having recently learned it myself, I can only suggest C++ and SDL 2.0. I'm entirely self-taught in programming but I managed to pick up the library pretty easily. There are tools specifically for game development like Game Maker and Multimedia Fusion but they cost money, have no OpenGL support and run way slower. Unity works well but I've heard it's a bit overkill for purely 2D games. There's also SFML which is newer and easier to learn, but lacks mobile support and documentation as a result.
Game Maker's alright for learning very beginning stuff, like objects and variables and execution order. I wouldn't recommend buying it, but it's alright for making little experiments like Flappy Bird and Pong clones.
I've never had a performance issue with it, unless I made a typo and wrote an infinite loop of objects exponentially cloning themselves. If you're creating anything reasonable, then the performance will be absolutely fine (regular-person fine, not "The debugger says that that there was a 0.01 millisecond delay while using this function call, WORST ENGINE EVER" fine). Source: nobody complains about Undertale's performance, and that was made using Game Maker.
The
real issue with Game Maker is that it doesn't use any sort of real programming language. It uses its own scripting language, GML, which means you're stuck with exactly the functionality that YoYo sees fit to put in there; no more, no less. And YoYo's documentation outright lies in some cases. Third-party resources are skimpy at best, unless you love tutorials by fourteen-year-olds with terrible microphones.
You can extend Game Maker with DLLs, but that's about the point that I stopped caring.
And, finally, once you're ready to move on from Game Maker you can't take that experience anywhere else, since the way a Game Maker script is structured is so peculiar.
TLDR: Use the free version to make a few Pong clones or simple shoot-em-ups, then move swiftly on.