First thing to understand is that learning ONE langauige wont make you a programmer. YOu will be severely limtied in your understanding - similar to knowing how to cook spaghetti does NOT make you a cook.
That being said, I would go with:
* C#. Get OO (Object Orientation) from the start - no sense to bee one more of those people too stupid to work with objects.
* C is always nice. C++ is really hard, but C gives you a different perspective than C#. As much as I love garbage collection, for example, programmers who have no clue about memory allocation are a pain in the ass

* Something low level would be nice. Some sort of older assembler (current x86 is really too complicated). Gives one some nice low level ideas about how a processor operates. THat said, it is definitely not something 99% of the people should work with productively these days.
In general, C# is a gerat langauge to start - sadly, just like Java, it abstracts away the memory side totally - and sometimes knowing a little more about that particular part can be great
For trading, the main question is what toolkit you use. Seriously. One CAN dump them all (i do that - for some time now, and am still not finished), but it is a LOT of work, and you are more likely to get into areas you need to know more low level stuff than for example in ninja trader where you have a framework all around you - albeit a terrible one in parts.