Hi, Habr!
My name is Masha, I work at KROK. Today I want to tell you about obtaining certificates of Oracle Certified Associate and Oracle Certified Professional.

')
In general, in discussions about the usefulness of professional certification (and indeed its necessity in principle) among developers, spears often break. Some believe that a certificate is highly desirable for hiring a decent job. Others say that “pieces of paper” do not play a special role, even a diploma of higher education may not be required, only skills will be evaluated.
There are cases (probably, if the interview process is not very streamlined) when HR can eliminate a person without a certificate, although such a person would actually more than have done the job. Or, on the contrary, to react to the availability of a certificate, arrange a technical interview with the developer, who, it is true, will quickly understand that the candidate went by accident at all, and will begin to suspect that, apart from passing the certificate, he did not study anything and did not use it.
Anyway, there are people who need certificates. Both for the portfolio and for yourself. Under the cut, I'll share my impressions of Oracle Certification on Java: Oracle Certified Associate (1Z0-808) and Oracle Certified Professional (1Z0-809). In world practice, the presence of these certificates is a confirmation of a certain level of qualification of the java-developer, so many of this procedure pass.
Oca
A little background. Previously, SUN Microsystems, which in 2009 bought Oracle, was engaged in this certification of javistes. Two key organizations, Virtual University Enterprise (VUE) and Prometric, are engaged in testing the level of knowledge and issuing certificates. I work at the CROC Irkutsk development center, so I passed the exam at the VUE certified center in Irkutsk. It's nice that training and certification for the purpose of professional development can be carried out at our company’s expense. Moreover, with certification I was able not only to qualify my level as a developer, in CROC it is still a powerful factor for career growth. Since this is also a bonus for the company - an additional advantage in the total number of certified employees per square meter. They say that many customers consider this fact to be a serious competitive advantage.
Now essentially. OCA (Oracle Certified Associate) is the initial step of Java developer certification. There is a special
book to prepare for OCA, which is written in quite an understandable language; it can even be mastered by a person who has a rather small experience with OOP (any programming language). The book is in English, in the Russian translation, I have not met her. But, once again - the language is really simple, there will be no particular difficulties.
No matter how fresh the revision of the book you are preparing for, it will not be superfluous to keep
this link at hand. No publication is immune from typos, and this link is noted where exactly the error or typo is in the book, and how it really should be.

