A noter qu'apprendre un langage n'apprend en rien a developper une application ; le langage en lui meme n'est d'ailleurs qu'une tres petite partie de ce qui est necessaire pour la realisation.
Et encore, la on ne parle que du technique brut, il y a toute les connaissances qui vont derriere pour pouvoir implementer les algo. Une couche reseau, a part qq sockets pour envoyer des donnees, c'est surtout bcp de maths pour la partie theorique ; compression temporelle, securite et cryptage, redondace et robustesse, anti-lag et predictions, gestion de desynchronisations, etc. Tout cela, en termes de concepts, est tres "au dessus" du langage en lui meme.
Pareil pour tous les autres domaines...
A l'heure actuelle, je pense que vouloir developper soi meme les techno pour realiser un produit est une erreur ; soit on fait du technique et des outils, soit on fait le produit final en partant d'un framework qui marche (UDK, CryEngine, Unity, etc.). Un gros studio qui dispose de suffisament de ressources peut se permettre de faire les deux en parallele, mais cela est tres rare.