Обложка: Опыт прохождения сертификации PCAP-31-03

Опыт прохождения сертификации PCAP-31-03

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

PCAP-31-03

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

Сертификация Python Institute не стоит на месте. Было три выпуска сертификации: PCAP-31-01, PCAP-31-02 и PCAP-31-03 (последний является актуальным, и сегодня сдать можно только его). Разница между выпусками в том, каким темам уделяется больше внимания. Я этот момент не учёл и был наказан за безолаберность.

На сайте сертификации указывается, что подготовиться можно с помощью курса Python Essentials на платформе edube.org. Действительно, проходя этот курс, вы затронете все темы, которые могут быть на экзамене. В нём вам дадут попрактиковаться и с тестами на время в формате, как будет на настоящем экзамене.

Но тут кроется подвох. После прохождения курса может показаться, что вопросы на сертификации будут похожи на тестовые. На самом деле, похожи тесты только форматом проведения. А темы в курсе соответствуют скорее PCAP-31-02. Это я обнаружил непосредственно на экзамене.

Как быть?

Во-первых, платформа edube предлагает купить sample test за 59$ по сертификации. Не знаю похож ли он на реальный экзамен. или он тоже похож на тесты из курса. Так что советовать его не буду.

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

И в-третьих, самое важное, прочитайте syllabus действующего сейчас экзамена! Возможно, когда вы будете это читать, в ходу будет уже не PCAP-31-03. Поэтому рекомендую искать syllabus актуального экзамена. На конец 2021 года, по ссылке лежит содержание PCAP-31-02 и PCAP-32-03.

Содержание PCAP-31-03 и действительность

Здесь проверяются темы, которые иной человек бы мог назвать несущественными и не часто используемыми. Но в этом суть сертификации — убедиться в знании разных, случайно взятых из общего количества, сфер. Далее я разберу по блокам, на что стоит обратить внимание на PCAP-31-03, чтобы не потерять баллы из-за неподготовленности.

Блок 1. Модули и пакеты

В этом блоке вас ждут вопросы касаемо встроенной функции dir() и что содержит поле path из модуля sys. Тут стоит вспомнить результаты каких типов данных возвращают вызовы этих объектов. А также узнать, как работают метод hypot() из библиотеки math и, чем различаются floor() и trunc().

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

Блок 2. Исключения

Когда я увидел на PCAP-31-03 задачи этого блока, то понял, что зря избегал обработчики специфичных исключений, и часто ограничивался банальным except без параметров в своё коде.

То, что 1 / 0 вызывает ZeroDivisionError мало, кто не вспомнит, а вот то, что ZeroDivisionError является дочерним классов ArithmeticError или что int("asd") вызывает ничто иное, как ValueError, я полагаю, что помнит не каждый. Обязательно уделите этому внимание, а также тому, что содержит объект класса исключения в поле args, как написать свой дочерний класс исключения и что делает raise, вызванный внутри except блока.

Блок 3. Строки

Здесь стоит уделить внимание первой теме про ASCII, UNICODE и codepoints. Некоторые вопросы по этой теме мне показались неочевидными, и методом отсечения неверных ответов не вышло установить правильные.

Просмотрите методы строк по типу isalpha() — есть те, которые не часто используются, но существуют. Например istitle(), возврающий True, если все слова начинаются с заглавной буквы. Последние две темы в блоке, связанные с sort() / sorted() и index() / find() / rfind(), заслуживают того, чтобы почитать и поэксперементировать.

Блок 4. Объектно-ориентированное программирование

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

Уделите внимание полям класса и полям объекта (class attribute и instance attribute), полю __bases__ у класса. Конечно же, повторите, как работает полиморфизм в Python при переопределении методов и повторите method resolution order. В целом, этот блок мне не показался сильно отличающимся от того, что было в тестах курса.

Блок 5. Разное

В этом блоке много разного. По темам в отдельности скажу, что с list comprehensions и lambda функциями, я не заметил сюрпризов. Здесь, на мой взгляд, им неоткуда взяться. Повторите closures в Python, в особенности, если вы не имели опыта написания декораторов в Python.

Очень интересной темой в этом блоке мне показалась работа с файлами, а именно работа с полем errno, при обработке исключения. Поделюсь здесь некоторыми фактами, которые я обнаружил, когда исследовал этот вопрос.

  1. Список всех errno доступен в документации Python.
  2. Работа с файлами может вызвать исключение IOError, которое после версии 3.3 просто напросто псевдоним OSError (это касается и ряда других исключений). Отсюда следует, что поле errno можно ожидать и у объекта типа IOError.
  3. Все коды errno доступны в исходниках Python, на языке C. Это просто номера ошибок, а не наследники какого-то класса.

Опыт неудачной сдачи PCAP-31-03 и вторая попытка

Напоследок расскажу, как я проходил экзамен. Сертификацию можно сдать у себя дома или в офисе. В комнате, где вы сдаёте тест, не должно быть никого кроме вас, стол чист от любых предметов, кроме компьютера и паспорта. Это проверяется человеком на том конце провода, когда вы осуществляете check-in на экзамен.

Происходит всё просто, но нужно иметь в виду, проверяющий может задавать вам вопросы. И вы должны понимать, что он говорит на английском. После проверки рабочего места, вы начинаете тест, в течение которого, за вами наблюдает проверяющий через камеру и микрофон. Вы можете связаться с ним через чат.

Во время прохождения теста, я обнаружил, что один из вопросов, на который платформа предлагала выбрать 2 правильных варианта из 4х, по факту содержит лишь один правильный ответ. Я заявил об этом проверяющему, и мне предложили сначала перезагрузить компьютер, потом тестовую систему, потом — снова компьютер…

Время теста тикало, но с вопросом ничего не произошло. Плюс ко всему, каждый перезапуск я попадал на нового проверяющего, что также задерживало тест. В итоге, последний проверяющий предложил отозвать мой тест (revoke my test). Мне, в свою очередь, нужно было с этим согласиться или нет. Я уточнил, дадут ли мне вторую попытку, и он сказал, что вероятно, поскольку проблема на их стороне. Затем, проверяющий начал заводить в своей системе технический кейс на мою проблему. И тестовая платформа закрылась без уведомления об успехе с той стороны.

Найдя телефон поддержи Python Institute, я начал звонить на американский номер, чтобы выяснить, всё ли в порядке. Общение с поддержкой в первый раз было крайне удачным. Мы выяснили, что никакого кейса на меня нет, и завели его. Нужно быть готовым, что при звонке вам может не хватить практики английского языка, чтобы понять собеседника и связь может быть крайне шумной.

Через неделю, после нескольких неудачных звонков, мне удалось получить новый ваучер на сдачу PCAP-31-03, и я сдал его на 95%!

Заключение

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

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

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации