Под натиском руководства, я все же собрался и пошел сдавать экзамен 200-100 Zend PHP Certification Exam в ближайший VUE центр. И - сдал! Так что, судя по разделу сайта Zend PHP Yellow Pages, я -- 3-й инженер PHP в России. Правда, пока меня нет на сайте - VUE не сразу подает информацию об экзаменах, но на днях, я думаю, я появлюсь…
Немного об экзамене
"Что там было?", "Как ты спасся?"
Каждый лез и приставал,
Но механик только трясся
И чинарики стрелял.
В. С. Высоцкий
Экзамен непростой. 70 вопросов на английском, на которые дается 85 минут. Все вопросы рассчитаны на 4-ю версию PHP, при условии, что установлен recommended php.ini файл. Это очень важно учитывать! Register_globals и другие настройки могут оказаться отключенными. Многие вопросы приводят код и спрашивают: "Что будет в результате?", или, того хуже: "На какой строчке вывалится ошибка?". Очень много вопросов по функциям! Судя по количеству вопросов, могу порекомендовать обращать внимание на следующее:
Строковые функции и регулярные выражения
Преобразование типов и массивы
Сессии
HTTP - по RFC2616
ООП
Претендентам могу порекомендовать без основательной практики использования PHP на экзамен не соваться… Он дорогой, а многие вопросы просто требуют буквально мгновенного анализа кода: "Укажите через пробел номера ошибочных строк в приведенном примере..." - вот где опыт преподавателя PHP незаменим! Мои глаза практически сразу находили эти строки… :)
Как пособие к экзамену, на мой взгляд, идеально подходит книга Леон Аткинсон, Зеев Сураски - PHP 5. Библиотека профессионала
Стратегия и тактика сдачи экзамена
Каждый мнит себя стратегом, видя бой со стороны
Ну что ж, и я попробую теперь изобразить из себя стратега…
Правило первое. Не надо волноваться! Несмотря на жесткие рамки, времени, как правило, хватает!
Правило второе. Всегда отвечайте на вопросы! Даже если не знаете ответа - отвечайте! Неотвеченный вопрос - гарантированно засчитывается неправильным, а так - есть вероятность, что попадете в правильный…
Правило третье. Если не уверены в ответе, или тривиально не знаете ответа - не тормозите! Как и на любом экзамене VUE, сверху слева на мониторе есть галочка "Вернутся к вопросу позже" - ставьте ее, отвечайте как-нибудь (!) - и дальше! Дальше! Неважно, что по началу вы будете отмечать буквально все вопросы - ваша задача пройти их до конца за как можно более короткое время. После к ним вернемся, а пока отсеем те вопросы, на которые мы гарантированно знаем ответ. Кроме того, очень часто ответы на предыдущие вопросы можно найти в следующих. В этом случае - не нужно возвращаться - запишите на бумажке, которую вам дадут, правильный ответ, и позже вернетесь к предыдущему вопросу. Я прошел первый круг примерно за час, то есть у меня оставалось около 25 минут на несколько действительно сложных вопросов. Вот здесь, когда вы дойдете до конца, и останется время, за которое можно еще раз пройтись по отмеченным вопросам и хорошенько подумать. Как правило, на половину из них вы уже знаете ответы. У меня оставалось буквально два вопроса, на которые я не знал, что отвечать. (По правилам VUE я не могу разглашать вопросы), но как ответить на один из них я догадался в самый последний момент времени, а на второй - просто логически исключил неправильные варианты, и ткнул в оставшиеся, что называется наугад.
Правило четвертое. К экзамену надо готовится! Особенно анализировать хороший код. В качестве источников хорошего кода можно назвать упомянутую книжку Аткинсона и Сураски, официальные книжки Zend PHP Certification Study Guide и Zend PHP Certification Practice Test Book, документация на сайте www.php.net. Что не надо использовать при подготовке к экзамену: книжки типа "Изучи PHP сегодня за 24 часа в картинках и раскрасках для идиотов и чайников. Наиболее полное руководство", код большинства Open Source продуктов типа phpNuke, подавляющее число форумов по PHP в РуНете. Все эти источники могут сослужить вам медвежью услугу. Особенно на вопросах типа (вопрос не с экзамена! Я его сам придумал по аналогии):
Объясните кривость следующего кода:
$string = "PHP is very cool";
if (eregi("php", $string)) {
echo "Yes!";
}
?>