Devenir Zend Certified Engineer avec PHP5

Zend Certified Engineer on a book

C’est quoi «Zend Certified Engineer» (ZCE, voir définition Wikipedia). C’est une certification professionnelle pour prouver son expérience avec le langage de programmation PHP. Zend est l’entreprise derrière le ZendEngine qui fait rouler PHP depuis la version 2.

J’ai commencé à coder en PHP depuis 2001 (PHP3) mais je n’ai jamais «prouvé» mes capacités avec un tel diplôme. Je crois qu’il est plus que temps de le faire.

Je n’avait pas pris la route des certifications parceque j’ai jamais manqué d’ouvrage et mon expérience et mes aspirations ne m’avaient jamais demandé d’aller par là. Sauf qu’après toutes ces années, lorsque vient l’idée de vouloir se déclarer expérimenté sur le marché de l’emploi… on a plus vraiment le choix.

Surtout avec PHP5 et la programmation Orienté Objet. Toutes les firmes que j’ai pris contact demandent ce prérequis. Je les comprends de vouloir des preuves.

Mon expérience

Durant mes expériences passés (150 projets web) j’ai toujours développé en PHP. J’ai étendu beaucoup d’objets et travaillé avec des frameworks (Kohana, Code Igniter, WordPress, MODx, etc) mais de là a dire que je comprenait toute la mécanique. J’ai beaucoup poussé mes capacités et développé deux produits complets dont un CMS.

Tout de même!

Ne passe pas qui veut la certification. J’ai eu une tonne de brique sur la tête appelée réalité quand j’ai tenté de passer des tests de PHP sans étudier. Je croyais que simplement mon expérience me donnerait le «pouvoir» de passer facilement n’importequel examen de PHP.

Même avec un examen indépendant en PHP4 j’ai eu la cote de 88% … en PHP5, tout est différent. Disons, pareil, mais avec un univers de possibilité qui s’est introduit!

C’est quand même pas n’importequoi de passer d’un langage procédural a Orienté Objet.

J’ai ai donc pris pour mon rhume et j’ai ouvert les manuels et les howtos qui existent pour me familiariser avec les termes, les design patterns, les librairies… et la nouvelle version de PHP (5.3). J’ai aussi eu a fouiller sur le web pour voir qui d’autre a passé par ce processus.

Mon processus d’apprentissage

Seulement lire le «study guide» fourni par Zend ne suffit pas (!!). J’ai alors décidé de faire comme si je partait de zéro.

J’ai donc commencé par…

  • Lire les pages au hasard du manuel PHP sur mon iPod Touch (en format chm) avec iChm.
    J’ai fait ça pendant un mois a temps plein. A chaque moment de libre, je lisait des sections dans un ordre arbitraire.
  • Passer plusieurs examens de pratique.
    J’ai su que l’examen réel de Zend est beaucoup plus difficile que la pratique alors ne vous contentez pas d’aller passer l’examen si les examens de pratique ne vous donne pas un “EXCELLENT” presque tous les domaines.
  • Prendre des notes papier
    Pour moi c’est pas une pratique que j’aurai préconisé. Mais après plusieurs semaines à étudier a plus ou moins temps plein, j’ai commencé a cimenter les concepts en les réécrivant sur du papier.
  • Entretenir mon propre wiki d’étude
    J’ai consacré dans mon Wiki personnel tout ce que j’ai trouvé comme lien pour référence ultérieure. Ici, c’est la version weblog de mon processus.

Quelques liens

Becoming a Zend PHP Certified Engineer > Blog – Webmantica : Il explique son processus personnel et mentionne plusieurs liens forts intéressants pour commencer a prouver.

IBM DeveloperWorks > What’s new in PHP 5.3 (partie 1, partie 2, partie 3, et partie 4) est une série très éducative sur les différences majeures et vraiment cool de la version majeure de PHP.

IBM DeveloperWorks > Five common PHP design patterns : dsa

IBM DeveloperWorks > Five more PHP design pattern :

O’Reily Media > Learning UML : Est un livre qui explique les concepts du UML. Comprendre le concept est une chose, mais pouvoir l’utiliser consciemment en est une autre. J’ai donc fait ce qu’il faut pour pouvoir utiliser cet outil universel.

PHP Magic features par Jani HARTIKAINEN, pour comprendre la puissance des méthodes magiques et pouvoir en tirer parti.

Abstracting Database Access Using Polymorphism with Objects in PHP5 Permet de bien comprendre un design pattern

Quelques articles faits par Tim Huegdon chez Yahoo! Europe qui vulgarisent très bien les concepts OOP de PHP5
Object Oriented Concepts, pt.1 definition, pt.2 Relationships, pt.3 Taking relationships further, pt.4 Improved features