I think that the best for you is to start with c because its kind of base for a lot of programming languages and then go to what you are getting interested more like if you want web then learn HTML,php try to track worms things like that if you should like to make programs try c,c++ and to my opinion you shouldn't learn C sharp its not gonna help this language is starting to low profile , oh and if you whould like to program hardware I really suggest to learn c arduino I'm starting to like it oh and there is pyton that will help with brain waves and stuff and there is a lot more language so learn whatever you like : )
if you want to learn to program hardware....
learning arduino C would be silly, it's a one trick pony, specific to a handful of chips from the worlds smallest chip producer.
If you want to learn to program chips, then just learn basic ANSI C as a start, then once you've tried a few compilers you can settle on what extensions for specific chips you want to use.
Thing is you want to program hardware, but you can only program hardware that someone else already programmed a boot loader onto for you.
learn proper C and you can compile your programs and load them with a in circuit serial programmer that's going to be cheaper than buying just 1 arduino, and more flexible.
starting out by reviewing some example programs, and changing some bits and seeing how it all works is a good place to start. but the thing that gets me about arduino C is...
earlier in this thread (or it might have been another) berry pointed out that those who say, I'll learn VB, then I'll learn C# then I'll learn Java, then when I outgrow that I'll learn xyz... are wrong. it's practically impossible to "outgrow" most modern languages, give or take, most languages are going to either do, or have libraries to do what you want.
but arduino C is different, it's going to be easy to outgrow this, the first time you need more ports, more timers more interrupts than the mega provides.