Oracle’ın Java Sertifikaları I
4-5 sene tecrübeli bir Java programcısının, Java’da nesnelerin metotlara referanslarıyla geçilirken, ilkel tiplerin (primitives) değerlerinin kopyalandığını bilmediğini görürseniz ne düşünürsünüz? Benim aklıma hemen, 2002 dünya kupasındaki Brezilya maçında Roberto Carlos’a atraksiyonlu (!) bir çalım atmaya çalışıp, sonraki hayatında kendine bakmadığı için, onca yeteneğine ve özellikle de güzel son vuruşlarına rağmen futbol dünyamızdan silinen İlhan Mansız, gelir. Problem aynı: Eksik bilgi ve eğitim üzerine bina edilmeye çalışılan yetenekler. Bu bizim programlama dünyamızda da, uzmanı olduğunu söylediği programlama dilindeki veri tiplerini bile sayamayan ama heyecanlı ve zeki programcılara karşılık geliyor. Bu durumun sebebini biraz daha açıkça yazarsak, gerek futbolda gerek ise BT’de, temelden başlayan, sistemli bir öğrenmeden geçmeden, alaylı bir yaklaşımla işleri yapıyor olmamız. Alaylı derken, BT’de çalışanların üniversite mezunu olmadıklarını kastetmiyorum; aksine pek çoğu üniversitelerin Bilgisayar Mühendisliği ve benzeri bölümlerinden mezun olmuş kişiler. Hatta daha ötesi, pek çoğu ülkemizin başarılı liselerinden gelmiş, üniversiteye giriş sınavlarında ciddi dereceler yakalamış, üniversite eğitimi boyunca da çok çalışmış ve derslerini başarmış ve mezun olmuş kişiler. Sonuçta ben de aynı yollardan geçtim, onlardan biriyim. Dolayısıyla bu durum bir tespit. Konumuz da bunun neden böyle olduğu değil; bunu başka bir yazıda ele alırız. Bu yazının konusu bunun nasıl düzeltilebileceği.
Java sertifikaları, değişik konu ve seviyelerde çalışan Java’cılar için oluşturulmuş ve başarmak için, o konu ve seviyedeki en temel bilgileri bilmeyi gerekli kılan bir dizi sınavdan oluşuyor. Bu sınavlar önceden Sun tarafından yönetiliyordu ama artık Oracle bünyesindeler. Detaylı bilgiye ulaşmak için bu sayfaya bakabilirsiniz. (Gelen sayfadan ülkenizi seçip devam edin.)
Uzatmadan söyleyeyim: “Java Certified” olmak, “tecrübeli değilim ama temel bilgim sağlamdır” demenin en güzel yolu belki. Yani yukarıda bahsettiğim temel bilgi eksikliğini gidermenin yollarından birisi. Şahsen ben, iş görüşmesi için karşıma gelen adayın jJava sertifikasına sahip olduğunu öğrendiğimde bir kaç şey düşünüyorum: Ona olan saygım artıyor, bu bir. Sonra diyorum ki “bu adam saçma sapan sorular sormaz, sordukları sorular daha seviyeli olur, çünkü en temel soruların cevaplarını zaten sertifikasyon sürecinde öğrenmiştir.”, bu iki. Ve belki de en güzeli, “bu adam doğru yolda, bilgiye önem veriyor, zaman ayırmış, kariyerinde nasıl ilerlemesi gerektiğine kafa yormuş ve sertifikanın sıkıntılı sürecine girmiş ve başarmış.” diye düşünüyorum. Bu, saygı duyulacak bir konum. Dolayısıyla, örneğin işe alımlarda sınav yaparken, sertifikalı kişilere sınav yapmıyorum, doğrudan görüşmeyi tercih ediyorum.
Peki, şimdi de Oracle’ın Java sertifikalarına bir göz atalım. Oracle’ın Java sertifikaları, temelde “Oracle Certified Professional, Java Programmer” isimli sertifika üzerine kurulu. “Java sertifikalı” derken ülkemizde daha çok bu sertifikayı kastediyoruz, çünkü diğerlerini alan o kadar az ki. Aslında bu sertifikanın bir alt sertifikası olarak “Oracle Certified Associate, Java SE 5/SE 6” setifikası da var ama bu sertifika sonradan kondu ve Java’ya daha giriş seviyesinde olanlara uygun bir pozisyonu ifade ediyor. İşin açıkçası bu sertifikayı alan “Java’yı biliyorum” diyemez. Biraz teşvik edici bir sertifika yani. Aslolan, “OCP, Java Programmer” sertifikası, çünkü bununla hem temel Java yani Java SE bilginizi ispat ediyorsunuz hem de diğer, daha yukarıdaki sertifikalar için bir şartı yerine getiriyorsunuz. Bu sertifkayı almadan diğer sertifikaları almanız mümkün değil.
Oracle’ın Java sertifika patikası şöyle:
Şekilden de görüldüğü gibi sertifikalar genel olarak Java SE ve Java EE için hem 5 hem 6 versiyonları var. fakat Java SE 5 için var olan “Oracle Certified Master, Java SE 6 Developer” ile “Oracle Certified Master, Java EE 5 Enterprise Architect” Java EE 6 için yok. Belki henüz yok belki de hiç olmayacak. Bu iki sertifika aslında hem bilgiyi hem de beceriyi gösteren sınavlardan oluşuyor. Örneğin ilkinde hem bir programlama projesi gerçekleştiriliyor hem de bu proje ile ilgili bir yazı yazmanız gerekiyor. Diğerinde yani architect olanında ise yukarıda developer için olanlara ek bir de sınav var, yani 3 parçadan oluşuyor.
Bu sertifikalarla ilgili küçük bir Excel dosayı oluşturdum. Sertifikaların hedefleri ve sınavları ile ilgili bilgilerden oluşuyor, buradan ulaşabilirsiniz. Arkadasımız ve Java SE 6 sertifikasını almış olan genç arakdaşımız Levent de sayfasında bu konuda güzel bilgiler veriyor.
Sertifika (OCP, Java Programmer) alıp, daha iyi bir Java’cı olmak isteyenler için güzel bir kaynağı da burada önerebilirim: Khalid Mughal ile Rolf Rasmussen’in A Programmer’s Guide to Java SCJP Certification: A Comprehensive Primer (3rd Edition) kitabı. Kitabın elektronik halini Internet’te rahatlıkla bulabilirsiniz. Kitabın 1000 küsur sayfadan oluşması ve çok detaylı bilgi içeriyor olması gözünüzü korkutmasın. Planlı bir çalışmayla, bilgi seviyenize ve tecrübenize göre, 2-3 ay ile 1 sene arasında bir çalışmayla bu kitabı çalışıp, sınavını geçebilirsiniz.
Java sertifikalarında da sadece programmer sertifikasıyla da yetinmemeliyiz, OCP, Java Programmer olanlar, arzularına ve ilgi alanlarına göre diğer sertifikalara da yönelmeliler.
Genel olarak sertifikalara önem verip, çalışanlarımızın sertifikalı olmalarını teşvik etmeliyiz. (Bu arada sertifikalı olalım derken “ISO sertifikası” kültürünü kastetmiyorum 🙂 ) Özellikle yazılım evleri, çalışanlarının sertifika almaları karşılığında sınav ücretlerini onlara geri ödeyebilir ya da değişik yollarla bütün yazılımcılarının sertifikalı olmalarını teşvik edebilir. Sertifikalı olmak tabi ki her şeyi çözmez ama Javacılarımızın yazdıkları kodun kalitesini arttıracağı kesindir.
Bol sertifikalı günler diliyorum.
Toplam görüntülenme sayısı: 11918
sercan
15 Mart 2011 @ 05:55
Uzun zamandır merak ettiğim konuyla ilgili yazdığınız için teşekkürler, derli toplu bir kaynak olmuş bizler için.
dasgin
16 Mart 2011 @ 06:42
Küçük bir ek: Aslında nesne referansları da referans değerlerinin kopyalanmasıyla (Pass by value) metotlara geçilir. Bu yüzden metot içinde referansa başka bir nesne ataması yapılsa da metot dışında metota parametre geçilen referans etkilenmez..
Akin
16 Mart 2011 @ 16:25
Tabi. Aslında olaya nereden baktığınızla ilgili. Nesne tarafından bakarsanız, referansı geçilir. Öğretirken bu şekilde ifade etmek ilk etapta daha kolay olur anlamak açısından. Referans tarafından bakılınca olan biten şey referansın tuttuğu adresin kopyalanmasından başka birşey değil.
Furkan
16 Mart 2011 @ 17:38
Hatta hatırlayabildiğim kadarıyla referansı da değil, referansının kopyası geçiriliyordu metoda. İster istemez insan merak ediyor sadece referansının geçirilmiş olması ne gibi bir sıkıntı oluştururdu diye.
mustafa
11 Temmuz 2011 @ 10:20
Verdiğiniz bilgi için teşekkürler.
celal
13 Temmuz 2011 @ 13:51
Teşekkürler,bende javayı temel olarak biliyorum ama işin sertifikalı ve profösyonel tarafına yönelmek istiyordum. Klavuz niteliğinde yazı ve ekler için teşekkürler.
Java Sertifikalari « Ömer YAĞCI
24 Eylül 2011 @ 04:47
[…] Oracle’ın Java Sertifikaları I […]
Elron
01 Ocak 2012 @ 10:26
Faydalı bir yazı olmuş her zamanki gibi abi 🙂 Yalnız sertifika için yazıdakinden ziyade kesinlikle tavsiye edeceğim kitap budur:
http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060/ref=sr_1_1?s=books&ie=UTF8&qid=1325434935&sr=1-1
Zamanında tümüyle deneyimsiz olmama rağmen yalnızca bu kitap ve biraz “mock exam” ile sınavı geçmiştim. Hem dil, hem anlatım tarzı, sorular, akılda kalıcılık bakımından muhteşem bir kitaptır kendileri.
baran
09 Şubat 2012 @ 03:40
Merhabalar hocam öncelikler çok güzel bir yazı olmuş. Size bir konuda danışmak istiyorum. “Web Component Development with Servlets & JSPs, Java EE 6” programına katılmayı planlıyorum, “OCP Java Developer” sertifikasını almadan diğer sertifikaya yönelmem çok mu zor olur? OCP Java Developer sertifikası bir kırılma noktası gibimidir? Teşekkür ederim.
Akin
26 Şubat 2012 @ 05:13
Baran bey, bence zor olmaz, çünkü iksi de farklı şeyleri içeriyor. Yani “Java Developer” sertifikası Java SE odaklı ama diğeri bunun üzerine bina edilen web teknolojileriyle ilgili. İlkini alıp diğerine geçmek daha sağlıklı görünmekle birlikte zaten ciddi bir Java SE tecrübeniz varsa web tarafına geçmek zor ya da yanlış olmaz kesinlikle.
Nurhak
21 Mart 2012 @ 14:52
Merhaba,
Paylaşım için öncelikle teşekkürler. İkinci olarak; Oracle Certified Professional, Java Programmer sertifikası sınav maliyetleri nelerdir? Bu sertifikayı almak herhangi bir kursa gitmeden ne kadara mal olur? Yakın zamanda bu sertifikayı almış arkadaşlar da bilgi verebilirlerse çok memnun olurum.
Teşekkürler.
Teoman Alkan
29 Nisan 2012 @ 16:59
Hocam paylaşım için öncelikle teşekkürler.
Birkaç sorum vardı cevaplarsanız çok sevinirim.
Sınavın dili İngilizce mi?
Sınava nerede giriyoruz? İnternetten online mı?
Sınav tarihleri ne zaman yoksa tarihleri biz kendimize mi göre belirliyoruz?
Ve nereden belirliyoruz?
Diyelim ki bir sınava girdik ve başarısız olduk. En yakın zamanda aynı sınava tekrar ne zaman girebiliriz?
Bir yıl içinde en temelden başlayıp bütün sınavlara girme hakkımız var mı?
Doğrudan birinci seviye sınavına girmeden ikinci seviye sınavını verme şansımız var mı?
Akin
29 Nisan 2012 @ 22:23
Sınav dili tabi ki İngilizce. Sınavı İstanbul’da yapan yerler var. Sınav bilgisayarda alınıyor. Randevuyla gidiyorsunuz genelde. Sınavları istediğiniz kadar alabilirsiniz. Bilgime göre Programmer sınavını almanız şart diğerlerini almak için.
serdar
28 Kasım 2012 @ 15:18
güzel bir içerik.
kemal
11 Mart 2013 @ 11:22
Merhaba, Çok fazla kurs ve eğitim var. Hangisini tavsiye ediyorsunuz. Çünkü çoğu direkt sertifikayı hedeflemiyor. Fiyat olarakta çok farklılıklar var.
Akin
13 Mart 2013 @ 02:26
Java kurslariyla cok fazla ilgilenmiyorum. Zaman zaman duyuyorum, izlenimlerim cok iyi degil. Turkce Java kitaplari gibi sanirim kurslar da aslinda “kendisi egitime ihtiyac duyan” egitmenler tarafindan veriliyor gibi. Istisnalar var ama genel kanim bu.
Levent Erguder
10 Mart 2014 @ 20:07
Akin hocam, sinavla ilgili olarak surada bilgi vermeye calismistim. Ilgilenen arkadaslar icin faydali olabilir 🙂
http://www.injavawetrust.com/oracle-certified-professional-java-se-6-programmer-hakkinda/
Akin
10 Mart 2014 @ 20:45
Tamamdir Leventcigim, eklerim yaziya. Tesekkurler.
Muhammed
28 Nisan 2014 @ 23:42
Sınav soruşarı hangi dilde soruluyor dil seçme seçenegimiz var mı ?
Akin
29 Nisan 2014 @ 08:47
Merhaba,
Sorular Inglizce malesef.
Hoscakalin.
Bir dost
26 Kasım 2014 @ 16:17
Java’da nesnelerin metotlara referanslarıyla geçilirken, ilkel tiplerin (primitives) değerlerinin kopyalandığını bilmediğini görürseniz ne düşünürsünüz? Bunu bu kadar emin yazmaniz cok ilginc. Java’da hersey pass by value’dur. Yanlis yonlerdirmeyelim insanlari.
Akin
27 Kasım 2014 @ 02:23
Tesekkur ederim ama sizin soylediginizle benim soyledigim ayni gercegin iki farkli sekilde ifade edilmis halidir. Nesneyi gecerken degeri copyalanan sey nesnenin referansidir, cunku nesnelere ancak referanslariyla ualsabiliriz. Referanslar kopyalanmasi ise referansin degerinin gecilmesidir. Kitaplarda Java’nin iki data tipinin nasil gecildiginiyle ilgili tartismalarda bazi yazarlar referanslarin degerinin gecilmesini pass-by-reference olarak da ifade ederler. Ornegin Bruce Eckels’in Thinkin in Java ya da Sabesta’nin Concepts of Programming Languages kitaplarina bakabilirsiniz. Ben zaten anlatirken, degeri kopyalanan seyin nesne olmadigini, nesnenin referansinin oldugunu hem anlatiyorum hem de orneklerle gosteriyorum. Hatta derslerde bu isimlendirme tartismasini da anlatiyorum ki insanlar kavramlarin arkasindaki esas mekanizmayi iyice anlasinlar. Dolayisiyla Java’da referanslarin degerlerinin gecilmesini bir soyutlama yapmak ve boylece anlama kolayligi saglamak icin “pass-by-reference” dedigimi belirtmek isterim.
Uyariniz icin tesekkur ederim ama insanlari yanlis yonlendirmemek icin elimden geleni yapiyorum.