Причины для прохождения PHP Zend сертифицирования могут быть разными: кто-то хочет проверить свои знания, кому-то хочется выделится из огромного числа php разработчиков, а у кого-то это требование на работе. Месяц назад мне удалось успешно пройти сертифицирование, и в этой статье я расскажу как выглядит этот экзамен сегодня, где искать материалы для подготовки, а так же солью немного инфы о реальных вопросах с экзамена.
Организационная часть
Для того чтобы пройти сертифицирование нужно сначала записаться, а затем явится в учебный центр. Найти ближайший центр можно здесь. Ваучер на прохождение сертификации можно приобрести онлайн или в самом центре. Ваучер стоит $195, плюс вам придется заплатить за услуги самого центра ($40 в моем случае).
Как проходит экзамен.
Экзамен представляет собой тест из 70 вопросов. На ответы есть 90 минут, которых вполне достаточно. У меня после ответа на все вопросы осталось еще 15 минут на ревью тех вопросов, в которых я сомневался. Во время экзамена вопросы можно пропускать и помечать звездочками, чтобы вернуться к ним позже.
Вопросы бывают трех типов
- С одним правильным вариантом ответа
- С несколькими правильными вариантами (кол-во указано)
- Свободный текст: имя функции, константы или переменной, либо результат работы скрипта.
Известно, что все вопросы обладают определенным весом. К сожалению мы можем только догадываться о его значении для каждого конкретного вопроса. Штрафа за неправильные ответы нет.
По окончании теста вы увидите уведомление о результате. По разным данным для успеха необходимо ответить на 60-75% вопросов успешно. К сожалению Zend не уведомляет о неверных ответах, выдавая лишь рекомендации в случае фейла.
В течении 48 часов после успешного прохождения экзамена, ваше имя будет добавлено на Zend Yellow Pages, вот так например. Кроме того Zend вышлет на вашу реальную почту бумажный диплом, который вы получите в течении 4-10 недель.
Экзаменационные вопросы.
На сегодняшний день тестирование проходит по PHP версии 5.5.
Вопросы покрывают 10 тем:
- Основы PHP
- Работа с данными в PHP
- Строки
- Массивы
- Ввод и вывод данных
- Функции
- ООП
- Базы данных
- Безопасность
- Web features
Более подробный список здесь.
Многие из вопросов комбинированные, т.е охватывают сразу несколько тем. В целом сертифицирование проверяет не столько знание php, сколько ваши способности, как разработчика и инженера. От вас потребуется логическое
Далее приведу список вопросов, которые запомнились мне на экзамене.
- Вопрос про значение константы ENT_COMPAT в функции htmlentities
- Вопрос про назначение функции substr_compare
- В тесте было несколько вопросов по экранированию строк, вида: достаточно ли применить функцию htmlentities и htmlspecialchars для безопасного добавления в базу данных, которые ввел пользователь.
- Вопрос про корректное именование переменных. Мне попался пример с переменной вида $_123.
- Был вот примерно такой код:
function foo ($a = 10, $b){ if ($a) { return $b/10; } } echo foo(0);
В вариантах ответа (кроме нескольких числовых значений) были warning и fatal error
- В нескольких вопросах встречались блоки try/catch. (помните multi catch?)
- Несколько однотипных вопросов на знание DOM методов
- Вопрос про назначение магических методов в php с несколькими правильными вариантами
- В нескольких вопросах встречалась функция dl()
- Кто еще использует потоки в PHP? на сертификации мне попалось не меньше 5 вопросов, связанных с потоками
- Вопрос про конфигурационные опции php.ini для управления ресурсами, выделяемыми для PHP
- Как сделать так, чтобы сессия завершилась автоматически в определенное время?
- Помните, что кнопку Submit в форме можно задать картинкой? А помните где в $_POST хранятся координаты точки, по которой кликнул пользователь? Мне попался такой вопрос.
- Вопрос про наследование интерфейсов с конкретным примером кода (у меня код был не валидным)
- Интересный вопрос с примером кода, где присутствовала функция с именем strlen, находящаяся в определенном неймспейсе. Я посчитал код невалидным, хотя на самом деле это не так
- Вопрос про назначение неймспейсов
- Был весьма сложный для понимания код, с замыканиями, возвращаемыми статическими и не статическими методами класса
- Как корректно переопределить final class? (в вопросе подвох)
- Вопрос про корректную защиту текстового файла с данными пользователей, находящегося на сервере. Предполагал несколько правильных вариантов ответа.
- Интересный вопрос, примерно такой: как наиболее корректно предоставить пользователю доступ к медиа файлу (положить его в public директорию и предоставить ссылку, выслать в http response, сохранить на стороннем public сервере, или вобще не использовать PHP для таких задач)
Материалы для подготовки.
В интернете полно информации для подготовки к сертифицированию. php.net вам не осилить (да и не нужно), но во время подготовки придется обращаться к нему не раз.
Test Prep for the PHP Certification Exam
shop.zend.com/en/php5-certification-training.html
Стоимость $1000.
В стоимость входит ваучер на прохождение экзамена ($195).
В документе вы найдете подробную информацию по всем темам экзамена и множество тестовых заданий. Одного этого документа вполне достаточно для подготовки к экзамену, но в силу стоимости, я не использовал этот документ при подготовке к экзамену. Легко можно найти устаревшие версии этого документа.
Zend PHP Certification Study Guide
shop.zend.com/en/php-certification/zend-php-certification-guide-pdf.html
Стоимость $19.95.
Документ содержит в себе краткую информацию по всем темам тестирования и тестовые задания с ответами. Я бы рекомендовал начать подготовку с этого гайда, т.к он дает хорошее представление об уровне задач в самом тестировании, и об объеме знаний, необходимых для успешного прохождения тестирования. Несколько вопросов из гайда попались мне на тестировании практически в неизменном виде. Кроме того в тестировании есть вопросы, вскользь упомянутые в гайде.
Приобрести гайд можно по ссылке выше. Скорее всего его можно найти и на торрентах, но будьте осторожны с версией PHP.
Неофициальные материалы.
edward-designer.com/web/passing-php-5-3-certification-exam/ в блоге подробно охвачены все темы из экзамена.
zend-php.appspot.com/questions_list набор тестов, иногда очень близких к реальным
Кроме того при подготовке я использовал ios приложение PhpRiot. Стоимость полного набора вопросов около $7. В приложении есть вопросы, очень похожие на те, что были на экзамене. Есть версия приложения в виде плагина для Chrome.
В интернете немало других материалов, но почти все сильно устарело. В PHP было много нововведений за последние 5 лет, и авторы теста сделали на этом акцент.
Желаю вам удачи в прохождении сертифицирования!
Автор: mr_MAIL