Traveling to Java Planet. My experience of Java 11 Developer certification (Part 1)

Traveling to Java Planet. My experience of Java 11 Developer certification (Part 1)

My name is Evgeniy, and I spent 5 years working with Building Information Modelling solutions (BIM), CAD- and CAE solutions, utilizing DSL DesignScript and Python. In 2014, I decided to change my field and switched to Java development. I have experience in the development and support of the app for computer network setting-up and network management. Currently, I work as a Java developer at AB Soft (Odessa) and develop web apps in the subject domain of cloud communication solutions.

I conceived the idea to get a certificate of Oracle Certified Professional: Java 11 Developer as early (in IT terms) as in 2016, when Oracle announced its plans to launch the 9th Java version. It was an incentive to get certified and learn a new version of the language. However, the time passed, and the release was first postponed for 6 months, and then to the second half of 2017. Besides, a long-anticipated Java 9 brought about the new policy of JDK versions release with a 6-months cycle of Java release. So, the following LTS (Long Term Support) was a Java 11 release. So, I had to wait until 2019. When Oracle announced the release of the new Oracle Certified Professional: Java 11 Developer certification, I didn't hesitate much before applying for the certification program to add another badge to my collection and share my experience in this article.

Illustrations: Dmitry Yatsenko

Why do you need this certificate at all?

It's as much a holy-war question as the one on the necessity of a specialized degree for an IT engineer. On the one hand, a certificate gives no benefits. On the other hand, it can catch an HR's eye, especially for developers from different languages or those retrained for a QA. Besides, the certificate will demonstrate you can set goals and achieve them.

Here are my incentives:

●     The desire to expand and consolidate my Java knowledge and understanding, including parts of API we rarely use in the current tasks;

●     Learn the novelties of long-anticipated Java 9...11 to be prepared for the future that can't fail to come (shedding a manly tear while tinkering a project on EJB3.0).

One can achieve those goals without certification. But for those familiar with SMART and a principle of a stick (loss of money for an exam attempt) and carrot (a document and a badge in the collection), it's not hard to figure out that the training is much more effective this way.

It’s up to you whether to get a certificate or not. This article only suggests tips for exam preparation.

Briefly on certification history

When being certified for Java 8 or its earlier versions, you could take two types of exams, each awarding a respective title: Associate or Professional. Since then, there has been a significant change: the title Oracle Certified Associate (OCA) no longer exists, so passing your first exam gives you neither a title nor a certificate. It means, to get Oracle Certified Professional 11 (OCP 11), you should pass both exams: Java 11 Programmer I (1Z0-815) and Java 11 Programmer II (1Z0-816). They are based on the old OCA 8 (1Z0-808) and OCP 8 (1Z0-809), respectively:

Protractedly on Oracle Certified Professional: Java 11 Programmer I (1Z0-815)

This article tells about the first necessary exam Oracle Certified Professional: Java 11 Programmer I (1Z0-815). It took me about two months (2-3 hours a day) to prepare for the exam. At the time, the Internet had quite scarce information about the exam itself and even fewer study guides. So, I hope that my ideas will shed light on the essential peculiarities and help readers pass the exam easily.

The language of the exam is English, so your English command should be adequate for understanding technical literature (by the way, all study guides are in English, too).

In fact, the exam checks your knowledge in Java fundamentals without deep dive into specific API (IO, NIO 2.0, Concurrency, Stream etc.). Mainly, you will have to work as either a compiler (indicate if the code will compile) or JRE (indicate the result of code execution and what Exception is used).

Yet, even skillful programmers should stay alert and not ignore the preparation as those drawing up the test will do their best to catch you at a simple lack of proper focus. And it's not so difficult, given that we use JDE to help us write a compiler.

An example. What is the data type of (x + y)?

double x = 39.21; float y = 2.1;

The key: line float y = 2.1 cannot be compiled as there is no symbol f after 2.1.

You may be required to tell about the results of executing the code, sent by one of your colleagues from the East:

public class Test { public void print(Integer x) { System.out.print("Integer"); } public void print(float x) { System.out.print("float"); } public void print(Object x) { System.out.print("Object"); } public static void main(String[] args) { Test t = new Test(); short s = 123; t.print(s); t.print(true); t.print(6.789); } }

