C# mı Java mı sorusu yıllardır soruluyor, yıllardır da net bir cevap vermek mümkün değil. Çünkü her ikisinin de farklı kullanım platformları söz konusu. Ancak iki dil de birbirine oldukça benziyor. Zira C# oluşturulurken Java ve C++'ın gücü birleştirilerek oluşturuldu. Dolayısıyla gerek yapı olarak, gerekse de sentaks bakımından birbirlerine oldukça benzerler. Diğer taraftan C# ta bulunup, Java'da olmayan çeşitli özellikler de var. İşin içine .NET Framework mü JVM mi sorusu da girerse, testler .NET Framework'ün daha hızlı olduğu yönünde. Sıradan bir uygulama için bunun çok fazla önemi olmayabilir fakat komplike uygulamalarda performans önem arz edeilir.
Java ve C# arasındaki farklara şu sayfadan erişebilirsin: https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
Şimdi gelelim Xamarin meselesine... Xamarin son dönemde büyük bir çıkış yapmış ve açık kaynak dünyası tarafından da destek verilen bir platform. Ücretsiz sürümü de bulunduğundan deneyebilirsin. Xamarin ile uygulama geliştirmek için ya Visual Studio'yu kullanacaksın (ki buna aşinasın sanırım) ya da MonoDevelop tabanlı Xamarin Studio'yu kullancaksın. Android uygulaması geliştirmek için ise Java dilini kullanarak Android Studio'yu kullanman gerekiyor. (İsteyen Eclipse vs. ile de geliştirme yapabilir.) Diller arasında çok büyük bir fark yok, ancak platformlar arasında fark var. Her iki platformu da iyice araştırıp ondan sonra dil seçimi yapmakta fayda var. Şunu da ekleyeyim. C# bilen bir yazılımcı kolayca Java öğrenebilir. Java bilen bir yazılımcı da kolayca C# öğrenebilir.