what does it mean to be OCP Java 8 Programmer II certified?

There are now three paths for one to become OCP 8 (Java Programmer II certified.) So what does it mean someone certified had to know to pass the exam. Well, that varies too.

The three paths

  1. Starting out with Java 8 – take the OCP 8 (IZ0-809)
    Pre-req: OCA 8 (1Z0-808)
  2. Holding a Java 7 Professional cert – take the Java 7 to 8 upgrade exam (IZo-810)
    Pre-req: OCP 7 (IZ0-804) or Java 7 upgrade exam (IZo-805)
  3. Holding any Java 6 or older Professional cert – take the Java 6 or earlier to 8 upgrade exam (IZo-813)
    Pre-req: SCJP/OCJP 6 (IZO-851) or Java 6 upgrade (IZ0-852) or SCJP/OCJP 5 (IZo-853) or Java 5 upgrade (1Zo-854) or Java 4 or lower Professional cert

What one would expect

It seems reasonable to assume some things here.

  1. People taking the OCP 8 directly should be tested on the topics that entail being Java 8 certified.
  2. vennPeople taking the upgrade from Java 7 should be tested on just the topics that were added in Java 8. This is the purple in the Venn diagram. There’s no reason to retest on the topics that the were already on the Java 7 exam. That’s the overlap in the Venn diagram. (This is a bit simplified. It’s really that the topics should be those on the OCA 8 or OCP 8, but not on the OCA 7 or OCP 7. Luckily the topics added on the OCA 8 are also on the OCP 8.)
  3.  venn2People taking the upgrade from older versions of Java have a more interesting situation. When taking a very old exam, lots of topics are different. For example, new topics include generics and the enhanced for loop for those upgrading from Java 5. These topics are so old that it is reasonable to assume the candidate knows this as these syntax changes are covered as part of questions on all sorts of topics. Since the exam changed a lot between Java 6 and 7, let’s just imagine all upgrade candidates in this group took the Java 6 exam. Which would imply the topics covered should be the purple OCP 8 circle except for the overlap with the OCP 6 circle. It doesn’t imply the topics covered in OCP 7 but not OCP 6 or 8 should be covered. After all, those topics were removed from the OCP 8 exam so shouldn’t be needed to get a Java 8 certification.

These assumptions turn out to not match what Oracle actually did. The rest of this blog post describes the surprises.

What people starting out with Java 8 were tested on, but those upgrading from Java 7 were not

Topics:

  1. The concept of immutability
  2. The concepts of deadlock, starvation, livelock, and race conditions. They are tested when upgrading indirectly but with less emphasis.

My thoughts: No big deal here

What people starting out with Java 8 were tested on, but those upgrading from Java 6 were not

  1. The concept of immutability
  2. The singleton pattern
  3. The concepts of deadlock, starvation, livelock, and race conditions. They are tested when upgrading indirectly but with less emphasis.
  4. The entire topic of JDBC

My thoughts: Leaving out the first three isn’t a big deal. Leaving out JDBC is bizarre. That’s a whole topic that is part of core Java. It started being needed for Java 7 (or 8) certification. Upgrading from an older version seems like it should require it. But nope.

What people upgrading from Java 7 were tested on, but those starting out with Java 8 were not

  1. The computeIfAbsent() and computeIfPresent() methods on Map
  2. Also merge()  [removed from main exam in October 2015 and removed from upgrade exam in November 2015]

My thoughts: Odd to add topics on an upgrade exam. These are so similar, I’d almost think they were implied on the Java 8 exam.

What people upgrading from Java 6 were tested on, but those starting out with Java 8 were not

  1. The computeIfAbsent() and computeIfPresent() methods on Map
  2. Also merge()  [removed from main exam in October 2015]
  3. IO.2 – DirectoryWatcher, FileVisitor and WatchService
  4. Locks package in concurrency API
  5. DecimalFormat and SimpleDateFormat

My thoughts: This is bizarre. These three NIO.2 classes, the locks package and the two format classes were on the OCP 7 exam, but not on the OCP 8 exam. Oracle changing their mind and taking something off the exam for a later version is perfectly reasonable. However, I would think that would mean you don’t put it on the upgrade exam! Why should the upgrade exam cover something that isn’t on the target exam.

Summary

If I was writing the objectives for the upgrade exam from Java 6,  I’d have dropped some topics and added JDBC. But I’m not writing the exam objectives so will remain puzzled.

Leave a Reply

Your email address will not be published. Required fields are marked *