I guess many will be surprised by the result being floatObjectObject.

The test has enough questions like that. So, my advice is to - at least - take mock tests and catch up with the trouble-making topics.I used the book "OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808" by Jeanne Boyarsky and Scott Selikoff to prepare for the exam. I disagree with the authors’ opinion that the new exam is far more complex than the previous ОСА 8 (1Z0-808). For instance, I detected only several issues that were not covered in the old exam and the book "OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808". Most of them are Java 9...11 features. Further, I describe the key differences between the new and the old exam versions.

What should you never forget during the Java 11 Programmer I exam?

  1. The interface now has private sample methods and private statistic methods (Java 9 novelties).
  2. The new static method  List.of() returns invariant List and generates Exceptions UnsupportedOperationException when executed if you're trying to change it (Java 9 novelties).
  3. You should be aware of the peculiarities of using a reserved type for local variables var. I suggest you watch the official Oracle video (from 00:17:00) (Java 9 novelties).
  4. You should know the operation principles and return value of new static methods Arrays.mismatch and Arrays.compare (Java 9...11).
  5. Also, pay attention to the functional Provider interface and to the fact the variable used in lambda expressions should be final or effectively final.
  6. Don't skip the StringBuilder.replace() method
  7. Consider the functions of the specific String.intern() method.
  8. Figure out the Java modularity, its tricky features, and basic principles. The knowledge of such JDK modules as java.base, java.desktop, java.se, and jdeps, jmod, jlink tools will come handy. It’s also important to understand how to compile and run Java app with a command line (Java 9).
  9. You don't really need to dive deep into java.time (LocalDate, LocalDateTime  etc). This package was not included in the exam. Even though it was mentioned several times, these questions tested the import package regulations. So, you can read through all the chapters on this API in ОСА 8 briefly.

I'd recommend spending most of the time learning Java modularity, as it is accountable for 10% of the test questions. Most other questions echo the topics provided in the old books for OCA 8 exam preparation.

Briefly on study guides

For general issues, I’d recommend the book "OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808" by Jeanne Boyarsky and Scott Selikoff or "OCA Java SE 8 Programmer I Exam Guide (Exams 1Z0-808)" by Bert Bates and Kathy Sierra. Practicing, use the mock tests offered in the books.

It is efficient to learn modularity, following Java 9 Modularity Book.

The relevant chapters in the Oracle JDK 11 Documentation will provide you with adequate information on var, List.of, Provider interface, StringBuilder.replace, String.intern and new methods of Arrays class.

On the procedure of application and exam-taking

Register at Pearson VUE and Oracle CertView, connect accounts, apply, pay, and go taking the exam. Odessa has no certification centers, but Kyiv hosts enough. Their working schedule is quite flexible, so use it as a chance to visit your friends and family living in the capital city. ;)

Now on exam-taking procedure. It's quite similar to a driving license exam, except it takes more time. You'd better arrive at the testing center 15-20 minutes before the appointed time. You will have to put all your personal stuff in a cell. Before the exam begins, they take your photo, ask you to sign several documents, and check your documents (in my case, both Ukrainian and international passports). Then they will provide you with a marking pen and two laminated sheets of paper where you can make your notes. You can tick the questions during the test to return to them later. If you go to the bathroom, your examination time keeps counting.

There was an accident when I was taking my exam: closer to the end of the test, the light blinked, UPS didn't work, and my computer went restarting while my brain froze.

Thankfully, the data had already been sent to the server, and the exam session timer did not count the time while the PC was restarting and switching to the examination mode.

On the bright side

They will send the exam results to your email after only 15 minutes. So you won’t have to agonize over the results for a long time. The exam has quite a low passing score, so after some good preparation and a certain number of mock tests, being armed with the tips and recommendations from this article, you can achieve the result you will be happy with.

Good luck, and thank you for your attention.

P. S. Java 11 Programmer II (1Z0-816) (old OCP 8 (1Z0-809)) is coming soon... I’ll elaborate on it in my next write-up.