I would like to start developing my own games at some point.

I have been looking into C# and XNA a little bit but do not want to waste my time learning it in depth if it not as effective as other methods.

What is your opinion on the two?