ilk paragradakilerden baslarken de haberdardim tesekkur ederim, diger paragrafta dediginiz gibi, anlatilip geciliyordu ve proje verilmiyordu. Lab dersi diye bir sey var ama lafta var, pratik yapilmiyor. Kendim Udemy, YouTube gibi platformlardan yapmaya ogrenmeye calistim hep.
Tamam, eğer başlıkta belirttiğiniz iki dilden Java'yı seçecek olursanız şunları "must" olarak kabul etmenizi tavsiye edeceğim.
-Belli bir seviyeye kadar Core Java ile, yani işinizi kolaylaştıran frameworklerden ya da kütüphanelerden pek yararlanmaksızın pek çok şeyi kendinizin oluşturduğu haliyle bir şeyler yapın, bir şeyi daha kolay ya da daha düzgün yapmak için gerekli kütüphane (.jar yani) bulup kullanmayı öğrenin, algoritma geliştirin, veri yapısı geliştirin, yazdığınız kodun kesinlikle OOP, SOLID prensiplerine uygun olduğundan emin olarak basit projeler yapın. Encapsulation, access modifier vb. şeyleri saymıyorum bile.
-Ezbere nedir ne değildir çat çat sayacak şekilde olmasa da Design Patternları öğrenin, yani creational, structural vb. hangi durumlarda, hangi sorunla karşılaştığımızda hangi pattern uygularsak kodumuzun yapısı daha iyi/temiz/düzgün olur. Singleton, factory vb. dışında da isim sayabilin.
-Veritabanı kullanın, kodunuza önce klasik olarak sqli bağlayın, sonra Hibernate frameworkü ile çalışın. (Native SQLi de bilin yani) Sonra mongodbnin kütüphanelerini kullanarak no-sql nedir, avantajı nedir vb. öğrenin, mongodb sorgularını, aggregationu hakkında yeterli kullanma deneyiminiz olsun.
-Kesinlikle Spring Boot öğrenin, frameworksüz Java geliştiricilik pek para etmemeye başladı. (Bundan önce Core Java öğrenmeniz lazım tabi yukarıda dediğim üzere). Bu framework ne işe yarar öğrenin, injection nedir, filter nedir, aspect nedir, interceptor nedir vesaire bilin.
-Uygulamanızda multithreaded yapı oluşturun, veri miktarı, istek miktarı arttıkça patlamadan çalışmasını sağlayın, synchronized, volatile vb. keyworldleri öğrenin.
-Spring Boot ile web servisler yazın, REST yapısını öğrenin.
Bunları hallederseniz Javadan bağımsız olarak git/gitflow kullanımı, kafka, rabbitmq tarzı mesajlaşma teknolojileri, cloud kullanımı vb. vb. diye gider mevzu. Umarım yardımcı olur size, kolay gelsin.