Estas últimas semanas me he estado preparando para la certificación de PHP 5.3 que hace Zend. Se trata de la única certificación con cierto prestigio en este lenguaje y cuenta con el aval de la principal empresa contribuidora al lenguaje PHP. En este post me voy a permitir dar unos cuantos consejos a los que os habéis planteado presentaros, así como información sobre la certificación mi opinión personal sobre ella.

Los temas en los que te van a evaluar en la certificación son:

  • PHP Basics
  • Formatos y tipos de datos
  • Strings
  • Arrays
  • I/O
  • Funciones
  • Programación orientada a objetos
  • Bases de datos
  • Seguridad
  • Web features

¿Por qué debería prepararme la certificación de PHP 5.3?

Primero de todo porqué te gusta PHP y trabajas con este lenguaje. No hay demasiados certificados por lo que podríamos decir que da cierto prestigio y lo de “PHP Certified Engineer” queda bastante bien en el currículum :P. También es cierto que la certificación te puede abrir unas cuantas puertas (sobretodo si no tienes muchos años de experiencia).

Estudiando para la certificación he aprendido bastantes cosas sobre el lenguaje que no conocía: ¿qué es el late static binding?, multitud de funciones útiles para arrays y strings, cosas sobre seguridad, funcionalidades que por mi trabajo no acostumo a usar como streams, algunos comportamientos no esperados de PHP como algunos que os pongo debajo etc.

echo (int) ((0.7 + 0.1) * 10); // da 7 por problema de precisión
echo 0x00+2; // Bug. Da 4 para PHP 5.3.0 - 5.3.10
var_dump(1 == true); // true
var_dump("hola" == true); // true
var_dump("hola" == 0); // true. Si vienes de otro lenguaje esto te parecerá algo raro..

Básicamente vas a tener una visión mucho más global del lenguaje, vas a aprender cosas nuevas y vas a mejorar en cosas que ya sabes hacer pero seguramente hay una manera más optima de implementarlas.

Lo malo de la certificación…

He leído en varios sitios gente que critica la certificación y en parte razón lo les falta. Es una certificación donde sobretodo vas a ejercitar la memoria y donde te van a examinar con ejemplos no demasiado cercanos a la realidad… Vas a encontrarte preguntas confusas donde van a “intentar pillarte”. Trozos de código donde puede faltar un ; o un switch con un case debajo del default, etc.

$myArray = array(1,2,3);
for ($i = 0; $i < (count($myArray) -1); $i++);
  $myArray[$i] += 1;
var_dump($myArray);

Por lo tanto no van examinar que seas un buen programador, puesto que no vas a programar nada, solo vas a tener que demostrar que conoces el lenguaje suficientemente bien.

Vale, no me has asustado, aún quiero ser un PHP Certified Engineer

Si aún sigues ahí es porqué te sigue interesando la certificación. Comparto algunos recursos que he utilizado yo para prepararme para estudiar. Como podéis ver no abundan los recursos y muchos no son para la versión 5.3 de PHP.

Guía oficial de estudio para la certificación

En la web de Zend publican un pdf con información general del exámen y un resumen del temario. Te será bastante útil para saber que tienes que estudiar para ir bien preparado, pero no sirve para mucho más que darte una visión global del temario

Exámenes y preguntas de la certificación

Deja de buscar exámenes que la gente de Zend haya publicado, no los hay. Lo más cercano que encontraras son algunas preguntas que hay en la guía oficial de estudio para la certificación y éstas slides.

El libro de preparación

Existe un libro llamado “Zend PHP5 Certification Study Guide” de php|architect’s. Pese a que no se trata un libro especialmente para PHP 5.3 la mayoría de temario es muy parecido. No se extiende demasiado en las explicaciones y ejemplos pero nos sirve como introducción a cada tema. No te recomiendo que te gastes los más de 20€ que vale en Amazon.

Vídeos de training

Zend ofrecen varios paquetes de training con unos vídeos bastante buenos de aproximadamente 40min-1hora por tema. Pese a que el locutor tiene un tono de voz bastante somnoliento van bastante bien y para conseguirlos solo deberéis pagar los 700€-1200€ que Zend pide por ellos o buscar un poco por internet… :). También hay un webinar público con algo de información.

