Java SE’den Sonra Ne Öğrenelim? İş Arayanlara Öneriler

Sıklıkla, “hocam Java SE’yi biliyorum, şimdi üzerine ne öğrenmeliyim?” gibisinden sorulara muhatap oluyorum. Bu soruları soranların büyük bir kısmı ya yeni mezun ya da bir şekidle Java tarafına geçiş yapmaya çalışan ve kariyerinin başında olan, farklı teknolojileri kullanan yazılımcı arkadaşlar. Dolayısıyla bu konuyu hızlıca açıklığa kavuşturalım.

Bence öncelikle Java SE’yi bildiğinizden emin olun! Bu blogu takip edenler bilirler ki, bir başkasına sistematik olarak anlatamayacağınız şeyi bilmiyorsunuz demektir. Dolayısıyla bu blogda yazılmış Java öğrenmek üzerine pek çok yazıya ve Java Dersleri sayfasına bakılabilir. Eğer kendinizı Java SE konusunda çok iyi hissetmek istiyorsanız Java SE sertifikasyonunu almayı deneyebilirsiniz. Bu size neresinden baksanız altı ayınıza malolur ama sizi hem kendinize güven hem de iş bulma açısından çok güzel bir noktaya getirir. (Bu noktada bu blogda sertifikasyon konusu üzerine pek çok yazı yazıldığını hatırlatmak isterim.)

Mobil kısmı bir tarafa bırakırsak, kurumsal yani enterprise Java’dan bahsettiğimizde öncelikle web tarafından başlamakta fayda var gibi görünüyor. Java EE’nin web tarafında sonuçta servlet, JSP ve JSF var. Servlet ve JSP’lerin kullanımı gittikçe düşüyor. Özellikle servletlerin kullanımı düşüyor gibi görünse de hem aslında her şeyin temelinde olmasından dolayı hem de webin en temel protokolu olan HTTP’yi öğrenebilmek için servlet APIsini bilmekte fayda var. Bu sayede HTTP’nin yapısını, komutlarını, istek (request) ve cevap (response) nesnelerini, headerlarını, oturum (session) yapısını ve cookieleri öğrenmiş olursunuz. Sonrasında kullanımı servletlerden çok daha yaygın olan JSPlere geçip, EL ve JSTL’i de ele alıp, Java’da web tarafının temellerini güzelce öğrenebilirsiniz.

Temeller üzerine web tarafında kurgulanacak yapı bence MVC’dir. MVC, web tarafının en temel mimari kalıbı olup, hemen her web frameworkü tarafından uygulanmaktadır. Bu anlamda belki de en kolay öğrenilecek MVC frameworkü Spring MVCdir. Hem basit hem POJO yapısı hem de ayrı bir view teknolojisi barındırmaması açısından öğrenilmesi son derece kolaydır. Spring MVC’nin controller yapılarını ögrenerek ve JSP kullanarak hızlıca web uygulamaları yapabilirsiniz.

Eğer sertifika yolunda ilerliyorsanız, Java SE sertifikasından sonra Java’nın web teknolojilerinin sertifikasını almayı düşünebilirsiniz. Bu da sizin altı ay ya da bir senenizi alabilecektir, aklınızda bulundurun.

MVC konusunda Struts’ı da düşünebilirsiniz. Nispeten eski bir teknoloji olmasına rağmen hala pek çok yerde, özellikle 2000li yılların başında geliştirilmiş projelerde kullanılıyor. Spring MVC tabi olarak çok daha popüler ama Struts mimari açıdan daha şeffaf, arka planda ne olup bittiğini anlamak açısından daha keyifli ve ufuk açıcıdır. Her halükarda iyi bir MVC frameworkü hem size temel mimariyi öğretecek hem de CVnizde güzel duracaktır.

