Oracle Certified Associate и Oracle Certified Professional. Общее впечатление и нюансы подготовки
Привет, Хабр!
Сегодня я хочу рассказать вам о получении сертификатов Oracle Certified Associate и Oracle Certified Professional. Меня зовут Маша, я работаю в КРОК.
Некоторые уверены, что для найма на приличную работу сертификат крайне желателен. Вообще, в спорах о полезности профессиональной сертификации (да и ее необходимости в принципе) среди разработчиков довольно часто ломаются копья. Другие говорят, что “бумажки” не играют особой роли, даже диплом о высшем образовании может не потребоваться, оценивать будут исключительно навыки.
Или, наоборот, среагировать на наличие сертификата, устроить техническое собеседование с разработчиком, который, правда, быстро поймет, что кандидат вообще зашел случайно, и начнет подозревать, что кроме сдачи сертификата он ничего не изучал и не использовал в работе. Бывают случаи (вероятно, если процесс собеседования не очень отлажен), когда HR может отсеять человека без сертификата, хотя такой человек на самом деле более чем справился бы с работой.
Как для портфолио, так и для себя лично. Как бы то ни было, есть люди, которым сертификаты нужны. В мировой практике наличие этих сертификатов является подтверждением определенного уровня квалификации java-разработчика, поэтому многие эту процедуру проходят.
Под катом я поделюсь впечатлениями от сертификации Oracle по Java: Oracle Certified Associate (1Z0-808) и Oracle Certified Professional (1Z0-809).
OCA
Немного предыстории. Раньше подобной сертификацией джавистов занималась компания SUN Microsystems, которую в 2009 году купил Oracle. Тестированием на проверку уровня знаний и выдачей сертификатов занимаются две ключевые организации — Virtual University Enterprise (VUE) и Prometric. Я работаю в иркутском центре разработки КРОК, поэтому экзамен сдавала в иркутском сертифицированном центре VUE. Приятно, что обучение и сертификацию с целью профессионального развития у нас можно проходить за счет компании. Более того, сертификацией я смогла не только квалифицировать свой уровень как разработчика, в КРОКе это еще мощный фактор для карьерного роста. Поскольку для компании это тоже бонус – дополнительное преимущество в общем количестве сертифицированных сотрудников на квадратный метр. Говорят, многие заказчики этот факт считают серьезным конкурентным преимуществом.
OCA (Oracle Certified Associate) — это начальная ступень сертификации Java-разработчика. Теперь по сути. Книга на английском, в русском переводе я ее не встречала. Есть специальная книжка для подготовки к OCA, которая написана вполне себе понятным языком, это по силам освоить даже человеку, у которого довольно маленький опыт работы с ООП (любым языком программирования). Но, ещё раз — язык и вправду простой, особых сложностей не будет.
Никакое издание не застраховано от опечаток, а по указанной ссылке отмечено, где именно в книге ошибка или опечатка, и как должно быть на самом деле. Насколько бы свежа ни была редакция книги, по которой вы готовитесь, не лишним будет держать под рукой эту ссылку.
И в комментарии к правильному ответу все указывало на В… Когда я вспомнила про список опечаток, нашла там этот момент, и все сразу встало на свои места. Помню, долго я просидела над одним из тестовых вопросов, никак не могла понять, почему по всему выходит, что правильный ответ B, а в списке ответов помечен D.
В идеале раза два. Внимательно прорешать тесты из книги — это уже половина успеха. Не для того, чтобы заучить сами вопросы, а для того, чтобы убедиться, что вы поняли и прочувствовали правильно решение ситуации. Или хотя бы на второй раз пройтись по тем вопросам, в которых сначала допустили ошибку. Впрочем, мои опытные в программировании друзья, которым пришлось с высоты своих позиций сдавать OCA, применяли другую стратегию: после прочтения второй главы они прорешивали тесты из первой, после прочтения третьей — из второй и так далее по индукции.
Тем не менее, быть внимательным и читать каждое слово вопроса на экзамене крайне важно. Вопросы, которые вы будете прорешивать, могут оказаться очень похожими на те, что будут на тестах. Радуешься, по памяти отвечаешь, внимательно не вчитываешься. Бывало, прорешаешь дома тесты на второй раз, какой-то вопрос плотно осядет в памяти, приходишь на экзамен — а там такой же вопрос! А потом оказывается, что уровень доступа метода отличался, а ты это упустил из виду по причине излишней уверенности в себе…
Если у вас за плечами есть опыт разработки, сложным экзамен не покажется. Итак, OCA оценивает знание фундаментальных основ Java Core. Да-да, надо знать и помнить все эти милые мелочи, которые в обычной жизни за вас делает современная IDE. Считаю важным отметить, для OCA надо уметь компилировать в уме. То есть правила именования переменных, видеть недостижимые блоки кода, излишне обрабатываемые исключения, необработанные и неперброшенные исключения, корректное и некорректное помещение переменных в объекты и многое подобное.
Пример вопроса из книги
(Choose all that
apply)
byte x = 5;
byte y = 10;
_____ z = x + y;
A. What data type (or types) will allow the following code snippet to compile? long
C. int
B. double
E. boolean
D. byte
short
F.
Но с другой стороны, понимание, как устроена его логика, способность сходу понять ошибку в коде: эти навыки не мешают, а только помогают в повседневной работе. Кому-то может показаться нудным, что на экзамене придется изображать из себя компилятор. OCA — своего рода тренировка, прокачка навыка легко читать java-код, не отвлекаясь на непонимание фундамента этого кода.
Забегая вперед, таких вопросов будет больше в OCP. Могут встречаться вопросы, для которых надо помнить существующие методы, их поведение и сигнатуры. Тем не менее, в некоторых вопросах OCA вам, возможно, придется вспомнить методы коллекций и классов работы со строками.
Пример хоть и из OCP, но мой любимый, потому что уж больно показательный
map.add(«pi», 3. Which of the answer choices are valid given the following declaration?
Map<String, Double> map = new HashMap<>();
A. map.add(«e», 2L);
C. 14159);
B. 0));
D. map.add(«log(1)», new Double(0. 4));
E. map.add('x', new Double(123. None of the above
Бесспорно, мне это помогло на экзамене. Я, будучи перфекционисткой, пыталась заучивать сигнатуры методов, которые мне встречались в вопросах при подготовке. И действительно, их опыта и интуиции как правило хватило для того, чтобы набрать не менее 65% правильных ответов на экзамене – а это проходной балл как для OCA, так и для OCP. Тем не менее, общаясь с коллегами, я поняла, что многие ребята относятся к этому проще: читают книгу и внимательно прорешивают тесты, но сигнатуры не зубрят.
Остальное — за вами. В центре сертификации вам дадут только маркер и ламинированную картонку.
У вас будет 2,5 часа чтобы справиться с 70 вопросами. Итог по OCA — бдите. Если прорешаете все раньше времени, потратьте еще несколько минут и просмотрите ответы повторно. Как бы вы ни были прекрасно подготовлены, будьте внимательны к мелочам. Я помечаю те, в которых не полностью уверена, и первым делом вернуться стоит к ним. На экзамене есть механизм, позволяющий отметить вопрос, называется «Mark». Кстати, там же есть возможность помечать ответы, которые точно считаете неверными: для этого используйте правую кнопку мыши.
На электронную почту мой результат пришел только через несколько дней. Насчет результатов. Результат может появиться сначала там, а уже через какое-то время прийти в виде письма. Если не хотите ждать столько — проверяйте время от времени свой аккаунт в Oracle.
Что потом
В будущем такого идентификатора будет достаточно, чтобы подтвердить, что сертификация была пройдена. Если это была первая сертификация в жизни, вам присвоят два идентификатора – от VUE и от Oracle – первый позволит аккумулировать данные по всем сертификациям, а второй — в рамках вендора. Постарайтесь его запомнить и сообщать тем, кто вас будет регистрировать на следующие экзамены.
Те знания, которые вы получили при подготовке к OCA, понадобятся и на OCP, поэтому проще начать подготовку к OCP сразу по свежей памяти. Если Вы считаете, что OCA — это лишь начало вашей Java сертификационной истории, и намерены покорять OCP, то я бы не советовала делать между сдачами тестов больших перерывов.
OCP
OCP (Oracle Certified Professional) — вторая ступень сертификации Java-разработчика. Те же 2,5 часа на экзамене, тот же порог сдачи 65% правильно отвеченных вопросов, а количество вопросов увеличилось до 85.
Их мало, но бдительность все равно не теряем.
В целом же, OCP — это проверка теоретических знаний… сигнатур методов и синтаксических конструкций! Компиляционные ловушки тоже есть, вроде некорректного типа возвращаемого объекта и отсутствующих скобок.
Но на этот раз ошибка, если она есть, чаще всего будет на значительно более высоком уровне абстракции. Да, снова на большинстве вопросов сидим и компилируем себе потихоньку в уме. Возможно, в этот раз запускать какие-то циклы с подсчетом переменных в уме не придется (или искать ошибки в названиях самих переменных). То есть не на уровне синтаксических конструкций, а на уровне работы с классами. Но вот помнить правильное применение конкретных конструкций и методов надо.
Делюсь ими с вами (первая — целиком из книги). Для OCP я заучила две полезные таблицы (и не зря, на экзамене пригодились обе).
Функциональные интерфейсы
Таблица 1.
Перечень ограничений inner и nested классов
Таблица 2.
Помогает метод с заучиванием именно отрывков информации. Ясное дело, выучила я не только их — из-за количества стикеров по всей квартире я на какое-то время забыла, какие в комнате обои (и есть ли они). Само собой, самые запомнившиеся стикеры — это висевшие в ванной.
Ну и телефона, конечно. Если вам мало и этого, можно переключиться совсем в nightmare (как я) и разместить материалы из OCP на обоях домашнего и рабочего компов. И при каждом входящем звонке от нее я повторяла в памяти, что у метода commit() класса Connection нет перегруженных версий (аналогия, конечно же, относится к подруге: она не из тех, кто грузит длинной болтовней). Подругу в списке телефонных контактов я переименовала в commit().
Но это ни в коем случае не исключает того, что для успешной сдачи экзаменов необходимо быть хорошим программистом с глубоким понимаем языка и умением максимально использовать возможности свежей версии Java. В этой статье я делаю большой акцент на том, что нужно зубрить. Просто большая часть из тех, кто доходит до OCP, уже являются такими специалистами, а вот учить наизусть языковые конструкции в работе как правило не пригождается.
Напоследок парочка хинтов.
На OCP ни мне, ни кому-либо из моих знакомых не попался RandomAccessFile. 1.
Судя по слухам, сериализацию исключили из OCP. 2. Но — I want to believe. Доказательств мне найти не удалось.
Надеюсь, получилось интересно и полезно. В общем, как-то так. Если есть вопросы, пишите в комментариях.