Uzman olacak seviyede Java öğrenmek isteyenlerin izlemeleri gereken yol haritası nedir? alt text

soruldu: 23 Nis '12, 06:19

mimaraslan's gravatar image

mimaraslan
2.2k6810794
cevap kabul oranı: 25%

değiştirildi: 27 Nis '12, 07:05


12sonraki sayfa »

Kendim için kurguladığım yolu paylaşmam gerekirse:

  1. Öncelikle ileri Java konularını öğrenebilmek için öncelikle temel Java'yı iyice kavramak. Bunun için de piyasada Head First Java, SCJP Sun Certified Programmer for Java 6, Thinking In Java gibi kitapları uygulamalı olarak okumalı.
  2. The elements of Java Style ve Effective Java, Bitter Java gibi kitaplarla Java'ya değişik bakış açılarını yakalamalı.
  3. En onemlisi The Java language specification gibi bir dokumanı mevcut Java sürümü için dikkatlice inceleyip kavramalı.
  4. Bu aşamadan sonra ya da 1. madde bittikten sonra 2. madde ile paralel zamanda(paralel çalışmayı öneririm) tüm Java web çatılarının kullandığı temel servlet konusuna girilmeli. Bu sayede artık ağırlıklı olarak kullanılan web teknolojilerinin temel mantığı kavranmış olur. Örn: bunu bilen kişi JSF için de Vaadin için de, Struts için de web.xml dosyasının ne iş yaptığını bilir.
  5. Tüm bunlardan sonra zihnimizde spesifikasyon listesi ile Java web çekirdek çalışma mantığını da bilerek JSF, Struts, Wicket, Vaadin, Spring MVC gibi web teknolojilerinden bir veya birkaçını çok iyi öğrenmeli.
    1. maddeye paralel olarak Yazılım Tasarım Prensipleri, Java Tasarım Şablonları konusu temelleri öğrenilmeye başlanmalı.
  6. Prensip ve şablonlar öğrenildikten sonra iyi tasarımların oluşturulması/korunması konusuna, yani TDD ve Refactoring gibi konulara değinilip, bu konularda bolca pratik yapmalı. Tasarım prensip ve şablonlarına uymayan sistemleri refactoring yolu ile düzeltmeli ve bunu TDD yardımı ile yapmalı.
  7. Son olarak 6. ve 7. maddeye paralel olarak Spring, Seam, EJB gibi teknolojileri öğrenmeli. Bu konuların öğrenilmesi sırasını 6. ve 7. maddelere paralel olarak belirtiyorum çünkü bu teknolojilerin doğuşu sebebi tasarım prensip ve şablonlarında yatmakta.

Hepsinden önemlisi sürekli pratik yapmak gerekli. Kitap önerilerinde bulundum ancak maalesef okumak yetmiyor. Tüm maddeler için söylüyorum en ufak bir kod parçasını bile yazılıp denemeli. Özellikle ileri Java teknolojileri öğreniminde (Spring Core-MVC, JSF, Seam, Vaadin, Hibernate, JPA) bolca kod yazılmalı ve bunların birbiri ile entegrasyonlarını (Örn: JSF-Hibernate-Spring entegrasyonu) denemeli, basit projeler oluşturulup çalıştırmalı.

permanent link

cevaplandı: 05 Haz '12, 06:05

mabulgu's gravatar image

mabulgu ♦
2.8k43040
cevap kabul oranı: 26%

değiştirildi: 05 Haz '12, 06:12

21

Java'yi gercek anlamda derinden anlamak istiyorsak, o zaman bilgisayarin ana islemcisini (CPU) ve isletim sisteminin hafiza alanini (memory management) nasil yönettigini anlamamiz gerekiyor. Bircok Java programcisinda bu bilgi mevcut olmadigi icin, Java sanal islemcisi (JVM - Java Virtual Machine) bünyesinde olup bitenlerin anlasilmasi zor oluyor. Durum böyle iken, Java'da ustalasmak zorlasiyor. Programciliga Java ile baslamis birisi dünyayi "yazdigi program > jvm > isletim sistemi > ana islemci" seklinde yukardan (top down) asagida dogru görme egilimi gösteriyor. Cogu zaman bu bakis JVM seviyesinde son buluyor. Programci icin JVM bir kara kutu haline geliyor. Bünyesinde olup bitenleri anlamak zorlasiyor.

Java ve diger dillerde uzmanlasmak istiyorsak, o zaman asagidan yukariya dogru (bottom-up) bir uzmanlasma patikasi izlememiz gerekiyor. Bunun icin öncelikle bir ana islemci (CPU) nasil calisir, isletim sistemi hafizayi nasil yönetir ya da isletim sistemi sürecleri (process) nasil yönetir bunlari kavramamiz gerekiyor. Buradan yola cikarak JVM icinde olup bitenleri kavramamiz ve ustalasmamiz daha da kolaylasacaktir.

EOF (End Of Fun) Özcan Acar

permanent link