Spring MVC’ye çok iyi bir MVC alternatifi JSF olabilir. JSF aynı zamanda bir view teknolojisi de olduğundan pek çok farklı JSF bileşen kütüphanesi vardır. JSF öğrenmek demek aslında biraz da bu kütüphanelerden birisiyle çalışmak demektir. Bu anlamda öncelikle Java EE ile gelen referans JSF implementationu (mojorra) ile başlayıp sonrasında Türkiye’den arkadaşlarımızın başarıyla geliştirip, yazılım sektöründe sundukları Primefaces ile devam etmek güzel olacaktır. Bununla birlikte JSF, hayat döngüsü (life-cycle) Spring MVC’ye göre daha karmaşık ve soyut olduğundan, ayrıca event, validation vb. yapıları da deklaratif olarak hallettiğinden ögrenilmesi Spring MVC’ye göre daha zordur ve uzun zaman alır. Lakin bence JSF, Spring MVC’den çok daha güçlü ve hızlı geliştirmeye elveren bir teknoloji olduğundan, vakti olan ve zoru sevenlerin Spring MVC yerine JSF ile devam etmelerinde fayda vardır. Zaten piyasadaki eğilim de daha çok JSF yönündedir. Bu yüzden JSF’e giriş yapmış bir Javacının iş bulmada pek zorlanmayacağını düşünüyorum.

İster JSF ister Spring MVC kullanın, öğrenmeden kaçamayacağınız bir konu daha var: Nesneler arasındaki bağımlılıkları yönetmek için dependency injection (DI). İster Spring DI’yi öğrenin ister daha iyi bir alternatif ve yapı olan Java CDI öğrenin ama sadece web tarafında geliştirme yapsanız bile yüksek bir ihtimalle bir DI yapısı kullanacağınızı unutmayın.

Web tarafını müteakiben öğrenilecek bir başka konu da veri tabanı ile iletişimde bulunan kalıcılık (persistence) katmanına yönelik teknolojiler olabilir. JDBC, java SE’nin bu konudaki en temel bileşeni. Dolayısıyla JDBC’yi pişirmek, hatta Spring’in JDBC desteğini kullanmak ve orada DAO kalıbını uygulayacak şekilde programlarınızı kurgulamak bence iş bulmada çok temel bir kazanımdır.

JDBC’den sonra JPA’e girişmek, piyasada en çok kullanılan kalıcılık çerçevelerinden birini kullanmak anlamına geleceğinden iş bulma ihtimalinizi çok arttıracaktır. JPA, temelelrinin öğrenilmesi zor olmayan ama içine daldıkça karmaşıklaşan bir teknoloji olduğu içın temel eşleştirme (mapping) yapıları, EntityManager APIsi ile transaction yönetimini bilseniz size çok avantaj sağlayacak bir duruma gelebilirsiniz.

JPA ile uğraştıktan sonra gerektiğinde Hibernate’in native API’si ile de rahatlıkla uğraşabilirsiniz. Hibernate, JPA’den daha eski bir yapı ama kavramsal oalrak aynı işi yapıyorlar hatta çok benzer şekilde yapıyorlar. Bu yüzden bu durum iş bulma ihtimalinizi çok arttıracaktır.

Zorunlu olmamakla beraber, bütün bu konularla uğraşırken ilgili tasarım kalıplarını da yavaştan ele alıp, o konularda da bir şeyler öğrenirseniz mükemmel olacaktır.

Tabi yukarıda bahsettiğim teknolojilerde belli bir noktaya gelmek sizin bir senenizi rahatlıkla alacaktır. İşin içine sertifikasyonu da sokarsanız, sadece ilk yani Java SE sertifikasını almak bile rahatlıkla 6 ayınızı alabilir. Bu biraz da ne kadar vakit ayırabildiğinizle ilgili bir durumdur. Ama bence her halukarda bu korkulacak bir durum değildir çünkü gerek okulunuzun son senesinde, gerek ise okuldan sonra hasbel kader girdiğiniz ama çok da mutlu olmadığınız ilk işinizde kendinizi bu konularda geliştirecek zaman bulabilirsiniz.

Gördüğüm şu: bilen, iyi bir hedefe ve vizyona sahip ve kendine güvenen kişiler, iş tecrübeleri olmasa bile çok güzel işler bulmaya devam ediyorlar.

Toplam görüntülenme sayısı: 8735