I am a C# developer - so call me as biased as you want...But I would recommend C#. I have done both but gave up on Java because I hated it for a bunch of reasons.
So why do I prefer C#?
- First and foremost, the IDE. I tried a bunch of the "top" java IDE's and none of them come close to Visual Studio - plus Visual C# is free (plus SQL server Express is free too).
- Next, although the actual languages look rather similar, I preferred the look of C# (yes, I know how superficial this is).
- Another big thing for me was to look at ecosystems and the environment(not IDE) around the language. Simply put, Microsoft has done way more recently for C# than Sun/Oracle has for Java. To see this, just look around for tutorials and resources. Microsoft has massive amounts of videos/literature/tutorials/docs, all of which are free. Plus with their MVP program alot of great developers feel special and end up writing amazing blogs.
- Also to do with the previous point, when I was learning both I relied alot on online material. And I found that alot of Java stuff(think j2me etc) is not clearly marked out and can be confusing for a new dev to even know what paths to take to get what they want done.
- Something that is big for me is to have a language that has quite a wide spectrum. Now I know that all of the Java dev's here will disagree with me on this one - but as much as Java is meant to be the open language that anything from a toaster to a car can run...it's not. For an example of this, simply find a webpage that has a Java applet. Atleast 80% of all PC's I've owned have never once managed to run a Java applet successfully. To this day on one of my PC's, every time I turn on (which isn;t often because I leave it on) Java pops up and tells me theres an update - and continues to never actually manage to install it. Then there's mobile devices. You get Android and the older J2me(correct me if im wrong Java folks!) which I'm sure you know from the beginning of MXIT days. Those were great days, but as soon as touch screen came in those apps sucked. There has been improvements that allow touch in them but it's pretty terrible. So Android is the new shiny thing now. But I watched a friend developing for it and two things stuck out for me very clearly. 1: The tools are terrible. 2: The docs are terrible.
- (continuation of previous point) So now how is C# different to that? Well, it runs on Linux and MACOSX via Mono - so that is possible (I do not know how good this is, as I have never needed to develop for either - but one of my previous students used to develop on his Mac). Next, ASP.NET is supported and integrated into IIS which means that without any installation (in some cases, minor installation) you have a server already setup for you. Now alot of people will tell you how terrible IIS is, and the older ones were, but since version 6 it has really improved and is now really descent. Then if you look at mobile development, for Windows Mobile 6 it is exactly the same as developing for Windows. But those phones are really dated, so lets move onto Windows Phone 7(WP7)...I installed the emulator, and had a working media app connection to the net and serving content in minutes, with no prior phone knowledge - this is because if you know .NET, you can develop across all it's platforms. Next is Silverlight. Silverlight is what Flash should have been, and is gaining traction for LOB (line of business) apps. So with that you can develop great stuff for the web, and desktop with OOB(out of browser). But once again, this isn't just restricted to web, because this is what WP7 uses for it's apps. Plus XBOX360 is about to allow Silverlight apps to be run on it. Also XBOX360 allows games to be written for it in XNA(a C# framework). And XNA also runs on desktop, Zune, and WP7. Then there are hardware things like the Netduino that allow you to write C# Micro straight to the circuitry to allow for things like little robots(yeah, terrible example - theres ALOT more to this!).
So to recap C# will allow you to learn ONE language and write apps for these things: Windows, MacOSX, Linux, Web Browser, Windows Phone, Netduino, Zune, and XBOX360.
Look, in the end it really does rest with you to decide which one you want to do. Find out all the fact's yourself (DON'T just take for granted that people on here - including me - are correct), and then decide what you think is right.
You have taken the most important step, which is deciding that you want to be a coder - congrats
I hope this helps!
p.s. I am currently a fulltime Silverlight developer about to go onto Windows Phone. Before that I was a C# lecturer(university level).