В этой статье речь снова пойдет о сертификации. Не так давно я рассказывал о процессе получения сертификата от компании Google для Android разработчиков. Почитать об этом можно вот здесь. В статье я периодически приводил сравнение с процессом получения сертификатов от Oracle. Немного подумав, я решил раскрыть эту тему подробнее, благо сертификат от Oracle я получил полгода назад и еще не все забыл. Естественно, на хабре уже не раз описывали этот процесс. Например, достаточно подробные описания можно найти тут и тут. Однако, указанные статьи были написаны несколько лет назад, и затрагивают Java SE 7. Я же постараюсь сосредоточиться на особенностях экзамена по Java SE 8 и в принципе обновить информацию по процессу получения сертификата. Тех, кому все еще интерсено, прошу под кат.
Разновидности сертификатов
Итак, по какой-то причине вы решили стать не просто Java разработчиком, а сертифицированным Java разработчиком. За сертификатом мы естественно отправимся к Oracle. Уж чего-чего, а этого добра у них хватает. Но нас интересуют только сертификаты по Java, в частности Java SE 8. Какие же у нас есть варианты? Посмотреть их можно тут.
На момент написания статьи есть следующие варианты:
Как видно, есть 3 уровня сертификатов:
- Associate
- Professional
- Master
Если это ваш первый сертификат по Java, то ваш путь однозначно приведет вас к Java SE 8 Oracle Certified Associate (OCA) certification. Это самый простой экзамен, но без него (или аналогичных, о чем чуть позже) не получить остальные. Для получения этого сертификата нужно всего лишь сдать экзамен за номером 1Z0-808. Мне его сдавать не довелось, поэтому двинемся дальше.
Если вам уже довелось получать какой-то из сертификатов, то можно двигаться в сторону Oracle Certified Professional Java SE 8 Programmer, о котором собственно эта статья. И вот здесь уже есть следующие варианты:
- у вас есть сертификат Associate Java SE 8
- у вас есть сертификат Programmer Java SE 7
- у вас есть сертификат Programmer Java SE 6 or below
Хочу обратить на этот момент более пристальное внимание. От того, какой у вас сертификат, зависит выбор экзамена, который нужно проходить. А от того, какой экзамен будет выбран, будут зависеть вопросы на этом самом экзамене.
Ну и наконец, венец всему, Oracle Certified Master, Java SE 6 Developer. А почему 6, спросите вы, ведь речь идете о Java SE 8. В чем причина я не знаю, но Oracle не собирается выпускать экзамен Master уровня для 8-й Java. По крайне мере в поддержке мне ответили именно так. Вероятно, дело в содержании экзамена. Уровни Associate и Programmer проверяют знание SDK соответствующей версии. В случае Master нужно писать приложение. И в этом случае наверное не так важно, на какой именно Java оно написано. Так же Master является самым дорогим экзаменом — его стоимость неумолимо подкрадывается к 1000$, так как для его получения нужно в обязательном порядке пройти какой-нибудь из обучающих курсов Oracle.
Так уж получилось, что мне подошел третий вариант, так как у меня на руках имелся сертификат по Java SE 6, а семерку я пропустил, так как изменений там было не сильно много. Все, что будет написано дальше, будет относиться именно к получению сертификата Oracle Certified Professional Java SE 8 Programmer путем улучшения его из сертификата по 6-й Java.
Подготовка
Итак, вы определились с тем, какой экзамен вам нужно сдавать и готовы ринуться в бой. Но не советую торопиться. Даже если вы гуру Java, сертификация может преподнести вам много сюрпризов, в основном неприятных.
Что же нужно иметь ввиду? Сертификация проверяет ваши знания SDK, причем разными способами. Где-то просят оценить кусок кода и указать на ошибки. Где-то нужно мысленно запустить программу и определить ее вывод. Где-то нужно дополнить код. В общем вариантов много, но во всех скрывается один главный подвох. Точнее, их два. Нужно определить, скомпилируется ли приведенный кусок кода. В большом количестве вопросов есть вариант ответа, который предполагает, что код не скомпилируется. Если вы используете в работе IDE, то тут могут возникнуть сложности, так как оыбчно именно IDE берет на себя эту задачу. Понадобится некоторое время на то, чтобы это начать делать самому. И тут-то в дело вступает второй подвох — авторы тестов ждут от кандидатов безусловного знания сигнатур методов. Во многих вопросах компиляция не случится именно из-за того, что где-то не соответствует количество параметров, или не тот тип возврата, или метод пытается маскироваться под метод похожего класса.
Все вышеописанное можно обойти достаточно простым способом — потратить некоторое время на подготовку к сертификации. Не на изучении Java, а именно подготовку к сертификации. И как раз сейчас я напишу, как же я готовился с тесту.
Имея опыт подготовки к сертификации и зная, с чем придется столкнуться, я разделил для себя подготовку на 3 части:
- чтение книжки и решение mock задачек
- изучение рекомендаций Oracle
- вольные художества
При подготовке к сертификации по Java 8 основное внимание стоит уделить Stream API и лямбдам. Этого будет много. Так же много будет вопросов про дату, время и связянные с этим вещи. NIO2 тоже будет много. Если вы делаете апгрейд со старой версии Java, то так же будет ряд специфичных вопросов по вещам, которых в этих старых версиях не было. Особенно это касается Java 6 и ранее.
Первая часть достаточно проста. Нам нужно найти книжку, в которой описывается процесс подготовки к сертификации со всеми подробностями. И такая книжка существует. Они есть для разных версий Java и разных уровней сертификации. В моем случае понадобилась книжка «Java OCP 8 Programmer II Study Guide» за авторством Jeanne Boyarsky и Scott Selikoff. В ней очень подробно и хорошо расписан процесс подготовки. Содержимое разбито на части, к каждой из которых прилагаются 10-20 проверочных задачек. Так же на специальном сайте, ссылка на который есть в конце книжки, можно пройти 3 проверочных экзамена.
Моя схема подготовки была следующая. Я прочитал книжку от начала до конца, попутно решая задачки в конце каждой части. После этого прошел 1-й из трех экзаменов, набрав ровно проходной бал 63%. Весьма недовольный результатом прочитал книжку еще раз, сосредоточившись на тех частях, в которых набрал меньше всего баллов. Задачки в конце каждой части я также прорешал еще раз. Второй экзамен был получше, по-моему что-то около 70%. После этого я перешел ко второй части подготовки.
Заходим на страничку выбранного экзамена.
Там заходим во вкладку Exam Topics и видим длинный список того, что будет спрашиваться на экзамене. Берем каждый пункт и тщательно препарируем. После прочтения и осознания этого списка вы должны познать дао быть в курсе почти любой каверзы со стороны разработчиков.
Вторая часть плавно перетекает в третью. Вооружившись знанием из книжки и знанием того, что будут спрашивать, пробуем писать небольшие кусочки кода по списку. В ходе этого процесса я открыл для себя пяток интересных вещей, две из которых встретились мне на экзамене. Т.е. о них нигде до этого напрямую не было упомянуто. Вдоволь наигравшись с написанием кода, я прошел третий экзамен и получил что-то около 75%. Следует заметить, что проверочные вопросы обычно оказываются сложнее реальных. Поэтому я счел результат удовлетворительным и отправился записывается на экзамен.
Регистрация на сертификацию
Как и прежде, Oracle сотрудничает с сертификационными центрами, которые делают за них всю грязную работу по организации теста. Решив не искать добра от добра, я отправился на сайт того центра, где получал первый сертификат. Если вы там не были, нужно будет зарегистрироваться. После чего, скорее всего, нужно будет заполнить профиль. Я это делал 4 года назад, поэтому подробностей не помню. Но с профилем нужно быть аккуратнее. Когда я его создавал, я находился в Росии, и указал имя и фамилию в первой же пришедшей в голову транслитерации. Так как при первой сертификации я предъявлял российский паспорт, особых вопросов это не вызвало. Зайдя в профиль в этот раз, я обнаружил, что данные не совпадают с данными в моем загранпаспорте, которым я пользуюсь ввиду нахождения в другой стране. Чтобы не поиметь проблем в день сертификации, я решил обновить данные. Для этого пришлось пообщаться с техподдержкой, выслать им скан паспорта и совершить еще ряд телодвижений. Заняло это все несколько дней. Так что лучше будьте сразу внимательнее к деталям.
После заполнения профиля можно собственно перейти к назначению даты и места теста. Ищем список авторизованных центров в вашем городе и выбираем понравившийся. К выбору стоит подойти вдумчиво, может даже съездить посмотреть. В каких-то центрах может быть холодно, или жарко, или шумно, или людно, или все что угодно. В моем случае в городе всего один центр, а ехать за 70 км в другой город мне было лениво.
Выбираем доступные дату и время и переходим к оплате. На официальном сайте Oracle стоимость экзамена указана как 245$, но на самом деле цена может немного отличаться от страны к стране. В моем случае она составила 250 евро.
После оплаты должна будет прийти кучка писем, сообщающих разную информацию. Ничего особо ценного я там не нашел. Можно выдохнуть и расслабиться, или продолжить подготовку.
Прохождение теста
В назначенный день отправляемся в центр сдачи. Лучше прийти заранее, так как надо будет заполнить ряд документов и сдать вещи. В моем случае вебкамера почему-то отказывалась распознавать мое лицо. Минут 15 ушло только на то, чтобы сделать фото. На экзамен нельзя брать ничего, от слова совсем. Все, что будет при вас обнаружено, может быть использовано против вас. Мне везло оба раза, что я оказывался в помещении один и мне никто не мешал. Но в принципе у вас могут быть соседи, которые тоже что-то будут сдавать.
На тест отводится около 2 часов, в зависимости от варианта экзамена. Обычно удается управиться быстрее. Все вопросы в тесте с множественным выбором. Если ответов несколько, то говорится, сколько именно. В ходе теста вопросы можно пропускать и отвечать позже. Можно сразу вычеркивать неправильные ответы, чтобы потом было проще выбирать. Если совсем не знаете ответ — выберите хоть что-то. Шансы угадать не такие и маленькие. После того, как все вопросы отвечены, завершаем тест. Раньше сразу показывался результат, теперь надо подождать. Забираем свои вещи и уходим. Если тест сдать не получится, за новую попытку надо будет заплатить полную сумму.
По приходу домой меня уже ждало письмо, в котором сообщалось, что я прошел тест и набрал 86%. Не так и плохо, учитывая то, что 4 года назад я набрал 80% и в общем-то не являюсь большим специалистом по Java, тем более по 8-й части, так как пишу под Android. Проходной балл, как я уже упоминал, 63%. Так же в письме сообщалось, что сертификат будет готов через несколько дней. И действительно, через несколько дней в личной кабинете на сайте Orcale появился новый сертификат.
Так же к сертификату прилагает значок (badge) на каком-то стороннем сайте. Выглядит так. При желании можно заказать себе бумажную копию, что я и сделал. Выглядит точно так же. Пришла по почте в течении 2-3 недель.
Через какое-то время пришло письмо, предлагающее получить бесплатно фуболку Java. Думаю, внимательные читатели уже заметили ее на предыдущих скриншотах. Кто же откажется от халявной футболки? Прислали тоже через 2-3 недели.
Итоги
На этом процесс сертификации можно считать завершенным. Подведем краткие итоги того, что нам понадобится и что мы получим.
Понадобится:
- какой-нибудь предшествующий сертифкат по Java от Oracle
- книжка для подготовки
- время для подготовки
- около 250$ за сдачу теста
- время для сдачи теста
- много терпения, чтобы почувствовать себя компилятором :)
Получим:
- цифровой сертификат в личном кабинете
- бумажный сертификат
- цифровой значок
- футболку (спешите, предложение ограничено)
- сакральное знание о Java SE 8
Всем, кто решится на это мероприятие, желаю терпения и удачи.
Автор: nobodyhave