С июля 2004 года начата программа сертификации PHP специалистов. Поскольку еще в июне мне удалось принять участие в бета-тестировании экзамена этой сертификации, спешу поделиться своим мнением со всеми, кто интересуется тем, как стать Zend Certified PHP Engineer.
Автором программы является компания Zend, статус которой в мире PHP ни у кого, я надеюсь, не вызывает сомнений. Ко всему прочему, необходимость сертификации по PHP назрела давно. Следует отметить, что этот вакуум давно пытались заполнить различные системы тестирования/сертификации, например, Brainbench.com, ExpertRating.com, CIW и т.п. И вот теперь, на поле PHP сертификации вступает главный игрок – компания Zend. Итак, теперь по порядку.
Основные параметры экзамена:
Время – 85 минут.
Добавлять 15 минут тем, для кого английский язык не родной не будут. Вопреки тому, что эта практика активно используется в других сертификациях, позиция членов The Zend PHP Education Advisory Board оказалась непреклонной – те, кто претендуют на статус эксперта по PHP, английский должны знать в совершенстве, по крайней мере уметь достаточно бегло читать и понимать технические тексты. К месту позволю себе несколько теплых слов в адрес The Zend PHP Education Advisory Board – очень достойная команда. Специалисты высочайшего уровня. Почти все они принимали активное участие в создании PHP 5, да и не только 5 версии. С некоторыми из них мне посчастливилось общаться лично - вот почему смело могу утверждать - люди они приятные, но упертые – дополнительного времени для нас при сдаче экзамена не будет. Вопрос этот я с ними обсуждал неоднократно, но все мои усилия оказались безрезультатными.
Количество вопросов – 70.
Кому-то может показаться, что ответить на 70 вопросов за 85 минут – задача крайне сложная. Да, это так. Но никто и не обещал, что будет просто. Следует отметить, что чем сложнее экзамен сдать, тем выше престижность получение статуса. Предполагаю, что статус Zend Certified PHP Programmer окажется очень престижным : ).
Итак, в сухом остатке: 85 минут / 70 вопросов = чуть более 1 минуты для ответа на вопрос!
Стоимость экзамена по PHP в России – порядка $230.
В зависимости от того, в каком центре тестирования сдавать – цены могут слегка меняться.
Где можно сдавать экзамен – в любом центре тестирования Pearson VUE.
Критерии сдачи экзамена - после сдачи вы увидите или pass или fail, при этом на сколько вопросов нужно ответить правильно - у меня такой информации пока нет.
Какие же аспекты программирования на PHP положены в основу тестового экзамена?
Следующий материал основан на 2-х источниках (абсолютно достоверных, в чем я смог убедиться, сдавая бета экзамен):
1. материале письма-приглашения, разосланного некоторым участникам бета-тестирования
экзамена.
2. официальном пособии от Zend - Zend PHP Certification Study Guide – а точнее на его
содержании.
Итак, вопросы экзамена касаются следующих аспектов технологии PHP:
1. Основы PHP
Основная информация о PHP и его роли в разработке веб-приложений. Все основные элементы языка, такие как – определения, соглашения, основные элементы языка PHP и их использование.
- введение в PHP
- PHP и HTML
- PHP и XML
- PHP и базы данных
- создание PHP страниц
- использование PHP тегов
- основы использования языка
- константы и переменные
- идентификаторы
- операторы
- условные конструкции
- операторы циклов
- функции
- переменные функции
- включение файлов
2. Объектно-ориентированное программирование на PHP
Все об объектно-ориентированном программировании на PHP (обратите внимание, материалы экзамена опираются на версию PHP 4.3.6, таким образом имеется ввиду не ООП, которое пришло в PHP 5 версии, а еще раннее ООП, версии 4).
- основы объектно-ориентированного программирования
- классы
- создание экземпляров объектов
- конструкторы
- атрибуты
- доступ к объектам, методам и атрибутам
- наследование
3. PHP и Web
В основном в этом блоке вопросы по супермассивам PHP и сессиям.
- создание HTML разметки с помощью PHP
- встраивание PHP сценариев в HTML на клиентской и серверной стороне
- создание форм
- GET и POST: специфика получения данных из форм
- cookies
- супермассивы: получение глобальной информации
- управление сессиями
4. Массивы
Массивы и их использование в PHP.
- индексные массивы
- ассоциативные массивы
- многомерные массивы
- сортировка
- изменение порядка следования элементов в массивах
- сериализация
- манипулирование массивами
5. Строки и регулярные выражения
- форматирование строк
- сравнение строк
- модифицирование строки
- регулярные выражения
- выборка данных из строки
- объединение данных в строку
6. Манипуляция файлами
- открытие файлов
- запись в файл
- чтение из файла
- закрытие файла
- работа с файловой системой
- блокирование файла
7. Дата и время
Основные встроенные в PHP функции для работы с датой и временем, специфика работы с датами при работе с базами данных, особенности и ограничения формата времени UNIX.
- даты в PHP
- получение текущей даты
- конвертирование в формат даты
- основные функции даты и времени
- вычисление даты
- дата и базы данных
- использование календарных функций
- эпоха UNIX
- ограничения использования формата даты UNIX
8. Работа с E-mail
- отсылка email
- управление заголовками
- форматирование сообщений email
- присоединение файла к сообщению
9. PHP и базы данных
Основы взаимодействия PHP и серверов данных. Поскольку экзамен сфокусирован только на PHP, вопросы касаются не конкретных DBMS, а только общих моментов работы с базами данных, SQL синтаксиса.
- использование баз данных
- типы баз данных, поддерживаемых в PHP
- вставка данных
- получение данных
- объединение данных
10. Потоки и сетевое программирование
- использование файловых трансляторов (wrappers)
- соединение с удаленными узлами через сокеты
- блокирование и не блокирование вызовов
- создание и использование потоков
11. Безопасность
Некоторые традиционные вопросы безопасности, имеющие место при программировании на PHP.
- безопасная и небезопасная входная информация (trusted and untrusted input)
- управление аутентификацией
- замена опасных символов для строк, использующихся при shell программировании и работе с
базами данных
- проверка правильности пользовательского ввода
- предотвращение XSS атак
12. Отладка и управление производительностью
- основные ошибки при программировании на PHP
- программная логика
- создание хорошего кода
- предотвращение ошибок
- предотвращение потери производительности
- решение проблем низкой производительности
Какие преимущества дает PHP сертификация (в версии Zend PHP Education Advisory Board с моими комментариями)?
- преимущества перед конкурентами при поиске новой работы (несомненно, по крайней мере, не
нужно будет долго доказывать, что вы знаете PHP, а не выдаете себя за специалиста)
- великолепное резюме (если суметь правильно составить)
- возможность выделиться среди коллег по работе (возможно прибавят зарплату или повысят в
должности, сильно зависит от того, где вы работаете)
- занесение в Yellow Pages for PHP Professionals на сайте Zend (напоминает «зал славы» : ) ).
- возможность приобретать продукты от Zend со скидкой (без комментариев)
- участие в конференция по PHP со скидкой (на этом можно будет сэкономить $100, если найти
остальную сумму на поездку – хотя она того стоит!)
- одними из первых вы будите получать информацию о продуктах компании Zend, возможность их
тестирования и прочие удовольствия от Zend (даже не знаю что сказать).
Вывод: тестироваться надо во что бы то ни стало!
Глубоко личные впечатления, полученные при сдаче экзамена
Одназначно, экзамен нельзя назвать легким:
Во-первых, существенное ограничение по времени.
Во-вторых, большое количество не теоретических, а сугубо практических вопросов по PHP коду.
В-третьих, множество различных типов вопросов, т.е. способов задания вопросов и ответов. Лично мне попадались такие варианты:
- вопросы с вариантами ответа, из которых нужно было выбрать только один (это самое легкое)
- вопросы с вариантами ответа, из которых нужно было выбрать обязательно 2 или 3
- вопросы вообще без вариантов ответа, в этом случае ответ (как правило или имя функции или
результат выполнения PHP скрипта) нужно было просто ввести в специальное поле (самый
сложный, на мой взгляд, тип вопроса)
Вывод: не смотря на сложность экзамена, мне кажется, что специалист, который каждый день занимается разработкой приложений на PHP должен сдать такой экзамен "с лету". Если же практики не очень много, нужна серьезная подготовка.