Ask yourself another question first… What is your target platform? - By this I mean, do you want to focus on mobile games, desktop games, cross platform games or web based games.
I would recommend C++ for both 2D or 3D, it’s a little harder to grasp at first but once you get started you’ll be on a roll and your body of works will make you someone that will be ready to hire, there are other languages you can learn but it all depends on the answer to the above question.
C++ is probably one of the wider used and most useful languages both inside and outside of game development.
C# is a popular choice almost solely because of Unity, there are very few engines that utilise C# for game programming but Unity also supports another language too.
There is another language that is pretty easy to get into, well supported and capable of 2D and 3D developments with a handful of frameworks and engines to choose from… Python.
Alternatively there is Lua with the LÓVE 2D framework.
LUA and Python have to be the easier languages to grasp, but if you want to develop a career not just dabble with game development, then I’d suggest looking into C++ as you’re more likely to get a job after you learn your stuff with C++ than the others, but it all depends on your longer term career goals as well as your personal goals!
Have a little read over the websites for things I’ve mentioned here and SFML which is a C++ framework with a handful of useful learning materials and books, or Unreal Engine 4, which also has an amazing set of resources and a budding community, capable of real 2d and 3d developments.
I hope that helps… Good luck!