Пользователь
0,0
рейтинг
9 июля 2014 в 03:19

Разработка → PHP Zend сертифицирование сегодня

PHP*
image
Причины для прохождения PHP Zend сертифицирования могут быть разными: кто-то хочет проверить свои знания, кому-то хочется выделится из огромного числа php разработчиков, а у кого-то это требование на работе. Месяц назад мне удалось успешно пройти сертифицирование, и в этой статье я расскажу как выглядит этот экзамен сегодня, где искать материалы для подготовки, а так же солью немного инфы о реальных вопросах с экзамена.


Организационная часть


Для того чтобы пройти сертифицирование нужно сначала записаться, а затем явится в учебный центр. Найти ближайший центр можно здесь. Ваучер на прохождение сертификации можно приобрести онлайн или в самом центре. Ваучер стоит $195, плюс вам придется заплатить за услуги самого центра ($40 в моем случае).

Как проходит экзамен.


Экзамен представляет собой тест из 70 вопросов. На ответы есть 90 минут, которых вполне достаточно. У меня после ответа на все вопросы осталось еще 15 минут на ревью тех вопросов, в которых я сомневался. Во время экзамена вопросы можно пропускать и помечать звездочками, чтобы вернуться к ним позже.

Вопросы бывают трех типов
  • С одним правильным вариантом ответа
  • С несколькими правильными вариантами (кол-во указано)
  • Свободный текст: имя функции, константы или переменной, либо результат работы скрипта.


Известно, что все вопросы обладают определенным весом. К сожалению мы можем только догадываться о его значении для каждого конкретного вопроса. Штрафа за неправильные ответы нет.

По окончании теста вы увидите уведомление о результате. По разным данным для успеха необходимо ответить на 60-75% вопросов успешно. К сожалению Zend не уведомляет о неверных ответах, выдавая лишь рекомендации в случае фейла.

В течении 48 часов после успешного прохождения экзамена, ваше имя будет добавлено на Zend Yellow Pages, вот так например. Кроме того Zend вышлет на вашу реальную почту бумажный диплом, который вы получите в течении 4-10 недель.


Экзаменационные вопросы.


На сегодняшний день тестирование проходит по PHP версии 5.5.

Вопросы покрывают 10 тем:

  1. Основы PHP
  2. Работа с данными в PHP
  3. Строки
  4. Массивы
  5. Ввод и вывод данных
  6. Функции
  7. ООП
  8. Базы данных
  9. Безопасность
  10. Web features


Более подробный список здесь.
Многие из вопросов комбинированные, т.е охватывают сразу несколько тем. В целом сертифицирование проверяет не столько знание php, сколько ваши способности, как разработчика и инженера. От вас потребуется логическое мышление, внимательность, способность предопределить результат и умение компилировать в голове немалые куски 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 лет, и авторы теста сделали на этом акцент.

