Afin d'initier le mouvement et de montrer la voie à d'autres développeurs dans ma précédente société, j'ai passé l'examen de certification MongoDB C100DEV fin janvier 2015.
Cet article se veut un retour d'expérience de ma démarche et des enseignements qui ressortent, tant concernant la préparation que le passage de la certification.
Préambule
Vous n'êtes pas certifiés MongoDB si ...
... vous avez suivi et validé l'un des cours en ligne sur la MongoDB University (je reviendrai sur ce canal de formation plus loin.
Combien de collègues ou candidats j'ai entendu prétendre être certifiés pour me rendre finalement compte qu'ils n'avaient "que" (c'est déjà bien évidemment) suivi et validé l'un des cours en ligne.
Présentation de la certification
La certification, tout comme son pendant DBA, a été officiellement lancée fin décembre 2013, sur un modèle que ceux familiers des certifications Oracle reconnaitrons :
- niveau Associate
- niveau Professional
- niveau Master
C'est donc sans surprise que le le premier examen mis à disposition fût l'examen Associate. Pour autant, la promesse à l'époque était de lancer durant 2014 les examens correspondant aux autres niveaux. A ce jour, il n'y a toujours que le niveau Associate de disponible.
Le contenu de la certification
Les thèmes concernés par l'examen sont les suivants :
- Philosophy & Features
- CRUD
- Data Modeling
- Indexing
- Aggregation
- Replication
- Sharding
Pré-requis
L'inscription (payante) à l'examen ne demande aucun pré-requis, mais recommande néanmoins le suivi d'une formation en présentiel ou en ligne (MongoDB University).
La préparation
Le study guide
Le study guide n'existait pas il me semble lors de mon passage, désormais il apparait comme fourni après achat en ligne de l'examen. On pouvait néanmoins trouver une vidéo en ligne sur la chaîne Youtube MongoDB University intitulée MongoDB January 2015 Certification Exam Study Session (vise la version 2.6).
Cette vidéo de 60' comprend un rappel des consignes, du déroulement et le sujet de la certification (de façon indifférenciée DEV / DBA). Vous y verrez également quelques exemples de questions type.
Si vous cherchez une vidéo à jour, scrutez le canal Eventbrite MongoDB car il arrive de temps en temps qu'une session live gratuite soit planifiée.
Les formations en présentiel : un bazooka pour une mouche ?
Côté formation en présentiel, les formations officielles dont le prix peut être dissuasif si le motif est l'unique passage de la certification.
Vous avez le choix entre MongoDB Essentials et
MongoDB for Developers, le dernier n'étant malheureusement pas disponible en France si l'on se fie au site officiel.
Des livres : attention à la version
La certification se base sur les dernières versions (actuellement la 3.2) et les questions peuvent être assez spécifiques. Lors de vos révisions, pensez toujours donc à étudier la dernière version.
Attention donc également à vos lectures : la dernière version de MongoDB The Definitive Guide date de mai 2013 (MongoDB 2.4 est sorti en mars 2013, 2.6 en avril 2014).
Le e-learning : pour rentrer davantage dans le concret et pratiquer
Les cours en ligne de la MongoDB University sont parfaits pour les débutants et faux débutants, mais aussi ceux qui ne seraient pas à jour de la dernière version ciblée par l'examen.
En résumé, il sont :
- Gratuits
- Disponibles sous plusieurs variantes (Python, Java, Node, .NET)
- Non liés directement à la certification, mais assez concrets / pratiques
- dispensés sur des cycles de 7 semaines et se terminent en général un peu avant la semaine de passage de l'examen
- décomposés en chapitres d'une semaine chacun, rendus disponibles au fur et à mesure
Notez que l'inscription obligatoire en début de période : il n'est pas possible de rejoindre une session en cours de route.
Vous pouvez évidemment aussi trouver d'autres cours en ligne, mais méfiez vous de la version ciblée. Quelques exemples :
- Working with MongoDB sur Udemy
- MongoDB Complete Training sur Udemy
- Learning MongoDB - A Training Video From Infinite Skills sur Udemy
- Introduction to MongoDB sur Pluralsight
La documentation officielle : la garantie d’avoir balayé tous les sujets
La documentation officielle est très fournie et complète. Lors de ma préparation, en particulier les dernières révisions, elle était devenue incontournable et rassurante.
L'examen
L'inscription
Pour s'inscrire, on passe par Eventbrite qui prend en charge le paiement.
Le mail de confirmation vous rappelle la fenêtre d'examen et quelques instructions et rappels sur le déroulement de l'examen.
Planification de l'examen
Vous recevrez, une semaine avant le début de la fenêtre d'examen, un mail Action Required: Schedule Your MongoDB Certification Exam vous demandant de planifier l'examen et de configurer votre compte sur la plateforme d'examen Examity (photo et pièce d'identité notamment).
En voici un extrait :
La fenêtre d'examen correspond à une fenêtre de temps de 7 jours. Il vous est donc demandé de choisir un créneau horaire lors duquel vous passerez l'examen en ligne.
Il vous est également proposé un lien pour valider la compatibilité de votre ordinateur pour le déroulement de l'examen.
Les grandes lignes de l’examen
- Inscription à 150$
- Durée d’examen de 90 minutes
- Entre 60 et 70 questions
- Des réponses parfois (souvent) multiples
- Pas de pénalités pour mauvaise réponse
- Objectif minimal d'environ 65% de bonnes réponses pour être certifié (c'est une approximation de ma part, il n'y a pas d'information officielle à ce sujet)
Le déroulement de l'examen - setup
L'organisme formateur utilise un outil de surveillance sur Citrix, compatible Windows et Mac, vous aurez ainsi à partager votre écran.
Le centre est en Inde, il parle un anglais particulier, attendez-vous à avoir plus ou moins de difficultés pour le comprendre.
L'opérateur prend le contrôle de votre machine et vous met devant un formulaire qui vous demande votre login/mot de passe MongoDB university et votre question secrète, puis il vous demande une pièce d'identité avec photo pour vérifier votre identité.
La webcam est obligatoire et il peut vous être demandé de montrer la pièce dans son ensemble : pensez à une webcam capable de faire facilement un 360°.
Le déroulement de l'examen - pendant les 90'
L’examen se déroule sur une simple page Web, ne nécessitant aucun matériel ou plugin particulier.
Désactivez vos plugins, chats et autres logiciels de communication, et préférez une navigation privée dans une nouvelle fenêtre.
Vous n'avez le droit qu'à Google translate durant l’examen.
Vous devez évidemment rester dans le champs de la webcam et éviter de parler (sauf à l’instructeur en cas de besoin).
Après l'examen
Au bout des 90' (ou avant), vous aurez à soumettre votre examen.
Puis vient une longue période de solitude (environ 2-3 semaines) jusqu'à ce que les résultats vous soient communiqués par mail (certification@mongodb.com).
Votre score final vous est communiqué, ainsi que le score nécessaire pour obtenir la certification (ce score varie selon la difficulté estimée de chaque examen).
Il vous est également proposé un feedback détaillé par thème comme l'illustre l'exemple suivant :
En cas d'échec, il n'y a pas de mémoire de restriction pour repasser l'examen.
Retour d'expérience
Je ne me suis pas lancé sur un coup de tête dans la préparation de l'examen. J'avais déjà un petit historique avec MongoDB, en particulier dans le suivi des cours en ligne sur la MongoDB University.
En effet, j'avais déjà suivi et validé les cours suivants :
- M101: MongoDB for Developers, fin 2012, avec un score de 100%
- M101J: MongoDB for Java Developers, en avril 2013, avec un score de 90%
... ainsi que profité de quelques évènements organisés par le MUG Paris et/ou l'éditeur.
Répartition des questions
L'ordre d'apparition des questions est le même que l'ordre donné pour lister les thèmes.
Par contre, la répartition des sujets, selon mon ressenti, par ordre d’importance (nombre de questions) est la suivante :
- CRUD
- Indexing
- Aggregation
- Data Modeling
- Philosophy & Features
- Replication
- Sharding
Le système d'examen
Le système d’examen est classique, sans plus :
- possibilité de revenir sur les questions et de naviguer entre sections
- pas de possibilité de marquer une question pour relecture comme sur les examens Prometric
Il est primordial de bien gérer son temps car les 90' passent vite :
- il faut réussir à se concentrer pour s'approprier le contexte initial d'une question
- certaines questions sont liées entre elles
- jeu de données commun à plusieurs questions
- requête d'aggrégation à compléter avec 3 trous
- ne pas négliger les spécificités de la structure tableau (questions CRUD + Indexing)
Il ne faut clairement pas trainer : la lecture et compréhension du contexte de chaque exercice nécessite un temps non négligeable. Chaque minute de l'examen est précieuse, on est loin des examens de type OCP ou Spring pour lesquels on a le temps de reparcourir les questions mises de côté et soumettre l'examen 20' avant la fin.
Attention à la connexion réseau
J'ai passé l'examen en fin de soirée, chez moi, dans la chambre avec une connexion WIFI.
J'ai perdu la connexion pendant l'examen (à 20' de la fin) :
- l'instructrice m'a dit qu’elle ne voyait plus mon écran et m'a demandé de suspendre l’examen
- l'instructrice m'a demandé de repartager mon écran, lequel apparaissait partagé de mon côté
- l'interface gotomeeting a planté
A ce moment, je me suis dit que si j'allais au bout de l'examen celui-ci risquait d'être annulé.
Je me suis donc manifesté sur le chat gotomeeting :
- j'y ai donné mes références
- on m'a demandé mon numéro de téléphone
- on m'a rappelé pour me donner le numéro de conférence et rejoindre l’instructrice
Si j'avais eu ce numéro dès le départ, j'aurais économisé un bonne dizaine de minutes de temps.
J'ai finalement repartagé mon écran et ai eu le droit de reprendre :
- il me restait 8 minutes et 20 questions
- j'ai baclé les dernières questions
- je n'ai évidemment pas eu le temps de refaire une passe sur les premières questions
- l'instructrice n'a rien dit, ça s'est terminé ainsi
Le premier bilan
Malgré mes péripéties, je suis resté optimiste et j'avais espoir d'obtenir un score suffisant pour décrocher la certification.
Après un peu plus de 2 semaines d'attente, j’obtenais mon score et échouais de peu. Le mail ne faisait par contre aucune mention des problèmes techniques rencontrés.
J'ai réalisé un score de 476 contre 490 nécessaire pour valider l'examen, donc raté de probablement 1 ou 2 bonnes réponses.
Le plus mauvais score sur Sharding (50%) - ce qui s'explique car en fin de questionnaire - et sur CRUD (52%) - ce qui s'excuse moins si ce n'est par l'absence de revue des réponses en fin d'examen.
Mes meilleurs scores ont été sur les thèmes Aggregation (76%), Replication (80%), et Indexing (100% ... on voit que mes années Oracle ont de beaux restes).
Gestion de mon cas (particulier ?)
Par retour de mail, j'ai tout de même exprimé mon étonnement que l'incident ne soit pas mentionné :
- le responsable n'avait pas l'information par l'instructrice
- le responsable a visionné mon examen pour constater les problèmes
- On m'a promis de pouvoir repasser l'examen sans frais supplémentaire
Après plusieurs relances, j'ai pu repasser un examen sur un créneau imposé (un vendredi soir à 21h).
Les conditions n'ont pas été du tout les mêmes puisque cela s'est fait directement avec mon interlocuteur (le responsable), bien entendu selon les mêmes règles que l'examen initial via Examity.
Là où j'ai été perturbé, c'est qu'on m'a réouvert mon questionnaire initial (avec mes réponses de l'époque).
Cette sensation de remettre en question chaque réponse est assez perturbante. Comme je n'étais pas du tout préparé à ce scénario, je ne me suis même pas rappelé des thèmes sur lesquels j'avais eu un bon score, ce qui m'a valut - à force de voir pièges et erreurs partout - de diminuer ma performance sur le thème Indexing en passant de 100% à 71%.
Malgré cela, j'ai amélioré mon score sur les autres thèmes et finalement dépassé le score requis pour valider l'examen.
Divers conseils
Quelques conseils issus de mon expérience :
- Ne négligez pas la pratique dans votre phase de préparation
- Servez-vous de la documentation officielle pour parfaire votre compréhension
- Ne négligez pas les spécificités de la structure tableau qu'on a moins l'habitude de manipuler et pour laquelle vous pouvez avoir des questions dans les thèmes CRUD et Indexing
- Privilégiez lors de l'examen une connexion de bonne qualité, stable, et filaire
- Pensez à la contrainte Web-cam et aperçu à 360° de votre espace en début d'examen
- Demandez éventuellement à l'instructeur les éléments pour vous reconnecter en cas de déconnexion
- Veillez au temps qui défile, et choisissez éventuellement un ordre différent de questions en tenant compte de vos forces et des besoins en concentration (les questions dans le thème Aggregation en nécessitent plus que les autres).
Conclusions
Une fois certifié, en dehors du joli diplôme qui vous permettra de prouver votre certification, vous aurez la possibilité d'apparaitre dans un annuaire officiel et de faire figurer l'information dans la section Certifications de votre profil LinkedIn.
L'équipe certification de MongoDB est plutôt à l'écoute et plus ou moins réactive à vos demandes. Un merci particulier à Shannon.
Pour ceux qui auraient besoin d'une facture en bonne et due forme, l'équipe MongoDB (via le mail de contact certification@mongodb.com) pourra répondre à cette attente et vous transmettre une facture.
La valeur de la certification reste très subjective, d'autant plus que le niveau Associate reste un niveau assez modeste (ce qui ne veut pas dire que l'obtention de la certification est triviale). Néanmoins, en attendant l'arrivée du niveau Professional cela reste un bon argument / levier - si possible combiné à un minimum d'expérience - pour saisir ou déclencher des opportunités intéressantes sur la technologie.