I'm a beginner when it comes to programming, I have a very small background in python but not much. I want to make a simple platformer but don't know what language to use. I have seen people suggest c++ as a good language for gaming but I don't really know what else needs to go with it in order to make a game.
I realise I need to start off with a few games like snake or space invaders, but I want to learn a language that will create both those games and something more complex.
I'll be using an iMac to design and create the game.
C++ isn't a great place to start if you're not confident in programming. Python is a lot easier place to start, especially as you have a background in it (however small). You can run it with PyGame to make 2D games like Pong, Space Invaders etc. Invent With Python is a good starting point, it will take you through making games with PyGame and has a lot of different types of games in it.
Once you feel like you've gone as far as you can with Python, then moving on to C++ will be a lot easier, at which point you'll need SDL or SFML for 2D programming. Once you're happy with your work with those, then you'll want to move onto OpenGL/DirectX for 3D work.