Özellikle frontend'ci/fullstack olmak istiyorsanız bilmiyorum tabi ama madem Java'dan başladınız (hybris ne hiçbir fikrim yok) ve "üst seviye" bir developer olmak istiyorsunuz: db, mimari, messaging, monitoring, alerting, instrumentation (hatta belki devops) öğrenin. Backend dev olarak kariyerinize daha çok faydası olur.
Örneğin Java dev olarak muhtemelen SQL ve alakalı ORM'leri biliyorsunuzdur. NoSQL, özellikle de Mongo/ES ikilisine bi bakın. Bunların avantajları ne, hangi durumda kullanmak gerekir? Redis nedir, caching nasıl yapılır, ona bir bakın.
Messaging için rabbitmq, kafka ikilisine bakabilirsiniz. Bunlara niye ihtiyaç var? Consistency nedir, nasıl sağlanır?
Devops için: docker, kubernetes, belki biraz ansible. Şahsen ben ansible yerine bash yazıp geçiyorum ama çok kişi kullanıyor.
Java'da log'lama için ne kullanılıyor bilmiyorum ama jaeger ve grafana bakabilirsiniz. Sadece error değil performans analizi düzenli olarak nasıl yapılır, bottleneck'ler nasıl bulunur onu öğrenin.
Bunlara ek olarak sistem tasarımı da bakabilirsiniz. Örneğin şu an bir yere bakmadan bir whatsapp clonu tasarlayabilir misiniz? "Ne var canım, mesajı al, db'ye kaydet, sonra öbür taraftan socket aç çek" diyebilirsiniz ama mesaj grupları nasıl çalışacak, son görüldü nasıl hallediliyor, 10 milyon kullanıcı varken session'ları nasıl handle edeceksiniz vs. vs. milyon tane ayrıntısı var.
Bence bunları öğrenmenin en güzel yolu kendinize orta ölçekli bir proje belirleyip, en az 6 aylık bir süreçte implement etmek. Ben olsam spesifik bir domain için bi arama motoru falan yazardım (örneğin: haber sitelerinden kadın cinayetlerini crawl edip indexleyen, sonra da aramaya izin veren bi program), üstelik web-dev olarak temelleri daha iyi öğrenmenizi de sağlar.
İlla frontend diyorsanız: udemy'den maximilian schwarzmüller. Expert seviyede ders çıkarmıyor ama başlangıç için baya iyi.
0