О сертификациях

К сертификациям в разработке отношение сложное. Как 15 лет назад мы с недоумением смотрели на коллегу, который сдал пару Java-экзаменов, так и сейчас в наших краях оно вроде как и бесполезно, да ещё и дорого, три экзамена — топовый смартфон, ага.
Что любопытно, на Западе и на Востоке всё диаметрально иначе. Если речь идёт о вендорных дипломах (Oracle, Microsoft, Cisco, Amazon и т.д.), статистически вы заметно повышаете свой доход. А уж админы и NOC’и без сертификаций… скажем, приветствуются далеко не везде. На деле у них чуть ли не на порядок (относительно разработки) всё это развитее, особенно если с Cisco работать.

Итак, вы простой советский разработчик в размышлениях «а нафига». Вот мои ответы мне на эти «нафига». Собирал и осмыслял много лет, пока не собрал критическую массу, после чего сдвинул жопу с тёплого стула. Внимайте.
Во-первых, мотивация выучить то, до чего иначе руки не дотягиваются. Девять из десяти разработчиков знают области разработки на уровне «знаю только то, что применяю в своей работе на ПупкинСофт Ltd». Мне это стыдно и скучно, но всё равно не хватает пинка, чтобы вернуться к азам. Провалил экзамен — выбросил в окно 7 ящиков шотландского эля — жалко, блин. Лучше выучу.
Во-вторых, в процессе подготовки узнаёшь много интересного и немало полезного. У вас не получится тупо зазубрить ответы на билеты, т.к. билеты не публикуются. Приходится зубрить темы целиком, что приводит к просветлению головы и автоматическому повышению квалификации. Заодно это хорошее лекарство от избыточной самоуверенности, спеси и зазнайства. До подготовки ты крутой и всё знаешь, а тут вдруг того не знаешь, этого, сего и ещё про вон ту конструкцию даже не догадывался. Поневоле задумаешься о том, сколько раз за годы на основе такого невежества озвучивал совершенно идиотские суждения.
В-третьих, лидам полезно самим пройти распространённые сертификации из их области, чтобы объективнее оценивать наличие сертификатов в резюме. Как минимум, сможете сократить или упростить собеседования, что на потоке уже хорошо.
В-четвёртых, весь мой опыт говорит следующее — вы никогда не угадаете, какая бумажка вам поможет в будущем, но совершенно точно ни одна позитивная бумажка о ваших достижениях не будет лишней (ну, помимо диплома о первом месте на поселковой олимпиаде по информатике). Выстрелить в вашу пользу может в совершенно случайный момент. Да даже тем, что у рекрутера глаз зацепился и ваше резюме легло на верх стопки — уже это может сдвинуть жизнь на 90 градусов.
В-пятых, сертификаты действительно показывают профессиональный уровень их владельца. Да, там много наивных вопросов. Да, задачи бывают идиотскими. Фигня в том, что многие разработчики не могут ответить на эти вопросы и не могут решить эти задачи. Люди, может, и хорошие, но на Python-собеседовании на 10 минут уходят в себя, не в силах вспомнить, есть ли в языке тернарный оператор. И если я увижу в резюме хотя бы entry level сертификат (обычно они про синтаксис), я буду знать — этот боец знает, где какой оператор.
В-шестых, однажды вы можете мигрировать. Я минут тридцать ради fact checking листал job-сайты США и всё так же вижу много вакансий, в которых так или иначе, но варианты следующего: «Must possess at minimum an Oracle Certified Associate Java SE x Programmer certification or must obtain an Oracle Certified Associate Java SE x Programmer certification within 120 days after hire». Да, обычно это крупные бюрократизированные конторы. Но вы уверены, что уже через год от переезда нанявший вас стартап не развалится и вы не будете лихорадочно искать любое место?
В-седьмых, сертификации и сертификаты — объективная часть мира разработки. Никого не волнует ваше мнение о том, нужны ли они, полезны ли они, что они показывают и т.п. Они есть. Через них прошли миллионы разработчиков. Они влияют на оклады, на контракты, на собеседования. Вы либо принимаете правила игры и хоть ознакомительно осваиваете этот угол ринга, либо бестолково бунтуете, отрицая, либо равнодушно игнорируете, пока не столкнётесь. Как по мне, мудрее ознакомиться до того, как возникнет нужда.
В-восьмых, наконец, это fun. Не, правда. Годный вариант отойти в сторону от рутины и вспомнить, что такое учебники, билеты, экзамены, волнение «сдал? завалил?» Мне понравилось. Теперь точно буду в год хоть по два сертификата получать, чтобы развлечься.

