Oracle Certified Associate и Oracle Certified Professional. Общее впечатление и нюансы подготовки +13


Привет, Хабр!

Меня зовут Маша, я работаю в КРОК. Сегодня я хочу рассказать вам о получении сертификатов Oracle Certified Associate и Oracle Certified Professional.



Вообще, в спорах о полезности профессиональной сертификации (да и ее необходимости в принципе) среди разработчиков довольно часто ломаются копья. Некоторые уверены, что для найма на приличную работу сертификат крайне желателен. Другие говорят, что “бумажки” не играют особой роли, даже диплом о высшем образовании может не потребоваться, оценивать будут исключительно навыки.

Бывают случаи (вероятно, если процесс собеседования не очень отлажен), когда HR может отсеять человека без сертификата, хотя такой человек на самом деле более чем справился бы с работой. Или, наоборот, среагировать на наличие сертификата, устроить техническое собеседование с разработчиком, который, правда, быстро поймет, что кандидат вообще зашел случайно, и начнет подозревать, что кроме сдачи сертификата он ничего не изучал и не использовал в работе.

Как бы то ни было, есть люди, которым сертификаты нужны. Как для портфолио, так и для себя лично. Под катом я поделюсь впечатлениями от сертификации Oracle по Java: Oracle Certified Associate (1Z0-808) и Oracle Certified Professional (1Z0-809). В мировой практике наличие этих сертификатов является подтверждением определенного уровня квалификации java-разработчика, поэтому многие эту процедуру проходят.

OCA


Немного предыстории. Раньше подобной сертификацией джавистов занималась компания SUN Microsystems, которую в 2009 году купил Oracle. Тестированием на проверку уровня знаний и выдачей сертификатов занимаются две ключевые организации — Virtual University Enterprise (VUE) и Prometric. Я работаю в иркутском центре разработки КРОК, поэтому экзамен сдавала в иркутском сертифицированном центре VUE. Приятно, что обучение и сертификацию с целью профессионального развития у нас можно проходить за счет компании. Более того, сертификацией я смогла не только квалифицировать свой уровень как разработчика, в КРОКе это еще мощный фактор для карьерного роста. Поскольку для компании это тоже бонус – дополнительное преимущество в общем количестве сертифицированных сотрудников на квадратный метр. Говорят, многие заказчики этот факт считают серьезным конкурентным преимуществом.

Теперь по сути. OCA (Oracle Certified Associate) — это начальная ступень сертификации Java-разработчика. Есть специальная книжка для подготовки к OCA, которая написана вполне себе понятным языком, это по силам освоить даже человеку, у которого довольно маленький опыт работы с ООП (любым языком программирования). Книга на английском, в русском переводе я ее не встречала. Но, ещё раз — язык и вправду простой, особых сложностей не будет.

Насколько бы свежа ни была редакция книги, по которой вы готовитесь, не лишним будет держать под рукой эту ссылку. Никакое издание не застраховано от опечаток, а по указанной ссылке отмечено, где именно в книге ошибка или опечатка, и как должно быть на самом деле.



Помню, долго я просидела над одним из тестовых вопросов, никак не могла понять, почему по всему выходит, что правильный ответ B, а в списке ответов помечен D. И в комментарии к правильному ответу все указывало на В… Когда я вспомнила про список опечаток, нашла там этот момент, и все сразу встало на свои места.

Внимательно прорешать тесты из книги — это уже половина успеха. В идеале раза два. Или хотя бы на второй раз пройтись по тем вопросам, в которых сначала допустили ошибку. Не для того, чтобы заучить сами вопросы, а для того, чтобы убедиться, что вы поняли и прочувствовали правильно решение ситуации. Впрочем, мои опытные в программировании друзья, которым пришлось с высоты своих позиций сдавать OCA, применяли другую стратегию: после прочтения второй главы они прорешивали тесты из первой, после прочтения третьей — из второй и так далее по индукции.

Вопросы, которые вы будете прорешивать, могут оказаться очень похожими на те, что будут на тестах. Тем не менее, быть внимательным и читать каждое слово вопроса на экзамене крайне важно. Бывало, прорешаешь дома тесты на второй раз, какой-то вопрос плотно осядет в памяти, приходишь на экзамен — а там такой же вопрос! Радуешься, по памяти отвечаешь, внимательно не вчитываешься. А потом оказывается, что уровень доступа метода отличался, а ты это упустил из виду по причине излишней уверенности в себе…

Итак, OCA оценивает знание фундаментальных основ Java Core. Если у вас за плечами есть опыт разработки, сложным экзамен не покажется. Считаю важным отметить, для OCA надо уметь компилировать в уме. Да-да, надо знать и помнить все эти милые мелочи, которые в обычной жизни за вас делает современная IDE. То есть правила именования переменных, видеть недостижимые блоки кода, излишне обрабатываемые исключения, необработанные и неперброшенные исключения, корректное и некорректное помещение переменных в объекты и многое подобное.