Желаю вам удачи в прохождении сертифицирования!
Pavel_Demidyuk @mr_MAIL
карма
34,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (32)

  • 0
    Спасибо за обзор. Сдавала сертификацию лет семь назад. С тех пор подорожало и, на первый взгляд, вопросы позаковыристее.
  • +5
    А то что вопросы по PHP 5.5 выражается в чем-то связанным с php 5.5? yield? password-api? foreach-list? Были ли вопросы по новинкам из 5.4? $this внутри замыканий? трейты?
    • 0
      Мне не попался ни один вопрос, связанный с нововведениями PHP 5.5. Трейты были в несколькоих вопросах.
      • 0
        Мне попалось по одному вопросу на password-api (суть: какие алгоритмы устарели, какие нет) и foreach-list (уаноничный пример из документации).
    • 0
      Встретились вопросы по static lambda function, Closure::bind, password_hash, трейты и NOWDOC.
  • 0
    Были ли вопросы на знания реализаций DOM, XML, SOAP в PHP?
    В экзаменах прошлых лет было.
    • 0
      Да. DOM и XML в моем случае.
    • +1
      Тут доступны симуляции экзаменов от Zend: exambraindumps.com/exam-list/Zend.html
      Можно попробовать свои силы если интересно на сколько хорошо знаете предмет.
      Достаточно много вопросов по спорным конструкциям, которые в общей практике не рекомендуется вообще использовать.
  • +1
    «А помните где в $_POST хранятся координаты точки, по которой кликнул пользователь?» — можно поподробнее об этом?
    • 0
      А что подробнее то? Там просто массив с ключами x и y, если я не ошибаюсь :)
      • +1
        спасибо, не знал, вот нашел спецификацию: www.w3.org/TR/html401/interact/forms.html#h-17.4.1
        • +7
          Вообще не пхп-шный вопрос
          • 0
            Это последний раздел сертифицирования — web features. Он не связан с PHP, как я понял там вопросы в основном по формам и http протоколу.
    • +3
      Странный вопрос. Вот зачем мне это помнить? Ни разу в практике не использовал, а если вдруг и понадобится, найду в инете или напишу тестовый скрипт за минуту.
  • 0
    Вы бы осторожнее… Наверняка вы подписались под тем, что если будете распространять вопросы с экзамена — у вас отберут сертификацию и запретят получать ее в дальнейшем.
  • +3
    После того, что я увидел в исходниках Zend Framework, думаю, сертификат мне уже не нужен.
    • +3
      Если не секрет, поделитесь… а то, может, я тоже «расстригусь».
      • –1
        Ну посмотрите на исходники ZF1, они не засекречены :)
      • +4
        Например, если настройка short_open_tag = Off, то для рендеринга вьюхи в Zend_View создаётся stream wrapper, который по сути имитирует обычное считывание из файла, только при этом он:
        1. грузит весь файл в память
        2. регулярками заменяет:
        $this->_data = preg_replace('/\<\?\=/',          "<?php echo ",  $this->_data);
        $this->_data = preg_replace('/<\?(?!xml|php)/s', '<?php ',       $this->_data);
        


        И так каждый раз, ведь это же native-шаблон, он быстрый и его не нужно кешировать.
        • 0
          Задумался… надо будет на досуге перечитать. Как хорошо, что я использую Кохану. Однако это не камень в огород языка в целом. Я понимаю претензии к PHP и разделяю их (а как иначе), но это не камень в сторону всего языка.
          • +2
            Я не говорю, что язык или фреймворк плохой. Но ZF _слишком_ универсален (это видно практически во всех классах), в итоге мы имеем то, что видим на сравнительных тестах скорости.

            Лично я переехал в своих хобби-проектах на Hack.
            • 0
              Ну и как вам Hack на реальных проектах, а не примерчиках?
              • 0
                Пока четкого мнения не сложилось. Когда сложится — будет статья :)
    • 0
      по Zend Framework есть своя сертификация.
  • 0
    > Zend PHP Certification Study Guide
    > shop.zend.com/en/php-certification/zend-php-certification-guide-pdf.html
    > Стоимость $19.95.

    Эта кинига 2007 года (2nd edition)? Или ее обновили?
    • 0
      Обновили до 5.5. Добавили Трейты, SPL и т.д.
      • 0
        Можно скриншот обложки?
  • +4
    Успешно сертифицировался три дня назад (почти без подготовки, только внимательно и вдумчиво прочитал как раз фичи 5.4--5.5 и купил StudyGuide, который помог лишь примерами вопросов).
    По PHP5.3+ specific:
    — несколько вопросов на анонимные функции
    — traits вопроса три
    — вопросы-ловушки из сложного накрученного ООП: декларируется набор классов, однако по факту далее они нигде не используются и на решение не влияют
    Много вопросов на SPL.
    Несколько общих вопросов по Reflexion
    Порадовали вопросы на опции php при запуске из CLI и работу с stdin/stdout
    Неожиданно мало вопросов по темам: Строки, Ввод и вывод данных, Функции, Базы данных, Web features.
    По безопасности вопроса наверное три.
    Неприлично много вопросов на мелочи, которые я всегда смотрел и буду смотреть в документации (типа сигнатур SPL) и неявных haystack/needle вопросов вида (на самом деле вопрос был про другую функцию, но я сделал пример максимально похожим):

    $a=array(10,11,12);
    $v=10;
    $x=array_search($a,$v);
    Вопрос: чему равно x; варианты (-1,0,1,false,null).

    Таким образом обобщу:
    Плюсы:
    Нормальный разработчик с опытом в 1-2 года и подготовкой в виде внимательного и вдумчивого чтения php.net сдаст без проблем.
    Без подготовки — зависит от попавшихся вопросов
    Экзамен комплексный. Я бы даже сказал слишком комплексный (часть вопросов рассматривает такие ситуации, которые на реальных проектах едва ли возможны).

    Минусы
    К сожалению, после прохождения экзамена я прихожу к неутешительному выводу, что если я когда-либо буду заниматься подбором кадров, я не буду «pay more attention» тем, у кого эта сертификация есть, так как знание языка — не ключевая компетенция (безопасность и Web features ИМХО намного важнее и являются скорее функциями от опыта)
    Нельзя однозначно ответить на вопрос «что пытались таким способом проверить».

    Автору: спасибо за пост и смелость раскрыть детали вопросов.

    Также, я не согласен некоторыми техисами автора (подробности опишу в отдельном комментарии).

    PS Ещё от сертификации есть приятный бонус: бесплатная лицензия на ZendStudio (мне как пользователю phpstorm будет приятно попробовать новый продукт и новый взгляд на IDE);
    PPS я не платил за услуги ТЦ, только ваучер через zend.com.
    • 0
      Спасибо, очень познавательно.
      Уже не первый раз читаю отзыв из серии «подготовился за три дня с пивом».
      У меня опыт больше 5 лет, перечитал все стади гайды и прочие материалы по сертификации, хочу попробовать сдать этим летом.
      Но вот уверенности как-то пока нет.
      Например, я почти ноль в DOM. Всегда хватало SimpleXml, а в последнее время вообще не сталкиваюсь с xml по работе.
  • +2
    Однажды на собеседование пришел очень коммуникабельный программист, и рассказывая о профессиональном опыте, первым делом упомянул, что у него сертификат от Зенда, полученный чуть ли не первым в России, и даже достал его нам показать, хотя мы не просили (вроде бы распечатка цветная зеленоватого цвета). Он провалил собеседование полностью. Последний из вопросов был — «сколько бит в байте?». Кандидат несколько раз повторил (руководитель переспрашивал) что 2 (два) бита.

    Собственно, чего я хотел сказать… Сертификат конечно вещь полезная, если вы устраиваетесь куда-то, где их ценят, или дают какие-то бонусы за это. Но очень рекомендую не придавать им особого веса, если в роли нанимателя находитесь вы сами.
  • +1
    Многие из вопросов комбинированные, т.е охватывают сразу несколько тем. В целом сертифицирование проверяет не столько знание php, сколько ваши способности, как разработчика и инженера. От вас потребуется логическое мышление, внимательность, способность предопределить результат и умение компилировать в голове немалые куски PHP кода.


    К сожалению, мне попалось слишком много вопросов (минимум вопросов 20) именно на «мелочи php», на которые я смог ответить только благодаря тому, что во время подготовки видел побобный пример как «исключение из правил» в мануале.
    По этой причине я не согласен с тезисом
    — сертифицирование проверяет не столько знание php *
    — php.net вам не осилить (да и не нужно)

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

    *) «способности, как разработчика и инженера» проверяются как раз интересными комбинированными вопросами. Они очень интересные (прямо приятно читать и разбираться), порой поражаюсь сколько конценптов проверяется за раз. Но таких, к сожалению, минимум. (В основном все на базовые вещи и один на LSB).

    Таким образом, php.net можно и нужно внимательно читать (не обязательно на английском, на русский большинство глав переведено и очень качественно). Это не настолько нудно и долго как кажется (главное это делать вдумчиво и не очень большими порциями).

    Надеюсь, эта инфорация поможет вам подготовиться к сдаче ZCE.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.