Итого… Ну, понятно, что я в основном вижу лишь плюсы. Правда, важно помнить главное: сертификация — она для вас, она в ваших интересах, она решает ваши задачи и проблемы. Вас не будут носить на руках на следующий же день от сдачи, не будут на собеседованиях чествовать красной дорожкой. Это стратегический вклад кирпичика в вашу стену специалиста. Без остальных кирпичиков (интеллект, дисциплина, множество знаний из разных областей, трудолюбие и т.д.) не стоит ничего.
PS. Подчеркну: речь не про Курсеры и Брейнбенчи, речь про те экзамены, которые вы сдаёте производителям софта / железа, получая сертификат соответствия знаний стандартам производителя.

1Z0-808 (Java SE 8 Programmer I)

1Z0-808 (Java SE 8 Programmer I) — сертификация начального уровня от Oracle, без которой не допустят до остальной линейки. Хоть весной уже и Java 10 выйдет, тесты пока не обновляют, у Oracle с этим туго. Потом можно будет сдать отдельный update.
70 (не 77, как иногда пишут) рандомных вопросов, 150 минут, проходные 65%. Темы про основы самого языка без вопросов о множестве библиотек (это счастье на следующих уровнях), достаточно знать лишь десятка два распространённых в быту классов. Во время сдачи никаких гаджетов, интернета, IDE, компилятора и т.п. Вас даже рукава попросят закатать, проверяя отсутствие шпаргалок. Пользоваться только головой.
Хоть уровень и junior, без подготовки могут быть сюрпризы. Java местами не самый очевидный язык, есть как формально верные, но неиспользуемые части (про них спросят), так и то, что понять не получается, надо просто запомнить в идеале именно так, как в JLS сказано.

Литературная подготовка включала в себя только чтение OCA Java SE 8 Programmer I Certification Guide — чтение унылое, скучное, но обязательное. Книга хороша тем, что настраивает голову на нужный лад. Вы многократно повторяете материал и знакомитесь с примерами вопросов для того, чтобы привыкнуть (это важно) к характеру сертификации. С этим управился за 18 дней.
Также купил mock exams у Enthuware. 600+ вопросов, потому развлечение эдак на 10..12 часов. Подспорье крутое, тут претензий нет, очень советую не пожалеть почти 600 рублей (ага, по рублю за задачку).
Во-первых, повторение материала, но с другого угла. Некоторые темы после марафона подготовки у меня от зубов отлетают — на задачу не более 15 секунд тратил.
Во-вторых, некоторые задачи там специфические. Их не должно быть на экзамене, т.к. нет в списке разделов от Oracle, но людям попадались.
В-третьих, смирение. Невозможно не впасть в оное после десятков задач, «сложность» которых сугубо механическая и на внимательность. Плохое форматирование, нетрадиционный порядок кода, запутанность имён, череда арифметики в циклах. Легко можно выбрать неверный ответ только потому, что в варианте не заметили замены двойной кавычки на одинарную.
В-четвёртых, уровень. Задачи качественно и количественно сложнее, чем на сертификации — часть времени и сил потратите на то, чего не будет в бою. Но если даже с учётом этого уверенно во всех тестах набрали проходной процент, значит, можно двигать на настоящую сдачу.

Проходил 15 марта в Softline. Сдал успешно на 95% за полтора часа. Боевой экзамен оказался настолько лёгким после подготовки, что я каждый вопрос раз пять вычитывал, выискивая хитрые подвохи. Но нет, подвохов почти и не было. Те три вопроса, в которых ошибся, сугубо из-за лени — влом было зазубривать прям вот до пуговки Time API, за что и поплатился.

22 дня на подготовку, в среднем полтора часа в сутки. 700 страниц учебника, около 750 тестовых задач, около 100 страниц дополнительного материала (JLS, статьи, Javadoc к JDK), почти 14000 рублей.