Пример вопроса из книги
What data type (or types) will allow the following code snippet to compile? (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


Кому-то может показаться нудным, что на экзамене придется изображать из себя компилятор. Но с другой стороны, понимание, как устроена его логика, способность сходу понять ошибку в коде: эти навыки не мешают, а только помогают в повседневной работе. OCA — своего рода тренировка, прокачка навыка легко читать java-код, не отвлекаясь на непонимание фундамента этого кода.

Могут встречаться вопросы, для которых надо помнить существующие методы, их поведение и сигнатуры. Забегая вперед, таких вопросов будет больше в OCP. Тем не менее, в некоторых вопросах OCA вам, возможно, придется вспомнить методы коллекций и классов работы со строками.

Пример хоть и из OCP, но мой любимый, потому что уж больно показательный
Which of the answer choices are valid 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


Я, будучи перфекционисткой, пыталась заучивать сигнатуры методов, которые мне встречались в вопросах при подготовке. Бесспорно, мне это помогло на экзамене. Тем не менее, общаясь с коллегами, я поняла, что многие ребята относятся к этому проще: читают книгу и внимательно прорешивают тесты, но сигнатуры не зубрят. И действительно, их опыта и интуиции как правило хватило для того, чтобы набрать не менее 65% правильных ответов на экзамене – а это проходной балл как для OCA, так и для OCP.

В центре сертификации вам дадут только маркер и ламинированную картонку. Остальное — за вами.

Итог по OCA — бдите. У вас будет 2,5 часа чтобы справиться с 70 вопросами. Как бы вы ни были прекрасно подготовлены, будьте внимательны к мелочам. Если прорешаете все раньше времени, потратьте еще несколько минут и просмотрите ответы повторно. На экзамене есть механизм, позволяющий отметить вопрос, называется «Mark». Я помечаю те, в которых не полностью уверена, и первым делом вернуться стоит к ним. Кстати, там же есть возможность помечать ответы, которые точно считаете неверными: для этого используйте правую кнопку мыши.

Насчет результатов. На электронную почту мой результат пришел только через несколько дней. Если не хотите ждать столько — проверяйте время от времени свой аккаунт в Oracle. Результат может появиться сначала там, а уже через какое-то время прийти в виде письма.

Что потом

Если это была первая сертификация в жизни, вам присвоят два идентификатора – от VUE и от Oracle – первый позволит аккумулировать данные по всем сертификациям, а второй — в рамках вендора. В будущем такого идентификатора будет достаточно, чтобы подтвердить, что сертификация была пройдена. Постарайтесь его запомнить и сообщать тем, кто вас будет регистрировать на следующие экзамены.

Если Вы считаете, что OCA — это лишь начало вашей Java сертификационной истории, и намерены покорять OCP, то я бы не советовала делать между сдачами тестов больших перерывов. Те знания, которые вы получили при подготовке к OCA, понадобятся и на OCP, поэтому проще начать подготовку к OCP сразу по свежей памяти.

OCP


OCP (Oracle Certified Professional) — вторая ступень сертификации Java-разработчика. Те же 2,5 часа на экзамене, тот же порог сдачи 65% правильно отвеченных вопросов, а количество вопросов увеличилось до 85.

Компиляционные ловушки тоже есть, вроде некорректного типа возвращаемого объекта и отсутствующих скобок. Их мало, но бдительность все равно не теряем.
В целом же, OCP — это проверка теоретических знаний… сигнатур методов и синтаксических конструкций!

Да, снова на большинстве вопросов сидим и компилируем себе потихоньку в уме. Но на этот раз ошибка, если она есть, чаще всего будет на значительно более высоком уровне абстракции. То есть не на уровне синтаксических конструкций, а на уровне работы с классами. Возможно, в этот раз запускать какие-то циклы с подсчетом переменных в уме не придется (или искать ошибки в названиях самих переменных). Но вот помнить правильное применение конкретных конструкций и методов надо.

Для OCP я заучила две полезные таблицы (и не зря, на экзамене пригодились обе). Делюсь ими с вами (первая — целиком из книги).

Таблица 1. Функциональные интерфейсы


Таблица 2. Перечень ограничений inner и nested классов


Ясное дело, выучила я не только их — из-за количества стикеров по всей квартире я на какое-то время забыла, какие в комнате обои (и есть ли они). Помогает метод с заучиванием именно отрывков информации. Само собой, самые запомнившиеся стикеры — это висевшие в ванной.

Если вам мало и этого, можно переключиться совсем в nightmare (как я) и разместить материалы из OCP на обоях домашнего и рабочего компов. Ну и телефона, конечно. Подругу в списке телефонных контактов я переименовала в commit(). И при каждом входящем звонке от нее я повторяла в памяти, что у метода commit() класса Connection нет перегруженных версий (аналогия, конечно же, относится к подруге: она не из тех, кто грузит длинной болтовней).

В этой статье я делаю большой акцент на том, что нужно зубрить. Но это ни в коем случае не исключает того, что для успешной сдачи экзаменов необходимо быть хорошим программистом с глубоким понимаем языка и умением максимально использовать возможности свежей версии Java. Просто большая часть из тех, кто доходит до OCP, уже являются такими специалистами, а вот учить наизусть языковые конструкции в работе как правило не пригождается.

Напоследок парочка хинтов.

1. На OCP ни мне, ни кому-либо из моих знакомых не попался RandomAccessFile.

2. Судя по слухам, сериализацию исключили из OCP. Доказательств мне найти не удалось. Но — I want to believe.

В общем, как-то так. Надеюсь, получилось интересно и полезно. Если есть вопросы, пишите в комментариях.

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (11):

  1. shishmakov
    /#19134523 / +1

    В свою очередь могу порекомендовать замечательные книги от Mala Gupta. Сдавал сертификацию OCA и OCP по Java SE 7. Они замечательно подойдут и для подготовки к сертификации, и для «ускоренного» перехода на Java с другого ЯП.
    www.manning.com/books/oca-java-se-8-programmer-i-certification-guide
    www.manning.com/books/ocp-java-se-7-programmer-ii-certification-guide

    (не знаю о статусе книги по OCP Java SE 8, поэтому ссылка только на 7)

  2. zipo
    /#19134711 / +2

    Есть класcный тестовый движек, где можно бесплатно делать свои тесты и потом на них треннироваться и выкладывать в открытый доступ: loorex.com
    К нему создали уже достаточно много тестов, которыми тоже можно пользоваться, что бы проверить свои знания. Файлы с тестами можно качать с этого сайта onlinetestcentre.com/search/oracle.html Само тестирование бесплатное.
    Хорошо помогает оценить стадию своего обучения, на сколько вы готовы к реальному экзамену.

  3. RedMadCat
    /#19135317

    Только такой момент, Oracle уже давно не работает с Prometric: www.oracle.com/us/education/certification/exam-vendor-079045.html

    • eXoToL
      /#19136169

      Старая какая-то статья, я уже 6 оракловых экзаменов сдал и все регестрировал через Прометрик

  4. ion0v
    /#19137347

    Насчет сериализации. Сдавал OCP в августе и она там была)
    А вы учили только теорию? есть же сайт где за 10$ тебе присылают набор из 600-700 вопросов, схожих с теми что будут на сертификации.

    • pomazkina
      /#19137351 / +1

      Инфа про сериализацию поступила мне от сдающих в ноябре 2017. С тех пор никому из моего окружения не попадалась. Повторюсь, официального подтверждения не нашла.

  5. igor_dumchykov
    /#19141429

    Помню когда сдавал сертификацию, покупал симулятор экзамена с вопросами здесь enthuware.com/index.php. Даже сейчас иногда открываю программку для проверки своих знаний. Советую!

  6. Bonce
    /#19141433

    На электронную почту мой результат пришел только через несколько дней. Если не хотите ждать столько — проверяйте время от времени свой аккаунт в Oracle.

    Оба раза через 5 минут после окончания экзамена на почте было письмо с результатами.

  7. groomok
    /#19141435

    Прошу прощения,

    Пример хоть и из OCP, но мой любимый, потому что уж больно показательный

    Map.put вроде как должен быть?

    • Bonce
      /#19141729

      Да, поэтому там и есть вариант «Ни один из перечисленных»

  8. Asapin
    /#19147881

    Расскажу про свой опыт сдачи OCA 7: к моменту сдачи сертификации, у меня было примерно 2,5 года опыта работы на Java над энтерпрайзными проектами разного уровня сложности. Для подготовки к экзамену использовали разные книги, в том числе книги от Mala Gupta, которые упомянули выше в комментариях.

    Для проверки уровня знаний использовали тесты от Ethuware. И так как проходили сертификацию за счет работодателя, условием допуска к экзамену было набрать минимум 70% на полном тесте от Ethuware (там есть тесты по отдельным разделам, и несколько тестов, которые покрывают все разделы, как на самой сертификации).

    Я прошел пару тестов по отдельным разделам, прочитал 2 или 3 главы из книги Mala Gupta, прошел один полный тест, набрал что-то в районе 70-72%, прочитал комментарии к вопросам, на которые ответил неправильно и меня допустили проходить сертификацию.
    Могу сказать, что вопросы в тестах от Ethuware хоть и похожи на вопросы из реального экзамена, но они немного сложнее. Поэтому 70% в этих тестах — это практически гарантированно 75%, а то и выше, на реальном экзамене.

    Времени на прохождение всех вопросов хватило практически в притык, в конце осталась буквально пара минут, что бы проверить вопросы, в которых я сомневался, поэтому если вы не уверены в ответе на какой-то вопрос, то лучше не сидите над ним, а поставьте наиболее вероятный на ваш взгляд ответ, пометьте себе этот вопрос, и двигайтесь дальше. Если останется время, то в конце вернетесь что бы еще подумать над ответом.

    На саму сертификацию ездили впятером с коллегами, результаты были известны уже через 10-15 минут после экзамена. Все пять человек набрали 88-95%.

    Сейчас занят подготовкой с OCP 7, так как 2018 — последний год, когда можно сдать этот экзамен. Если в этом году не успею, то в следующий раз опять придется начинать с OCA. А если успею, то потом можно будет пройти апгрейд-сертификацию — что-то вроде облегченного экзамена на OCP 8.