Оговорюсь, заголовок кликбейтный, и примерно последние 2 года своей трудовой деятельности в рамках своей компании я считаюсь фуллстек разработчиком, но все же моя база это фронтенд и специального образования я не имею.
Я хочу поделится тем, каким образом я подготовился к сертификации. Какого рода вопросы были. Насколько сложно это было для человека, который о СУБД не знал ничего и пользовался БД на уровне элементарных запросов, а так же не большая часть моих размышлений на тему того на сколько это вообще нужно.
Собственно проблема
У моего технического директора возникла замечательная по своей задумке идея - создать "кризисную" команду. Если описывать общими словами - это команда разработчиков, каждый член которой может закрывать широкий спектр задач разработки в используемом в нашей компании стеке - k8s, docker, vue, golang. Может общаться с заказчиком, собирать требования, и далее превращать их в подобие аналитики. А самое главное в сжатые сроки, возможно с переработками, решать критические задачи, но в спокойное время будет иметь возможность взять отдых. Что бы в нее попасть, нужно пройти ряд испытаний, первым из которых было наличие сертификата PostgresPro DBA-1, при чем в очень сжатые сроки примерно 1.5 месяца.
Стадии принятия
Сначала я вообще сразу хотел слиться, мне казалось это все огромной проблемой, начиная с логистики (живу я не в Москве), заканчивая самой процедурой сертификации. В конце концов я собрался, и принялся за обучение.
Что вас ожидает
Формат мероприятия:
50 вопросов с множественным выбором, а так-же вопросы в которых нужно напечатать ответ, на все задание отводится 75 минут. Можно пользоваться материалами курса и документацией.
Я сдавал программу DBA-1 (13), не так давно PostgresPro обновил материалы обучения и сами вопросы, теперь это DBA-1 (16), и сделали обзорной тему, с которой мне было тяжелее всего - "Управление доступом".
На самой сертификации, я выбрал следующую тактику - буду скипать вопросы, на которые не знаю ответа, отвечу на легкие, а затем вернусь, и пролистывая 20-й вопрос по счету, меня начала одолевать паника. У меня сразу в голове всплыл мем, и мне кажется он точно отражает, что вас ждет.
1 попытка
Я готовился достаточно усердно, на протяжении месяца, я уделял 1,5-2 часа просмотру лекций, решению приложенных к ним задач, а так-же дополнительно придумывал какие-то задачи, и пытался решить их.
Приехал в Москву, ответил на вопросы, и в предвкушении победы, ждал 14:00 следующего дня (результат сообщают на следующий день). Получаю результат.
Напоминаю, проходной бал 75%. Тут мои руки опустились, и я забил на эту затею. В результате из 10 кандидатов в команду попал только 1 сотрудник.
2 попытка
Спустя 2 месяца, я все таки решился попытать свои силы снова.
Имея уже понимание о своих слабых местах, начал подготовку делая больший упор именно на эти темы.
Снова приехал в Москву. Уже более уверенный в своих силах, начал читать вопросы. Я ожидал увидеть вопросы не сильно отличающиеся от тех, что были первой сдаче, но как бы не так, они сильно изменились, их форма и содержание стали еще сложнее, паника снова накрыла меня. Это я потом узнал от организаторов, что при последующих сдачах форматы меняются, далее прямая цитата "вы же вопросы с первой сдачи уже отработали, конечно они не будут повторяться" и "не расстраивайтесь, по статистике DBA - 1 сдают с 3-го раза". Уверенный в провале полетел домой.
На следующий день пришел результат.
Как бы я готовился сейчас
"На халяву" сдать не получится, это нужно принять.
Я бы начал подготовку за 2-3 месяца до сертификации, и в день просматривал одну лекцию, и более внимательно относился к практическим заданиям. В них рассматривают только так называемый happy path, рассмотрите edge кейсы, сломайте и почините что-нибудь.
Не игнорируйте приложенные в материалах ссылки на документации, и ссылки внутри них, потому что мне попадались вопросы, ответы на которых были в документации, а не в материалах. Вам не столько важно все заучивать, скорее вам нужно знать, и оперативно суметь найти информацию в документации.
Не гуглите, не пользуйтесь GPT и прочими привычными источниками, ответы на любые вопросы ищите только в документации PostgresPro.
Вы можете открыть документацию 2-мя способами.
Открыть сам сайт с документацией
Скачать архив на устройство
Первый вариант сразу отбрасываем, при просмотре PDF в браузере, по факту рендерится только отображаемые страницы, при попытке что-то найти через стандартный поиск по тексту ничего не выйдет.
Лучше сразу скачивайте архив, и поиск будет работать адекватно. То-же самое я сделал и на сертификации, какого-то запрета явного не было.
Вам сто раз скажут внимательно вчитывайтесь в вопросы, это действительно так. При первом прочтении вопроса, появляется в голове куча разных "а если так", "а если такая настройка включена", "а если такой-то параметр выставлен", забудьте про какие либо "если", выбирайте самый простой путь, не нужно додумывать.
Многие вопросы составлены с подковыркой, главное не попасться. Например, в вопросе был сделан огромный select из pg_class + какой-то join из таблицы pg_database и тд. выведен результат этого запроса, а сам вопрос звучал так. С какими БД был инициализирован кластер? Если вы уже посмотрели курс, или знаете postgres, то понимаете, что этот select нужен был, только что бы вас запутать.
А нужно ли?
Нужен или не нужен ему сертификат, каждый должен решить сам. Мне по большому счету, он нужен был для попадания в команду, кому-то нужен так как при трудоустройстве его просит работодатель. Сдавать только ради его наличия, я не вижу особого смысла. Если вы действительно мотивированы узнать что-то, я думаю вы сами будете все добросовестно изучать.
Для себя, я вынес огромную пользу, вообще я считаю, что эта сертификация не про Postgres как инструмент, а скорее про систему. Я узнал много архитектурных решений, которые принимались в СУБД, о которых не имел понятия, как обеспечивается транзакционость, что такое WAL - журналы, как хранятся данные, как система взаимодействует с ОС и т.д.
Надеюсь, моя статья поможет кому-то получить желанный сертификат.