Обложка: Подготовка к Python сертификации PCAP

Подготовка к Python сертификации PCAP

В этой статье я расскажу, как проходит мой путь по подготовке к сертификации PCAP. Поделюсь своими мыслями на тему того, кому это может быть полезно. Каково проходить сертификацию спустя 3 года разработки на языке. Какие материалы использовать и на что обращать внимание. Я рассчитываю, что этот пост будет предворять статью о том, как я успешно сдал этот тест и что я из него извлёк 🙂

Об экзамене

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

Для кого сертификация PCAP

В первую очередь сертификация PCAP необходима для того, чтобы пройти сертификацию PCPP1 и PCPP2 профессионального уровней. Но это понятно: цель ради цели.

Вторая причина — это карьерное достижение. Молодой разработчик, приходя на собеседование, смело может заявить, что знает Python. Этот факт могут подтверждать учебные и собственные проекты. Интервьюер также может, задавая вопросы, понять, понимает ли соискатель, чем отличается tuple от list, что такое инстанс класса, как работает наследование или какой тип исключения вернёт int("avada cedavra").

Но всегда есть ненулевая вероятность, что непонимание определённых базовых концепций останется за рамками собеседования. С моей точки зрения, видя соискателя с сертификацией, я бы был более уверен в том, что она знает ответы на вопросы, которые не были поставлены в ходе интервью.

Третья причина — это систематизация. Не каждый начинает работать с Python как с первым языком и не каждый изучает первый язык во всех его нюансах. Сертификация помогает систематизировать знания, которые вы уже имеете, даже если вы не первый год работаете с Python. Язык Python имеет свойство быть крайне дружелюбным к юзеру, и многие вещи разработчики пропускают на автомате, потому что код всегда можно отдебажить методом проб и ошибок, не всегда узнавая, а еще реже запоминая причину этой ошибки.

Как проходила подготовка к сертификации PCAP

Сама сертификация находится на сайте Python Institute. Там можно ознакомиться с темами теста. а также узнать, какие цели он преследует и как можно зарегистрироваться на сдачу. Тест, о котором мы говорим здесь — средний уровень. У него нет входных требований.

Давайте перечислим основные темы и под каждой я прокоментирую, что было не очевидно сходу, на что пришлось потратить время, чтобы наверстать.

Типы данных, переменные, базовые операторы, работа с вводом выводом

С этими вещами, я думаю, все питонисты знакомы. Освежить тут стоит дополнительные аргументы sep и end функции print. А также вспомнить как работает присвоение следующего вида x, y, z = y, z, x.

Булевы значения, условные операторы, циклы, списки, побитовые операции

Здесь однозначно стоит обратить внимание на побитовые операции, если вы не наверняка не знаете поведения выражений по типу 10 << 1, или 3 ^ 4. Стоит вспомнить, что у цикла for и while в Python есть блок else, и для чего его применяют, перейдёт ли в него выполнение если внутри цикла были continue и break.

Функции, кортежи, словари

Здесь не требуется знаний о том, что есть *args, **kwargs при использовании функций, но необходимо отличать позиционные аргументы от доступных по ключу (keyword arguments).

Модули, пакеты и PIP

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

Строки, методы списков и исключения

Здесь нужно обратить внимание на обработку исключений. Стоит знать какие классы являются родительскими по отношению к другим исключениям (то есть представлять дерево исключений Python). Понимать, когда исполняется else, finally, и что except без параметров может быть только последним

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

По моему опыту, это был самый неизведанный блок. Во-первых, instance attributes и class attributes. Во-вторых, как получать доступ к dunder атрибутам внутри и во вне определения класса (атрибуты с двойным подчеркиванием). В-третьих, method resolution order, когда возникают ошибки при множественном наследовании.

Разное

В разное входит многое, что нужно повторить: генераторы как класс и как функция, с какими модификаторами можно открывать файлы (‘w’, ‘r’, ‘a’, etc.), как читать бинарные файлы и писать в буфер, а также работа с datetime и calendar. Также сюда можно отнести closure, функции, возвращаемые из других функций с контекстом.

Выше описал темы и на что обратить внимание. Для ответа на вопросы «Как подготовится?» и «Откуда взять материал?» я могу посоветовать следующее:

  • Во-первых, документация Python (simple, but not easy). Ища страничку по теме в доках Python, можно получить исчерпывающую информацию. Однозначно могу сказать, что про exceptions в документации написано лучше всего.
  • Во-вторых, это платформа edube.org.  На ней вы можете найти курс прямо под эту сертификацию и если вы его успешно завершите, то вам дадут скидку на сдачу экзамена.
  • И в-третьих, это stack overflow (obviously), практически под каждую тему этой сертификации можно найти пару развернутых ответов.

Мои ощущения от подготовки

Я обладаю довольно скромным опытом разработки. Это не десятки лет, но программирую я довольно давно, и моя работа с этим связана непосредственно. С Python я начал работать с 2017 года. В то время для меня стало открытием, насколько гибкий этот язык — и почему-то интуитивно понятный. До этого я глубоко был погружен сначала C/C++ при обучении на ВМК МГУ, а затем в MatLab.

Могу сказать наверняка, что в процессе сертификации я открыл для себя ответы на. многие вопросы повисшие в воздухе. И начал понимать тонкости работы с классами, исключениями и closure.

Рекомендую своим коллегам-питонистам и читателям этой статьи пройти сертификацию.