Ucertify

Ucertify tiene disponible un curso de preparación para la certificación de PHP 5.3 con multitud de preguntas, tests, libro con teoría, mock final para el examen… Se trata de una opción muy interesante, lo malo es que vale unos 120$. Si te vas a presentar al examen con más gente igual os sale a cuenta comprar la licencia entre varios. Es quizá el recurso que más útil me ha sido para sacarme la certificación.

Appspot.com

Buscando en google encontré esta página con bastantes preguntas de la certificación de PHP5. Pese a no estar actualizadas en el examen me cayó alguna de las que salen ahí. También podéis ver algunas reviews de temas (también PHP5) aquí.

Algunas preguntas no oficiales que corren por internet

Os las comparto en Dropbox, pero no me hago responsable de su autenticidad. Además hay varios PDFs que son de PHP 5 y no de PHP 5.3.

PHPriot

En PHPriot venden unos packs de preguntas bastante correctos ¡y además de PHP 5.3!. Por unos 5€ puedes comprar todas las preguntas y hacer tests en dos niveles de dificulad diferente. Los unicos problemas que bajo mi punto de vista tiene es que no da las soluciones de las preguntas al final, solo te dice si están bien o mal y que faltan algunos temas en las preguntas.

Si consigues hacer un exámen en PHPriot en nivel dificil y sacas más de un 70% puedes ir bastante tranquilo al examen. Por lo que cuesta os lo recomiendo.

El examen

¿Como?

El examen es un poco puñetero. Vas a tener que demostrar que le has dado un buen repaso a todo php.net. Consta de unas 70 preguntas (el número de preguntas puede variar dependiendo de la dificultad de las que te hayan tocado) tipo test, las respuestas incorrectas no restan y hay algunas preguntas con varias respuestas (unas 5-10 en todo el examen). También hay alguna pregunta donde debes escribir el nombre de una función o una directiva de configuración de php.ini.

Pese a que la guía de estudio oficial indica que temas tienen más importancia no os fiéis demasiado, a mi por ejemplo me entraron muchas preguntas de SPL y Streams… estos temas no los tenía muy trabajados y lo pasé un poco mal :P

No entran preguntas de orden de parámetros $needle y $stack en las funciones ni preguntas de comparación de PHP5 con PHP4.

Mi principal preocupación antes de entrar al examen era si el nivel de las preguntas iba a ser muy diferente al que había visto en los recursos que os he puesto arriba. Hay de todo, hay desde preguntas muy fáciles hasta preguntas que entran a un nivel de detalle bastante psicodélico

Al terminar el examen no te dan ninguna nota ni te dicen las que has fallado, solo si has pasado el examen o no. Lo sabes al momento después de finalizar.

¿Dónde?

Hay varios lugares para hacer el examen, se trata de centros que tienen acuerdos con Zend, si mal no recuerdo en Barcelona había unos 5 o 6. En el lugar que lo hice yo no te permiten entrar al examen con nada (teléfono, mochila…) y te tienen vigilado con cámaras. Cuando compras el voucher para el exámen puedes escoger el centro para hacerlo que más te convenga.

¿Cuánto?

El precio del examen ronda los 200€. Buscando un poco por google encontré un cupón de descuento y se me quedó en 170€.

Conclusiones

No me atrevo a recomendar ni a desaconsejar a la gente para que se saque la certificación. A mi personalmente me ha costado bastante, no por la dificultad sino por lo pesado del temario y las “tonterías” de PHP como cambios de orden en parámetros en funciones parecidas, pasar de camelCase a funciones_con_underscores, etc. También es cierto que he descubierto muchas cosas de PHP que no conocía antes y que mi nivel de comprensión del lenguaje ha mejorado mucho. Si la certificación abre puertas supongo que lo veré con el tiempo :)

Espero que el post os sirva para algo. ¡Mucha suerte si os decidís a presentaos!

Edit: José Ignacio nos comparte en los comentarios estos PDFs que Lorna Mitchell vende en su blog por 25$. No los he visto, pero tienen buena pinta. ¡Gracias José Ignacio!