It seems that this thread has actually created more questions in the reader mind, so I will clear much of the air.
Be concerned with learner friendliness of the language environment, technical support, and community experience rather than the language itself. The C# and Python are learner friendly in all the most important ways. Both also have a bright future! AAA games have been made with them, too!
Now, lets make the jungle simple with an easy outline, a kind of map of the game development region so to speak...
A game developer is accepted in the industry as being responsible for the creation of a game. Game developers usually do a lot of language coding. They can be corporations, corporate employees or free agent creators, indy alone or indy with a team, or simply a hobby game developer. (Note: A lone indy game developer might be everything, as many hobbyists are: Game Developer, Game Designer, Programmer, Artist, Publisher - all in one!)
A game designer is one who designs the game, to various amounts, and can work for a game developer, corporation, or as an independent agent. Often some language use is done, but some game designers do no coding - instead delegating it as they manage other teams. A few game developers design the game and handle all the art assets alone. Game designers can be a company or an individual.
Programmers can work as an employee of a game company or on a contract basis. The C++, C#, C, Java, Python are common, but Tao, Lua, Ruby, and others find their slot by needs and preferences.
Artists may be employed or self-employed in the gaming industry. An artist may be an individual or a team. The greatest selling AAA games tend to use much art, so consider this in your possible plans, though some games were popular for only game play.
There are several very common languages for making games and many more which are sometimes used. Each has advantages and shortcomings. Language of choice has much to do with type of game, individual needs, and game development organizational structure. What is better for a novice is unique, with some languages being far superior for many beginners - though there are almost always exceptions in the field in general - keep that in mind.
Here are the more common ones:
A case can be made that C++ is the current industry leader for complex AAA popular games, though it really takes a very experienced programmer to use the advantages in the extentions of C++ which give it adaptivity for large game or game engine source coding. With this language comes a very large, flexible, and complex language environment. Look for mainly .NET Framework for Windows and Mono for cross-platform, though many game engines have an SDK to fill most of this role for framework to run your game source code in the computer system. Complex games may require Visual Studio, MonoDevelop, or native game development environment provided by a game engine environment. There are some 3D and 2D render engines available if you want to make your own game engine source code - an advanced thing to do. Game system C++ examples are Ogre 3D, Unreal (Also in C# and more), and others.
The C# is one of the most learner friendly languages which also provides huge support in the game development environment. Unity 3D, XNA, SharpDX, Mono, Axiom 3D, and others are being used by both learners and experienced programmers. The non-game industry evolution almost guarantees that C# will have a bright game development future. The C# usage in the general commercial industry is gigantic and growing every day. It is a compiled language by nature, so performance potential is there. Game development friendly features such as object oriented programming, memory management ( auto - garbage collecting ), and dynamic writing are good enough for most games and improving with every language version release. The AAA games made with C# have proven that this language is a great option if you need it.
Python is also popular, but shares C# as learner friendly language and
support technologies. Blender provides a game development environment with a game engine in Python which probably has all that you will need for a long time. There are other game engines made in Python, so take a look at them - a few are outstanding. Python is an interpreted language that is also a memory managed language, freeing you to work on more game and avoid low level techicalilities for the most part.
Java is worth taking a serious look. It leads you to extreme cross-platform games, much technical support, and AAA games and simulations continue to be made with it. If game engine under your game is part of your long term goals, then you might want to get involved in one of these communities. It is fine for only a game, too. Though not as learner friendly in terms of the environment which comes with it, some have started with Java and happy that they did. It is technically challenging so that you really must need a community to help you learn game development in this language environment.
The C language has some AAA game engines and game community support. If game engine under your game is part of your long term goals, then you might want to get involved in one of these communities. A stand alone game can also be made with C. This is more of a low level technically challenging language than most, just so you know.
Ruby, Lua, Tao, and a few others have gaming communities. Popular games have come from them.
To summerize: In theory almost any language can be used to make an AAA popular game, but only a few are superior for beginner programmers because, not so much the language, but the technical environment plus the communities are the biggest advantages. However, the language, syntax, and memory management make C# and Python great choices. Many extensions and vast language development environment make C++, C, and Java possible but less than ideal for the learner programmer.
The IDEs, SDKs, frameworks, and communities allow almost any game development technology to be competitive for a long time to come, so worry not about becoming obsolete in your learning stage. Instead focus on having wise technology and community choices, all the while learning good programming habits!
Get used to research
, because it is the spine of game development. Your software environment is the skeleton and your programming ethic is the muscles. Put it all into motion and you will be just fine.
Personally, I would recommend C# with Unity 3D, XNA, SharpDX, or Mono. Python with an existing game engine is close behind. C# favored by me because of the need to have natively compiled language for certain 3D games that I want to make. Newbies who are in much need of confidence builder should probably go with Python and Blender.
1) Research and choose a learner friendly language environment
2) Make simple console applications such as "Hello World", simple data base, and letter display application.
3) The 2D games should be your first 5-10 games.
4) 3D games will demand a good graphics engine, so save this for a year or two in the future minimum.