cevaplandı: 23 Nis '12, 06:51

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Java SE(Standart Edition)
Java Desktop
JDBC
Servlet
JSP
JSF

ben boyle gittim simdi,Spring ve android oyreniyorum paralel )

permanent link

cevaplandı: 27 Nis '12, 13:55

Murad's gravatar image

Murad
3665814
cevap kabul oranı: 9%

Benim tavsiye ettigim rota söyle:

  1. Öncelikle "Ben gercekten yazilimci olmak istiyor muyum? Hergün bu konularla ilgilenmek ve ciddi bir sekilde kafa yormak istiyor muyum? 10, 20 hatta 30 sene bu sektörde calismayi düsünebilir miyim?" diye sormakla baslamaliyiz.
  2. Eger yukaridaki sorulara verdigimiz cevap "evet" ise yolumuza devam edebiliriz. Ikinci adim bence bu alanda calisan, yüksek motivasyonlu, bilgi alisverisine acik, yenilikleri takip eden bir arkadaslik cevresini gece gündüz arayip bulmak ve gelistirmek. Bu eskiye göre daha kolay. Cünkü artik tüm dünyada kendini bu ise adamis binlerce profesyonel arkadasimiz var. Bence profesyonel olabilmenin en önemli yolu profesyonel olanlardan ögrenebilmek. Kitap okumayi da "profesyonellerden ögrenme" basligi altinda görüyorum. Ancak sadece kitaba bagli kalmak ta dogru degil.
  3. Hergün üc kücük üc de büyük problem cözmek. Calisma masamizdaki bir kagida veya bir deftere cözmek istedigimiz problemleri yazip gün icerisinde cözmeye calisirsak ve bunu her gün düzenli olarak yaparsak cok kisa bir zaman icerisinde muazzam yol katettigimizi görürüz.
  4. Soru sormayi ögrenmeye calismak. Soru sormayi bilemedigimiz icin cogunlukla ya sormuyoruz, ya soramiyoruz, ya da yanlis soruyoruz. Durum bu olunca ya cevap alamiyoruz veya eksik ve yanlis cevaplara ulasiyoruz.
  5. Dinlemeyi bilmek. Hatta kendini dinlemeye ve anlamaya ciddi bir sekilde zorlamak. Gerekmedikce konusmamaya zorlamak.
  6. Hafiza tekniklerini aktif bir sekilde kullanmak. Kaynak kullanimini ögrenip gelistirmek.
  7. Sürekli pratik yapmak ve ögrendigini derhal arkadaslarina ve cevresine ögretmeye calismak.
  8. Soru sorulmadikca cevap vermemek.
  9. Bilmedigi zaman "Bilmiyorum" demek ve bundan cekinmemek. Gercekten de cok önemli bir nokta bu.
  10. Kafasina ve kalbine kendine ve bilgisine zarar verici, yaniltici, eksiltici bilgileri almamak. Bilgi tüketiminde gercekten de cok hassas, itinali ve secici olmak. Bilgide de fast-food meselesi var :-)
  11. Tekrarlamak. Tekrarlamak. Tekrarlamak.
  12. Dinlenmeyi bilmek.
  13. Ailesine, arkadaslarina, coluguna, cocuguna, komsularina olaganüstü önem vermek. Her ne sartta olursa olsun yaptigi isi bu siniflarin üstünde görmemek. Ne alakasi var diyenler varsa ayri olarak cevap verebilirim :-)
permanent link

cevaplandı: 22 Tem '13, 12:11

cakiral's gravatar image

cakiral
1.7k224351
cevap kabul oranı: 18%

Aslında bu frameworklerin piyasaya hakim olması bir gereksinim doğru ama onunda ötesinde şöyle bir gidişatta var.

Temel kavramlar ve bunlar ile haşır neşir olunmalı bu konudada oldukça kendini geliştirmelisiniz.

Fakat bir ağaca benzetecek olursak: Temel kavramlar, yapısal gelişimi bir ağacın gövdesi olsun. Bu kısım zaten olmazsa olmaz! Framework ve ara araçlarlarda ağacın bir dalı olsun. Bu dal şuanda o kadar büyüdüki büyüklük olarak neredeyse gövde şeklinde gidiyor. Buna örnek EJB, Hibernate, Spring kendi başlarına bir dal gibi. Gidişata görede şöyle bir tahminde yapılabilir yada gözlemim, bu dallar'danda dallar oluşacaktır ve gereksinimler yada uzmanlıklar aranıyor. Mesela, iş görüşmelerimde ve oünümzdeki hafta olacak olan iş görüşmem de : Wicket/Spring/Hibernate bu üç aracı beraber kullanabildiğimi soracak. Çünkü kurumsal yapı içindeki yazılım mimarisi bu ve bunu istiyorlar.

Sonuç olarak, çoğu yazılımcı OOP kavramlarını yada temel programlamayı bilmek zorunda fakat bu bir artı olarak görülmüyor. İhtiyacım olanı biliyormusun ve proje geliştirdinmi bu araçlarla artın oluyor. Artık ağacın dallarından birine hakim olmalısınız ;)