I remember, I sat for a long time over one of the test questions, could not understand why everything turns out that the correct answer is B, and it is marked in the list of answers D. And in the comment to the correct answer, everything pointed to B. ... When I remembered the list of typos I found this moment there, and everything immediately fell into place.
Carefully pass tests from the book - this is half the success. Ideally, two times. Or at least a second time to go through those issues in which you first made a mistake. Not in order to memorize the questions themselves, but in order to make sure that you understand and feel the correct solution to the situation. However, my experienced programming friends, who had to take the OCA from the height of their positions, used a different strategy: after reading the second chapter, they passed tests from the first, after reading the third - from the second, and so on by induction.
Questions that you will solve may be very similar to those that will be on the tests. However, being attentive and reading every word of the question on the exam is extremely important. Sometimes, you break through tests at home for the second time, some question will settle tightly in your memory, you come to the exam - and there is the same question! You rejoice, you answer from memory, you do not read carefully. And then it turns out that the access level of the method was different, and you lost sight of it because of excessive self-confidence ...
So, OCA assesses knowledge of the fundamentals of Java Core. If you have experience in developing it, the exam will not be difficult. I consider it important to note that for OCA one should be able to compile in one's mind. Yes, yes, you need to know and remember all these cute little things that in modern life makes you a modern IDE. That is, the rules for naming variables, see unreachable blocks of code, unnecessarily handled exceptions, raw and non-thrown exceptions, correct and incorrect placement of variables into objects, and much more.
Sample question from the bookWhat is the data type (or types)? (Choose all that
apply)
byte x = 5;
byte y = 10;
_____ z = x + y;
A. int
B. long
C. boolean
D. double
E. short
F. byte
Someone may seem tedious that the exam will have to pretend to be a compiler. But on the other hand, understanding how its logic is arranged, the ability to immediately understand the error in the code: these skills do not interfere, but only help in everyday work. OCA is a kind of training; it is easy to read java-code to improve the skill without being distracted by misunderstanding the foundation of this code.
There may be questions for which you need to remember existing methods, their behavior and signatures. Looking ahead, there will be more such questions in OCP. However, in some OCA issues you may have to recall the methods of collections and classes for working with strings.
An example though from OCP, but my favorite, because it is painfully indicativeAre you given the following declaration?
Map <String, Double> map = new HashMap <> ();
A. map.add ("pi", 3.14159);
B. map.add (“e”, 2L);
C. map.add ("log (1)", new Double (0.0));
D. map.add ('x', new Double (123.4));
E. None of the above
As a perfectionist, I tried to memorize method signatures that I encountered in the preparation questions. Undoubtedly, it helped me on the exam. However, communicating with my colleagues, I realized that many guys take it easier: they read the book and carefully pass the tests, but the signatures are not bad. Indeed, their experience and intuition were usually enough to score at least 65% of the correct answers on the exam - and this is a passing score for both the OCA and the OCP.
In the certification center you will be given only a marker and a laminated cardboard. The rest is yours.
Outcome on OCA - wake up. You will have 2.5 hours to deal with 70 questions. No matter how well prepared you are, be attentive to the little things. If you decide everything is ahead of time, take a few more minutes and review the answers again. The exam has a mechanism for marking a question called “Mark.” I mark those in which I am not completely sure, and the first thing to do is to return to them. By the way, in the same place there is an opportunity to mark answers which precisely consider as incorrect: for this purpose use the right mouse button.
About the results. My result came to my email only after a few days. If you do not want to wait so much - check your Oracle account from time to time. The result may appear first there, and after some time come in the form of a letter.
What thenIf it was the first certification in life, you will be assigned two identifiers - from VUE and from Oracle - the first one will allow you to accumulate data on all certifications, and the second - within the vendor. In the future, such an identifier will be sufficient to confirm that certification has been passed. Try to remember it and inform those who will register you for the following exams.
If you think that OCA is only the beginning of your Java certification history, and you intend to conquer OCP, then I would not advise you to do long breaks between tests. The knowledge that you gained in preparing for the OCA will also be needed in the OCP, so it is easier to start preparing for the OCP immediately for fresh memory.
OCP
OCP (Oracle Certified Professional) - the second step of certification Java-developer. The same 2.5 hours on the exam, the same threshold of passing 65% of correctly answered questions, and the number of questions increased to 85.
There are compilation traps too, like an incorrect type of the returned object and missing parentheses. There are few of them, but we still lose vigilance.
In general, OCP is a test of theoretical knowledge ... method signatures and syntactic constructs!
Yes, again we sit on most issues and compile ourselves little by little in our minds. But this time the error, if any, will most often be at a much higher level of abstraction. That is, not at the level of syntactic constructions, but at the level of working with classes. It is possible that this time it is not necessary to start any cycles with variable counting in the mind (or look for errors in the names of the variables themselves). But remember that the correct application of specific structures and methods is necessary.
For OCP I memorized two useful tables (and for good reason, both were useful in the exam). I share them with you (the first is entirely from the book).
Table 1. Functional Interfaces
Table 2. List of limitations of inner and nested classes
Matter of course, I learned not only them - because of the number of stickers throughout the apartment, I forgot for a while what kind of wallpaper in the room (and whether they are). The method helps with memorization of information fragments. Of course, the most memorable stickers are hanging in the bathroom.
If this is not enough for you, you can switch completely in nightmare (like me) and place materials from OCP on home and work computers wallpaper. Well, the phone, of course. I renamed my friend in the list of phone contacts to commit (). And with each incoming call from her, I repeated in my memory that the Connection class’s commit () method does not have overloaded versions (the analogy, of course, refers to a girlfriend: she is not one of those who ship with a long chatter).
In this article I place a big emphasis on what to cram. But this in no way excludes the fact that in order to pass exams, you must be a good programmer with a deep understanding of the language and the ability to make the most of the latest version of Java. It’s just that most of those who come to OCP are already such specialists, but, as a rule, it’s not useful to learn by heart language constructs.
Finally, a couple of hints.
1. On OCP, neither I nor any of my friends were caught by RandomAccessFile.
2. According to rumors, serialization was excluded from OCP. I could not find evidence. But - I want to believe.
In general, something like that. I hope it turned out interesting and useful. If you have questions, write in the comments.