Oracle’ın Java SE Sertifikaları: OCA, OCP ve OCM
Bu yazıda, Oracle’ın son değişikliklerinden sonra Java SE sertifika ve sınavlarının son halinden bahsedeceğim. Oncelikle Oracle’in Java eğitim ve sertifikalarıyla ilgili ana sayfasını not edin.
Malum, Oracle, Sun’ı satın aldıktan sonra Java ile ilgili pek çok değişikliğe gitti. Bunlardan bir tanesi de Java sertifikasyonu oldu. Sertifikasyonun yapısı ile ilgili sertifikaların isimleri değişti ve daha çok Oracle’ın sistemine uygun hale getirildi. En son yapılan değişikliklerle, Oracle’in Java SE sertifikaları, 3 katmanlı bir yapı halini aldı: Giriş seviyesinde OCA yani Oracle Certified Associate var, sonra eski yapıdaki Sun Certified Java Programmer’a karşılık gelen OCP yani Oracle Certified Programmer geliyor ve en sonda da OCM yani Oracle Certified Master var.
Ayrıca bu üç katmanlı yapıya Java EE sertifikalarında özel teknolojiler için alınan OCE, Oracle Certified Expert ekleniyor.
Java SE sertifikalari arasında bağımlılıklar da var, OCA’in OCP olmak için, OCP’nin de OCM olmak için bir gereklilik olduğunu söylemeliyiz.
OCA’in amacı, en temel seviyedeki Java bilgisini oluşturmak. İlgili sınavın numarası 1Z0-803 ve ismi de Java SE 7 Programmer I. Sınav çoktan seçmeli 90 sorudan oluşuyor ve 140 dakika sürüyor. Sınavı geçmek için ise %77 başarı gerekli. Sınavın ücreti ise 426 TL. Java SE’nin 5 ve 6 sürümleri için de OCA sınavı var ama o sınavların soru sayısı vs. bilgileri daha farklı. Burada verdiğim bilgiler Java SE 7 sürümü için geçerlidir.
Java SE 7 Programmer I sınavının kapsadığı konular ise şunlardır:
Java Basics
- Define the scope of variables
- Define the structure of a Java class
- Create executable Java applications with a main method
- Import other Java packages to make them accessible in your code
Working With Java Data Types
- Declare and initialize variables
- Differentiate between object reference variables and primitive variables
- Read or write to object fields
- Explain an Object’s Lifecycle (creation, “dereference” and garbage collection)
- Call methods on objects
- Manipulate data using the StringBuilder class and its methods
- Creating and manipulating Strings
Using Operators and Decision Constructs
- Use Java operators
- Use parenthesis to override operator precedence
- Test equality between Strings and other objects using == and equals ()
- Create if and if/else constructs
- Use a switch statement
Creating and Using Arrays
- Declare, instantiate, initialize and use a one-dimensional array
- Declare, instantiate, initialize and use multi-dimensional array
- Declare and use an ArrayList
Using Loop Constructs
- Create and use while loops
- Create and use for loops including the enhanced for loop
- Create and use do/while loops
- Compare loop constructs
- Use break and continue
Working with Methods and Encapsulation
- Create methods with arguments and return values
- Apply the static keyword to methods and fields
- Create an overloaded method
- Differentiate between default and user defined constructors
- Create and overload constructors
- Apply access modifiers
- Apply encapsulation principles to a class
- Determine the effect upon object references and primitive values when they are passed into methods that change the values
Working with Inheritance
- Implement inheritance
- Develop code that demonstrates the use of polymorphism
- Differentiate between the type of a reference and the type of an object
- Determine when casting is necessary
- Use super and this to access objects and constructors
- Use abstract classes and interfaces
Handling Exceptions
- Differentiate among checked exceptions, RuntimeExceptions and Errors
- Create a try-catch block and determine how exceptions alter normal program flow
- Describe what Exceptions are used for in Java
- Invoke a method that throws an exception
- Recognize common exception classes and categories
OCA sertifikasını alan Javacının hedefi artık OCPdir. Sebebi ise OCA’in giriş seviyesinde bir sertifika olup, yukarıdaki içerikten de anlaşıldığı gibi, bir Java SE programcısının bilmesi gereken konuların hepsini kapsamadığı gerçeğidir. OCP ise yine çoktan seçmeli 90 tane sorudan oluşan ve 150 dakika süren, 1Z0-804 nolu ve Java SE 7 Programmer II isimli bir sınavı içermektedir. Başarı için %65 gereklidir ve fiyatı $245’dır. Java SE 7 Programmer II sınavının kapsamı, Java SE 7 Programmer I üzerine bina edilmektedir ve şu konuları içermektedir:
- Use access modifiers: private, protected, and public
- Override methods
- Overload constructors and methods
- Use the instanceof operator and casting
- Use virtual method invocation
- Override the hashCode, equals, and toString methods from the Object class to improve the functionality of your class.
- Use package and import statements
- Identify when and how to apply abstract classes
- Construct abstract Java classes and subclasses
- Use the static and final keywords
- Create top-level and nested classes
- Use enumerated types
- Write code that declares, implements and/or extends interfaces
- Choose between interface inheritance and class inheritance
- Apply cohesion, low-coupling, IS-A, and HAS-A principles
- Apply object composition principles (including has-a relationships)
- Design a class using a Singleton design pattern
- Write code to implement the Data Access Object (DAO) pattern
- Design and create objects using a factory pattern
- Create a generic class
- Use the diamond for type inference
- Analyze the interoperability of collections that use raw types and generic types
- Use wrapper classes, autoboxing and unboxing
- Create and use List, Set and Deque implementations
- Create and use Map implementations
- Use java.util.Comparator and java.lang.Comparable
- Sort and search arrays and lists
- Search, parse and build strings (including Scanner, StringTokenizer, StringBuilder, String and Formatter)
- Search, parse, and replace strings by using regular expressions, using expression patterns for matching limited to: . (dot), * (star), + (plus), ?, \d, \D, \s, \S, \w, \W, \b. \B, [], ().
- Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format strings.
- Use throw and throws statements
- Develop code that handles multiple Exception types in a single catch block
- Develop code that uses try-with-resources statements (including using classes that implement the AutoCloseable interface)
- Create custom exceptions
- Test invariants by using assertions
- Read and write data from the console
- Use streams to read from and write to files by using classes in the java.io package (including BufferedReader, BufferedWriter, File, FileReader, FileWriter, DataReader, ObjectOutputStream, ObjectInputStream, and PrintWriter)
- Operate on file and directory paths with the Path class
- Check, delete, copy, or move a file or directory with the Files class
- Read and change file and directory attributes, focusing on the BasicFileAttributes, DosFileAttributes, and PosixFileAttributes interfaces
- Recursively access a directory tree using the DirectoryStream and FileVisitor interfaces
- Find a file with the PathMatcher interface
- Watch a directory for changes with the WatchService interface
- Describe the interfaces that make up the core of the JDBC API (including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations)
- Identify the components required to connect to a database using the DriverManager class (including the jdbc URL)
- Submit queries and read results from the database (including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections)
- Use JDBC transactions (including disabling auto-commit mode, committing and rolling back transactions, and setting and rolling back to savepoints)
- Construct and use RowSet objects using the RowSetProvider class and the RowSetFactory interface
- Create and use PreparedStatement and CallableStatement objects
- Create and use the Thread class and the Runnable interface
- Manage and control thread lifecycle
- Synchronize thread access to shared data
- Identify code that may not execute correctly in a multi-threaded environment.
- Use collections from the java.util.concurrent package with a focus on the advantages over and differences from the traditional java.util collections.
- Use Lock, ReadWriteLock, and ReentrantLock classes in the java.util.concurrent.locks package to support lock-free thread-safe programming on single variables.
- Use Executor, ExecutorService, Executors, Callable, and Future to execute tasks using thread pools.
- Use the parallel Fork/Join Framework
- Read and set the locale by using the Locale object
- Build a resource bundle for each locale
- Call a resource bundle from an application
- Format dates, numbers, and currency values for localization with the NumberFormat and DateFormat classes (including number format patterns)
- Describe the advantages of localizing an application
- Define a locale using language and country codes
Görüldüğü gibi, temel Java bilgisi ancak OCP ile sağlanmaktadır. Dolayısıyla OCA olmak, yazılım endüstrisinde çalışmak için yeterli olmamakla birlikte bir sürecin ilk adımı olup, devamının gelecek olması sebebiyle önemlidir. Belli ki Oracle, temel Java yetkinliğini, yerelleştirme, eş zamanlılık ve JDBC gibi konuları da içerecek şekilde, haklı olarak genişletmiş ama bu genişletmenin getirdiği yükü de, OCA ve OCP ile ikiye bölüp Javacılar için daha rahat hazmedilebilir hale getirmiştir.
OCPden sonraki hedef ise OCMdir yani “üstad” olmaktır 🙂 OCM olmak için çoktan seçmeli bir sınav yoktur, onun yerine, 1Z0-855 nolu bir programlama ya da geliştirme ödevi ile 1Z0-856 nolu bir makale yazımı vardır. Ayrıca OCM için, Oracle’in verdiği listeden bir tane eğitimi almış olmanız gereklidir.
Programlama ödevi 6 ayda tamamlanmalıdır ve kullanıcı arayüzü tasarımı ve geliştirmesiyle, ağ, protokol ve veri tabanı programlamasını içeren bir projedir. Yazılması gereken makale de benzer şekilde 6 ayda tamamlanmış olmalı ve programlama projesi sırasında aldığınız tasarım ve programlama kararlarınızı tartışmalıdır. Makalede, kararlarınızı alternatifleriyle birlikte değerlendirip, savunmanız beklenmektedir. Dolayısıyla, çok uzmanı olmasanız bile, UML gibi bir dil ile almış olduğunuz tasarım kararlarınızı ifade etmeniz beklenmektedir. Bu iki çalışmada tasarım şablonları, yazılım geliştirme süreci, birim testi vb. konularla ilgili yetkinlikleri de göstermeniz beklenmektedir. Fiyatı $245’er olan bu iki çıktıda başarılı olduğunuzda OCM’i hakettiniz demektir.
Java SE ile ilgili sertifikalar üzerine daha geniş bilgiyi buradan alabilirsiniz.
Unutmayın, sertifikalı bir Javacı, aynı tecrübedeki sertifikasız bir Javacıdan daha tercihe şayan bir durumdadır. Bu durum, ülkemiz için henüz tam olarak yaygınlaşmamış olsa bile pek çok yazılım evinde değer verilen bir noktadır. Yurt dışını düşünenler için ise kanımca çok daha önemlidir.
Bol sertifikalı Javacı görmek umuduyla 🙂
Toplam görüntülenme sayısı: 31351
Hakan Müştak
24 Temmuz 2013 @ 20:26
Elinize sağlık.
Gürcan Kavakçı
12 Mayıs 2014 @ 00:24
Elinize sağlık, güzel bir yazı olmuş, özellikle sertifikaların oracle ın eline geçmesinden sonra ortada bir bilgi kirliliği vardır. Sizin hazırlamış olduğunuz bu yazıda güncel bilgiler yer alıyor. Herkese faydalı olması dileğiyle.
Akin
12 Mayıs 2014 @ 00:26
Tesekkur ederim 🙂
Mehmet
16 Ağustos 2014 @ 21:30
Java SE 7 ile sertifika sürecine başladığında 2 sınava girerek Professional seviyeye geliniyor. SE 6 ile direk Professional seviyeden sınava giriş yapılınabiliyor. Malum SE 7 için sınav ücretide daha kabarık oluyor böylece. Sizce Java SE 6 Programmer Professional ile başlamak mı yoksa Java SE 7 Programmer ile başlamak mı? Tercih edecek olsanız hangisini tercih ederdiniz?
edirne kız öğrenci yurdu
04 Eylül 2014 @ 14:42
Sertifika programlarının hangi ülkeden alındığı fark eder mi? Örneğin bulgaristan dan alasak?
Akin
04 Eylül 2014 @ 17:37
Farketmez, yeter ki alın. Tum dunyada gecerli sertifikalardir onlar.
Tesekkur ederim.
samet
06 Aralık 2014 @ 14:40
Merhaba. Şimdi bu parayı verip sınavı geçemediğimiz zaman paramız yanıyo mu yoksa tekrar deneme için hak veriyorlar mı. bu konuda bilginiz varmı acaba? Teşekkürler…
Akin
06 Aralık 2014 @ 16:29
Yaniyor malesef. Tekrar odemeniz gerekiyor.
Ben tesekkure derim.
Yusuf
13 Ocak 2015 @ 01:09
6 OCP ile 7 OCA konuları neredeyse aynı olmakla birlikte bu iki sertifika arasında büyük farklılıklar var mı ?
JAVA SE 7 OCA sertifikasını alan birine java se’yi biliyor diyebiliri miyiz? yada ben java yı biliyorum diyebilir mi ?
Akin
13 Ocak 2015 @ 12:29
Bu iki sertifika ile ilgiili, ilki için https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=652&get_params=p_exam_id:1Z0-851 ikincisi için de http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=652&get_params=p_exam_id:1Z0-803 sayfalarına bakabilirsiniz. Buradaki bilgilerden de gorebileceğiniz gibi içerikleri aynı değil. Ortak konualr var tabi oalrka ama zaten birisi OCA digeri OCP sınavı. OCP’nin daha genii içeriğe sahip olmasını bekleriz. Nitekim de oyle. Java SE 7 OCA, exception konusuna kadar geliyor bu yüzden de en temel konulara odaklanıyor. Java SE 6 OCP ise, OCP oldugundan dolayı, OCA üzerine bina ediliyor ve daha ileri OO ile generics, concurrency, API detayları gibi konulara giriyor.
Sşiz almak istiyrosanız, durumunuza göre ya OCA’den baslayın, daha kolay olur ya da kendinizi daha yetkin hissediyorsanız, dogrudan OCP’ye girin. Ama olabildiğince son versiyonlarına girin bu sınavların. Java SE 8 için henüz OCA beta sınavı var, http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-808 adresinde gorebilirsiniz.
Ote taraftan Java SE2yi bildigini soylemek için acıkcası OCA sınavı yeterli değil. OCP bu konuda sizi daha iyi duruma getirecektir. Kapsama alanı cok genis degil aslında OCP’nin de ama en azından kapsadığı temelleri iyi bildiginizi gostermiş olacaksınız. Sonucta Java SE, OCP içeriğinin uc-bes katı genişliginde.
Teşekkür ederim.
Bulut
23 Şubat 2015 @ 07:58
Yazı için çok teşekkürler gayet açıklayıcı bir yazı olmuş ama 2 sorum var 🙂 Sizce OCA ve OCP sınavları için İngilizcemizin hangi seviyede olması gerekiyor ve ayrıca kursa gitmeden kitap ve internet ile bu sınavlardan geçebilir miyiz?
Akin
23 Şubat 2015 @ 22:47
Acıkcası cok super bir Ingilzice’ye ihtiyac yok bence. Örneğin
Given: c0 = new List (); c1 = new ArrayList (); c2 = new ArrayList(); c3 = new ArrayList();
2. import java.util.*;
3. class Cereal { }
4. public class Flakes extends Cereal {
5. public static void main(String[] args) {
6. List
7. List
8. List
9. List
10. List
Sorusunu anlamak için İngilizce’de Shakespeare’yi okuyabliyor olmak gerekli değil.
Kursa gitmeden tabi ki kendi gayretinizle, k,tap, Internet ve bol bol örnek yazarak geçebilrisiniz.
Hoscakalın.
Bns
06 Ekim 2016 @ 16:36
Merhaba , Oca sınavına direk satin alıp online girebiliyor muyuz? Yoksa yetkili bir sınav merkezinde mi girmem gerekiyor? Teşekkürler
Akin
21 Ekim 2016 @ 22:07
Selam,
Bildigim yetkili sınav merkezinde girdiginiz yonunde.
Teskkurler.
acil kredi
19 Kasım 2016 @ 00:16
Java sertifika almaktan öte java yı öğrenip örnek kodlar deneyebilirsiniz ancak soru sorarak ve eğitmenden ders almanız sizin yararınıza olur. Şuan .net ve java ile ortak kullandığımız sistemde en büyük sıkıntımız java bilgisi iyi olan yazılımcılar. Java ve java script web tabanlı otomasyonlar için can damarı haline geldi. Yakında node.js zaten .net in yerini alacak gibi imkanı ve hevesi olan arkadaşlar mutlaka java ile ilgili sertifika programlarına katılsınlar! Yurt dışına yazılımcı ücreti ödemektense yerli yazılımcılarımız kazansın.
Mehmet
02 Ocak 2017 @ 19:55
Merhaba, bildiğiniz yetkili sınav merkezlerinden bir yada birkaçını yazabilirmisiniz ? internette arattığımıda bulamadım, teşekkürler.
Akin
03 Ocak 2017 @ 12:00
Merhabalar,
https://www7.pearsonvue.com/testtaker/registration/SelectTestCenterProximity/ORACLE/377795 linkinde İstanbuL’daki Oracle’ın sınav merkezleri listelenmiş durumda.
Kolay gelsin.
Akin
03 Ocak 2017 @ 12:03
Teşekkür ederim.