permanent link

cevaplandı: 27 Nis '12, 07:20

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

değiştirildi: 27 Nis '12, 10:34

Benim gözümde java içinde uzmanlık ikiye ayrılıyor.

1- Genel Uzmanlık: Javanın güzel bahçesinden bir veya birkaç alanda derinleşmesine uzmanlaşmak yerine mümkün mertebe her türlü alanında(se,me,ee) ve frameworklerinde bilgi sahibi olan kişilerdir. Temel düzeyde mümkün mertebe bunlar hakkında yol gösterici düzeydedirler, tabiki bir yere kadar.

2- Alansal Uzmanlık: Sadece bir alanda ve bir kaç framework üzerinde yoğunlaşmış ve bunları etkin bir şekilde teknolojinin elverdiğince doğru şekilde kullanan ve kavrayan kişilerdir.

Her iki uzmanlık alanı içinde Core Javaya tam olarak hakim olmak gerekiyor. Gerisi artık sizin seçiminize kalmış bir durum. Eğitmenlik veya yazarlık gibi bir düşünceniz varsa genel olarak java bahçesinden her meyveden biraz tatmaya bakın derim. Böyle bir düşünceniz yoksada ilk başta ana branşınızı seçmeniz gerekiyor. Gerisi framework seçimi ile alakalı olduğu için size göre bana göre değişeceği için herhangi bir öneride bulunmak istemiyorum, kalbinizin sesini dinleyin :).

Kahveniz bol olsun :)

permanent link

cevaplandı: 27 Nis '12, 19:57

makosan's gravatar image

makosan
2403513
cevap kabul oranı: 12%

İlk olarak bu kitap okunmadan Uzman Java Coder olunmayacağını düşünüyorum, SCJP Sun Certified Programmer for Java 6 :)

permanent link

cevaplandı: 27 Nis '12, 07:36

gklp's gravatar image

gklp
789317
cevap kabul oranı: 17%

En azından ufak bir kodu bir defa da olsa tamamen notepad'de yazıp javac ile command prompt'tan derleyin, hataları görün, yine java ile command prompt'tan run edin, jar utility'si ile paketleyin, yani kullanacağınız java ide'sinin sizin için yaptığı bu işleri kendiniz de bir deneyin, hangi parça ne işe yarıyor, ide arka planda neleri çalıştırarak işlerinizi hallediyor bilmekte fayda var.

permanent link

cevaplandı: 01 Haz '12, 02:20

nht's gravatar image

nht
95651720
cevap kabul oranı: 33%

permanent link

cevaplandı: 04 Kas '13, 08:35

kaldiroglu's gravatar image

kaldiroglu
22333
cevap kabul oranı: 12%

Temel Java konularından sonra kesinlikle Hibernate ardından da Spring öğrenilmeli.

permanent link

cevaplandı: 25 Nis '12, 04:49

nerminson's gravatar image

nerminson
5214915
cevap kabul oranı: 3%

3

Java'da uzman olmak icin Spring Framework ogrenme mecburiyeti yok diye dusunuyorum! Spring Framework ile yapilan isleri bircok baska framework ile de yapabilirsiniz.

(25 Nis '12, 05:39) CemIkta ♦ CemIkta's gravatar image
3

Sanırım Nermin hanım piyasa tercihlerini öne çıkan isteklere göre konuyu değerlendirmiş. Türkiye'de iş piyasasında Java uzmanı denince evet Hibernate, Spring gibi frameworkleri bilip bilmediğiniz hemen sorulur. Bu konuya dair bir makale bile yazmayı düşünüyorum :)

(25 Nis '12, 05:44) mimaraslan mimaraslan's gravatar image

Aslında bunlar Hibernate, Spring iş piyasasında olmazsa olmazlar arasına girmiş. :)

(25 Nis '12, 14:43) nerminson nerminson's gravatar image
1

Jee6 piyasayi su illetlerden kurtaracaktir :-P

(27 Nis '12, 11:35) Turgay Can Turgay%20Can's gravatar image

Bilgisayar Mühendisi 3 sınf öğrencisi olarak; C, html, javascript, Python, C#, Php, Css... azbuz hepsinde biraz kod yazdım. Ama kurtuluşu Java da buldum ve Java'da uzmanlışmak istiyorum. Ancak yol gösterişlerinizi ben daha yolun başında iken yanlış buluyorum. İşin temelinde neler dönüyor, JVM'nin yaptığı iş? İşletim sisteminden gelen süreçler, memory vs gibi konuları bilmeden kod ezberlemeyi kendimde uygun görmüyorum. Tam bir Javacı olacaksam, JVM gibi bakmalıyım koda... Yanılıyor muyum ?

(04 Ara '12, 18:36) KodlarinEfendisi KodlarinEfendisi's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×10

Soruldu: 23 Nis '12, 06:19

Görüntüleme: 24,058 kez

Son güncelleme: 04 Kas '13, 08:35

powered by BitNami OSQA