Bir yazılım dilini öğrenmek istiyorsanız yapmanız gereken en önemli şey analitik düşünme yeteneğinizi geliştirebilmektir. Eğer bir sorunu nasıl çözeceğinizi detaylandıramıyor ya da kurgulayamıyorsanız zaten sadece dil tabanlı giden diğer geliştiricilere karışırsınız. İster java ister c# ister obj-c hiç farketmez hepsinin temelinde aynı kurallar yatıyor. Bunları bir seviyeye kadar getirdiniz diyelim ardından işin içine patternler giriyor ben bu yazılımı / eklentiyi nasıl daha iyi bir hale getirebilirim. Nasıl daha performanslı (lightweight) olur diye kafa patlatıyorsunuz. O noktada işin içine sonar gibi birçok hata ayıklama kütüphaneleri giriyor. Java'nın diğer dillere kıyasla herkes tarafından abi çok zor denmesinin bence en önemli sebebi javanın metodik bir dil olması. Çok değil faydalı çalışıldığında "zor" sıfatı ortadan kalkıyor.