Pour commencer je trouve pas qu'il n'y ai un langage plus approprié qu'un autre dans ce que tu demandes, la réflexion à se faire c'est surtout si tu veux faire du dev. web ou non déjà.
Même si certains diront que le C++ est mieux que untel ou que le C# est mieux que celui-ci, tu passeras par les mêmes bases qu'un autre langage, c'est-à-dire les variables, les boucles, les conditions ... Une fois que tu auras compris ceci tu cerneras un peu plus la programmation et tu pourras éventuellement mieux peser le pour et le contre d'un langage par rapport à un autre.
Ce que tu peux faire en C# ... Il n'y a pas vraiment de limite à vrai dire, si ce n'est dans le développement des jeux vidéos qui est assez agréable quand c’est de la 2D avec XNA mais trop vite limité pour la 3D, mais avant d'arriver à ça ...
Le C# n'est pas portatif aussi, c'est-à-dire que pour faire tourner certains programmes sous Linux par exemple tu peux avoir des limites (projet Mono).
Si tu veux t'aventurer dans le C#, regarde la première partie, et uniquement elle, du site du zéro qui est assez correcte car il s'agit des bases.
Par la suite diriges-toi vers developpez.com.
Personnellement j'aime assez bien le C# pour la 'rapidité' de création de petites applications, j'ai commencé le C++ et on comprends mieux certains mécanismes de la programmation car plus 'poussé' en quelque sorte.
C'est juste mon avis. 