[]

javascript öğrenmek isteyen bir javacıya öneri

merhaba kıymetli coderlar. hybris&java developerlık hayatımın juniorlık seviyesinin bir üstüne çıkmama az kaldı. bu aralar iş bakmaya başladım. javada orta üstü seviyedeyim fakat artık yeni şeyler de öğrenerek daha da üste çıkma zamanım geldi. ilk olarak javascript öğrenip ardından hızlı bir şekilde ön yüz teknolojilerine geçmek istiyorum. udemyden ders bakındım ama oradaki yorumların aldatıcı olduğunu düşünüyorum. öğrenciye literatür öğreteceğim diye kasıp 3 satır kod yazmadan slayt anlatan bir hocadansa önden önemli bilgileri verip proje yaparak ders anlatan ve bilgiyi bu şekilde yükleyen bir hoca arıyorum. youtube veya udemy ya da herhangi farklı bir kaynaktan önerilerinize açığım. javascripti boşver şuna yönel şundan dolayı daha mantıklı dediğiniz bir öneriniz varsa onu da dinlemek isterim.




 
freecodecamp'e bakabilirsin. Özellikle ön yüz teknolojilerinin öğretilmesine odaklanmış bir websitesi. Sana javascript'i kod yazarak en alt seviyeden yukarılara doğru çıkarıyor. Şöyle ki; bir syntax gösteriyor sana ardından da diyor ki "hadi hello world yaz". Yazıyorsun doğru olup olmadığını kontrol ediyor. Ardından da cevabı detaylıca açıklıyor. Eğer kod yazarak öğrenmek istiyorsan oraya bakabilirsin.

Ayrıca ön yüz teknolojilerine yönelmek istiyorsan ve biri sana javascript'i boşver diyorsa, koşarak uzaklaş. javascript bilmeden ön yüz kısmında bir şey yapamazsın.
  • siyahliadam  (15.12.20 00:21:26) 
Ö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.
  • plutongezegendegilmi  (15.12.20 00:25:17) 
onceden java developer olarak calisiyordum. son 6 giderek daha yogun yildir node.js ve javascript developer olarak calisiyorum. javascript dilin dha onceden de yaziyordum ama asil isim simdi cogunlukla javascript. javascript ogrenirken klasik dilin ozelliklerini ogrenmek ile basladim. bu nokta cok hizli ilerledi cunku syntax olarak java ile benzer ama beni ters noktadan yakalayan konular da oldu.

daha sonra java dilinden hakim oldugum inheritance, abstract class, interface, encapsulation gibi daha cok object oriented programlama ile ilgili konularda ilerledim.

bundan sonra da object oriented konusunda javascript de bir ayrim es6 oncesi ve sonrasi farkli uygulamlari ogrendim. ama bunun yaninda da fonksiyonel programlama konusunda da ilerledim. bunun yaninda da javascript de kullanilan populer araclar, test kutuphaneleri, build kutuphanelerini ogrendim. o zaman anladim ki javascript ekosistemi java gibi degil, daha daginik ve cesitli. javada belli basli isler icin bircok kutuphaneden birkaci cok populer oluyor. ama javascript de cok bu dagilim cok daha fazla. kutuphane cok ama piyasaya hukmeden kutuphane cok cok az.

front end baslamadan once back-end node.js ve bununla birlikte express ogrenmeni tavsiye ederim. ama bunu ogrenirken javascript de multithreading olmamasina ragmen nasil yapilir, event loop, hoisting, prototype chain, call stack gibi kavramlari incelemenizi tavsiye ederim. java bilen biri icin cok zor degil diyebilirim.

daha sonra da front end de vue.js tavsiye ederim, cunku daha basit. angular typescript ile yazildigi icin javadan gelenlere biraz tanidik aslinda ama ogrenmesi daha cok zaman alir. react ise daha daginik bir ekosisteme sahip. vue bu konuda daha derli toplu.
  • emrahday  (15.12.20 11:47:53 ~ 11:49:07) 
görüş ve önerileriniz için çok teşekkür ederim hepsini harmanlayıp araştırmalarımı da içine katarak kendime bir yol haritası çizeceğim.


  • golgi aygıtı  (15.12.20 21:04:57) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.