The second level of Java certification is becoming an Oracle Certified Java Professional. In Sep 2014 I got a job offer from Deutsche Bank for Software Development Engineer position. For several weeks before the start of job I studied for 1Z0-804 exam, and successfully passed it on 10 Oct 2014.
Here is what I did to prepare:
Step 1. Made a study plan largely based on my preparations for the associate certification. This time the plan included advanced topics such as design patterns. The full list of topics can be found here. I wrote notes for all materials I studied and then looked through the notes before the exam.
Step 2. Read relevant parts of the official Oracle tutorial, well-referenced by the Really Big Index. In particular, the trails helpful for the professional certification are:
Learning the Java Language (especially generics),
Essential Classes (Exceptions/ I/O / Concurrency),
Collections, Internationalization, JDBC Database Access.
Step 3. Watched tutorials on SkillSoft (got access through one of the recruiters).
In particular, “1Z0-804 Java SE 7 Programmer II” series of courses proved helpful.
It contained 3 tutorials: “Syntax and Class Design”, “Generics, Errors, and I/O”, and “File I/O, Concurrency, JDBC, and Localization”. The tutorials covered Data Access Object pattern.
Step 4. Separately studied design patterns by reading chapters of “Design Patterns: Elements of Reusable Object-Oriented Software” and “Head First Design Patterns“. The former book is written 20yrs ago, but is still an unsurpassed standard in the field.
Besides DAO, the exam covers Abstract Factory, Factory, and Singleton patterns.
Step 5. Separately studied NIO, Collections, and Concurrency by readings through API.
After all, the official Oracle API is the most-authoritative source of information about Java. The general descriptions of interfaces are written very well, e.g. List Interface.
Step 6. Looked through “Study Tonight” guides. They have nice organization of material, e.g. Collection Framework.
Step 7. Took several practice exams. Enthuware has a great battery of up-to-date practice tests. I got quite anxious after failing the first practice test with a score of 64%.
However, after some catching up in the weak areas, I boosted the score to ~75%.
Step 8. Developed a strategy for the exam. It has 90 questions per 150 minutes. Answering 9 questions every 15 minutes is a good target. The exam has both short easy questions as well as tough questions with 2-3 pages of code samples.
One has to answer short questions in 30 seconds to have a luxury of spending 3-4 minutes answering long questions. Every other question has “code does not compile” option. By the conclusion of studies my brain worked as a quite good Java compiler…
As an added bonus came previous studies of “Java Concurrency in Practice” book, which really helped me during the interview at Deutsche Bank.
I got a score of 85% on the real exam!