What Nick said pretty much sums up everything you could say on the matter.
Personally, I wouldn't recommend a heavily OO language like C# or Java. In practice I find that the way they introduce objects to you is incredibly confusing to new programmers. In my opinion, you'd be much better off starting with a language like Python, where you will learn to use objects because of the benefits they bring, and not because the language forces you to.
Of course, you can't use DirectX with Python, but you can use SDL, which is more than enough for you to learn. I guess it depends on your specific circumstances.