Aller au contenu
BackJavaTipsTechCertification

Comment j’ai survécu à la certification Oracle Certified Professional: Java SE 17 Developer

Petit guide d'aventure pour la préparation et le passage de la certification Java 17 d'Oracle. Entre la densité de la matière et les pièges diaboliques, le chemin se doit d'être bien préparé.

Oracle Certified Professional Java SE 17 Developer


Yop !
... ou Bonjour à tous, selon votre préférence. :)

Aujourd'hui, je vais vous partager un petit retour d'expérience de mon passage de la certification Oracle Certified Professional: Java SE 17 Developer.

Flashback

Pour être exhaustif, je me dois de préciser que l’auteur de ces lignes (i.e. moi) n’était pas novice en termes de certification Java! En 2014, j’ai passé la certification Java SE 6 Programmer Certified Professional.

Cependant, tant 2014 que Java 6 semblent être des éternités au rythme de l’évolution des technologies et une préparation à partir de zéro était nécessaire pour une assimilation optimale de ce qu’est à présent le langage Java.

À l’époque, on devait se déplacer physiquement dans un centre d’examen, on avait une ardoise et une craie comme brouillon et l’examen durait 2h30 pour 60 questions.

En quoi cela consiste ?


Commençons par les data :

Numéro de référence

1Z0-829

Nombre de questions

50

Durée

90 minutes

Seuil de réussite

68%

Un élément important à connaître concernant le déroulé de l'examen est qu'il se fait via un écran, mais il pourrait tout à fait se faire sur papier ! En effet, pour la majorité des questions, vous recevrez un bout de code que vous ne pourrez ni coller, ni compiler, ni exécuter. Vous devrez identifier si le code compile et déterminer son output parmi plusieurs propositions. Pour résumer, l’examen de certification teste vos connaissances théoriques des règles et des fonctionnalités de Java en vous demandant de traiter (compiler et exécuter) de tête 50 bouts de code avec une moyenne de 1 minute et 48 secondes par question.

Notons que, s'il est garanti d'avoir des questions relatives aux dernières fonctionnalités ajoutées dans le langage (à l'exception des preview features), le champ des questions potentielles est très large.

Pour plus d’informations, vous trouverez ici les sujets couverts par l’examen
https://education.oracle.com/fr/catalogue-de-produits-ouexam-pexam_1z0-829/pexam_1Z0-829

À ce stade, je pense que le plus simple est encore de vous illustrer cela avec ces deux exemples :

// Quelles lignes sont valides (plusieurs réponses possibles) ?

public void test() {
    var spring = null;
    var fall = "leaves";
    var evening = 2; evening = null;
    var day = 1/0;
    var fall = 2, autumn = 2;
    var myPrecious; myPrecious = "Gollum";
}

A. var spring = null;
B. var fall = "leaves";
C. var evening = 2; evening = null;
D. var day = 1/0;
E. var fall = 2, autumn = 2;
F. var myPrecious; myPrecious = "Gollum";

// Par quoi remplacer XXX pour que le code compile ?

public class Wildcard {
    public void showSize(List<?> list) {
        System.out.println(list.size());
    }
    public static void main(String... args){
        Wildcard card = new Wildcard();
        //XXX
        card.showSize(list);
    }
}

A. List<?> list = new HashSet<String>()
B. ArrayList<? super Date> list = new ArrayList<Date>()
C. List<?> list = new ArrayList<?>()
D. List<Exception> list = new LinkedList<java.io.IOException>()
E. ArrayList<? extends Number> list = new ArrayList<Integer>()
F. Aucun des propositions

Ces exemples sont tirés du livre “Oracle Certified Professional: Java SE 17 Developer Study Guide” par Scott Selikoff et Jeanne Boyarsky.


Si cela ne vous semble pas si simple au premier abord, c'est normal. Il est notoirement connu que la certification Java nécessite une étude particulière, même si l'on est un professionnel du domaine.

De l'étude, des exercices, plusieurs plantages sur des examens à blanc, tel est le parcours de ceux qui se préparent à cette certification. Mais pourquoi la faire alors ?

C’est vrai ça, pourquoi faire cette certification ?


Les raisons sont multiples et variées :

  • Cela donne un attrait en plus à votre profil professionnel et cela vous donne notamment un moyen de vous différencier des concurrents lorsque vous chercherez un emploi ou une mission.
  • C'est bon pour l'ego. 😄
  • C'est l'occasion d'approfondir vos connaissances d'un langage populaire utilisé à travers le monde.
  • Vous adorez collectionner les badges.
  • Vous cherchez quoi publier sur LinkedIn.
  • Vous vouliez vous former comme barista mais vous vous êtes trompé d'inscription.

Au-delà de toutes ces raisons légitimes, l'étude préalable au passage de la certification permet aux développeurs de comprendre plus en profondeur le fonctionnement, la philosophie et les limitations du langage Java.

Vous n'allez pas être évalué sur la qualité d'un code que vous allez produire, vous allez être évalué sur votre compréhension de comment le compilateur et la JVM vont compiler puis exécuter un code.
Vous ne devez pas savoir “comment coder proprement" en Java, vous allez devoir être la JVM.
Java ne sera plus un outil que vous utilisez parmi tant d'autres et assisté par votre IDE, vous le maîtriserez.
Potentiellement, vous serez même capable de coder dans le bloc-note pour ensuite compiler en ligne de commande !

Par conséquent, quelle que soit votre raison initiale, elle devra être suffisamment solide pour étudier durant un laps de temps assez long (en fonction de vos disponibilités) et ainsi préparer le passage de la certification. Certes, elles ont une haute valeur sur le marché de l'IT et offrent à son titulaire la gloire, l'argent, le métier de vos rêves et le retour de l'être aimé (ou alors j'ai confondu avec une autre publicité), mais la difficulté de la préparation à l'examen est à la hauteur des bénéfices attendus. 🙂

Enfin, si vous aimez l'écosystème Java et que vous appréciez comprendre une matière en profondeur, vous allez malgré tout aimer le voyage et savourer le soulagement de lire "Passed" à la fin de votre examen. 🤩

Se préparer


Vu la variété des questions possibles, le côté "piégeux" de certaines questions et le timing moyen d'une minute et 48 secondes par question, il est hautement recommandé de se préparer avant de tenter de passer l'examen de certification. Vous allez devoir être capable de répondre rapidement et sans que le doute ne plane sur vos réponses. S'il est possible de revenir sur chacune des questions pour y réfléchir une seconde fois, en pratique, le chrono ne vous le permettra temporellement pas.

Voici 3 moyens de préparation par ordre décroissant d’importance.

Les livres

Bien que la liste des sujets couverts soit publique, il est extrêmement utile de se baser sur un livre de référence. Cela vous permettra, d'une part, de centraliser les notions théoriques à connaître pour l'examen et, d'autre part, ils contiennent plusieurs tests à blanc vous permettant de vous auto-évaluer.

Pour ma part, j’ai basé mon étude sur le livre “Oracle Certified Professional: Java SE 17 Developer Study Guide” par Scott Selikoff et Jeanne Boyarsky. Ce livre est structuré en 15 chapitres d'environ 60 pages chacun. Chaque chapitre couvre un ensemble de sujets cohérents à connaître pour l'examen et commence chacun de ces sujets par un rappel théorique avant d'illustrer certains exemples tordus que l'on pourrait rencontrer à l'examen. Chacun de ces chapitres se clôture par une série de 20 à 30 questions qui vous permettra d'évaluer votre connaissance du chapitre parcouru.

Ne passez pas l’introduction du livre ! Ce dernier contient un test d'auto-évaluation qui vous permettra d'identifier les sujets de l'examen à réviser en priorité... mais ça, c'est la partie politiquement correcte. En réalité, vous allez prendre la raclée de votre vie ! 😁 Une fois votre ego bien malmené, vous allez réaliser qu'il nous reste toujours quelque chose à apprendre et vous allez pouvoir commencer le voyage initiatique qui vous mènera à la tant convoitée certification.

Notez que l’important n’est pas de réussir ou de rater (que cela soit le test d’auto évaluation ou les exercices de fin de chapitre), l’important est de comprendre le type de questions et de pièges que l’on peut rencontrer à l’examen et de continuer à apprendre.

Welcome to the learning world

Les exercices

En plus du livre, je vous conseille de tester votre compréhension de la matière via de petits bouts de code. Cela permet de tester soi-même certains points théoriques qui pourraient rester flous sinon.
Comment cela, je ne peux pas ajouter d’Integer à une ArrayList<? extends Integer> ?

Cela vous permet d’aller encore plus loin en combinant divers points de la matière qui ont été vus séparément.
Ok, var integ = 10____00 fonctionne mais est-ce le cas pour Integer.valueOf(10____00); ?

Personnellement, mes outils ont été les suivants :

  • Le bloc-note pour 99% de mes exercices ;
  • La ligne de commande pour compiler et exécuter mes codes ;
  • IntelliJ Community Edition pour les exercices relatifs au Java Platform Module System.

À titre personnel, je n’ai correctement compris les comportements des wildcards génériques (ArrayList<? super Integer>) ou de certains comportements de Stream (reduce notamment) que via des exercices personnels.
Finalement, on peut considérer que j’ai écrit quelques tests fonctionnels du langage Java. 😁

L’étude collaborative

Une dernière méthode favorisant la montée en connaissance est l’étude collaborative : Créez ou rejoignez un groupe ayant le même objectif que vous afin de pouvoir y poser vos questions d’approfondissement.

Peut-on connaître la taille de la String pool de manière dynamique ?
Peut-on afficher à l’exécution les String qui sont actuellement dans la String pool ?
Peut-on définir des lambdas dans une lambda ?
sont des questions qui vous traverseront peut-être la tête durant votre étude même si elles ne font pas partie du scope.
Le fait de partager ces questions et d’échanger dessus vous permettra d’ancrer d’autres points plus fondamentaux de la matière (comme la String pool où l’inférence de type d’une lambda) et de vous en souvenir le jour de l’examen.

Pour mon étude, je ne l'ai pas fait et rétrospectivement, je pense que c'est une erreur.

Le temps

Finalement, l’élément qui sera crucial durant votre étude sera le temps que vous aurez à lui accorder.

À titre personnel, j’y ai consacré 1 mois : un jour par chapitre du livre (3 semaines en tout) suivi d’une semaine de consolidation. Cependant, j'ai un profil plutôt slow learner et il est certainement possible de le faire en moins de temps si vous n’avez pas d’autres responsabilités professionnelles en parallèle.
Si vous ne pouvez y consacrer qu’une heure par jour, comptez une semaine par chapitre et donc entre 3 et 4 mois avant de passer l’examen.
L’important, comme souvent lors d’une étude théorique, est la régularité. Cela vous permettra de ne pas oublier le dernier chapitre étudié entre chaque session d’étude.

L’examen

C’est bon, le jour J approche.

Le stress monte

Vous êtes prêt … ou le temps que vous pouviez y consacrer commence à expirer. Quoi qu'il en soit, il est temps de commencer à penser à l'examen en lui-même.

Commander le voucher

Parfois, les difficultés surviennent là où on les attend le moins.

  1. Pour pouvoir passer l'examen, il vous faudra préalablement acheter un voucher. J'ai trouvé l'ergonomie générale de cette expérience assez mauvaise. Un voucher pouvant être utilisé pour plusieurs examens, il est nécessaire de vérifier dans les détails de chaque proposition lequel convient effectivement à l'examen que vous souhaitez passer ;
  2. Si vous achetez le voucher au nom d'une société, il sera nécessaire de créer un compte utilisateur additionnel sur le site d'Oracle ;
  3. Une fois le voucher acheté, vous devrez attendre 48h afin qu'Oracle valide l'achat ;
  4. Une fois le voucher validé, il vous faudra l'assigner à un compte Oracle … donc a priori vous-même, mais cette étape reste malgré tout obligatoire ;
  5. Et enfin, vous pourrez réserver une date pour le passage de l'examen.

Si vous vous y prenez à la dernière minute (comme moi), le voucher acheté jeudi a été validé lundi et la première disponibilité pour l'examen était le … jeudi suivant. Une semaine de délai donc.

Booker l’examen

Une fois le créneau de passage réservé pour l’examen, vous recevrez un mail vous en donnant les consignes :

  • Check-in 30 minutes avant ;
  • Préparer 2 pièces d’identité distinctes ;
  • Installer un logiciel de navigation sécurisé anti-fraude ;
  • Installer le logiciel de visioconférence (Zoom).

Vu que les examens sont à présent en ligne, vous serez tout au long de votre session dans une room Zoom où votre webcam devra être allumée tout du long. Il vous sera donc nécessaire de s’assurer d’avoir une connexion Internet optimale durant environ 2h.

Juste avant l’examen

Les derniers jours seront stressants. Malgré les lectures et relectures, vous aurez l’impression de tourner en rond, de ne rien apprendre de nouveau. Cela vous rendra d’autant chèvre que vous continuerez à tomber dans des pièges qui vous sembleront évident au lecture du correctif.
Ce sentiment, je l’ai vécu. La lecture d’un de mes anciens billets de blog m’a rappelé que c’était également le cas en 2014. Comme quoi, certaines choses ne changent pas :D

Capsule temporelle de mon expérience d’avril 2014

Le jour J

Attention, vu le timing serré et la difficulté de ne pas tomber dans les divers chausse-trappes que vous rencontrerez, je déconseille d'enchainer les examens blancs avant l'examen au risque d'être sujet à des fautes d'inattention.

Conformément aux instructions du mail, je me connecte 30 minutes à l’avance.
Mon browser sécurisé fonctionne, mon zoom aussi. Je peux commencer l’examen avec 30 minutes d’avance si je me sens prêt.

Je note cependant qu' avoir accès à l’identité des participants qui passent en même temps que moi sur la session Zoom ne doit pas être RGPD friendly. 😁

Je me lance.
Le chrono se lance : 1h30.
Mais c’est quoi cette première question ???
Allez, on se calme, on respire et on réfléchit.

Il reste 45 minutes et 25 questions !
Le timing est à mes trousses, mais ça va, il n’y a pas beaucoup de questions que je marque comme étant “à relire avant de soumettre”.

Ouf ! J’ai répondu à tout !
Il me reste finalement 10 minutes pour parcourir les questions que j’avais mises de côté. Ma réflexion ne change pas, pas de révélation de dernière minute. Je prends la réponse qui me paraissait déjà la plus probable il y a une heure de cela.

Êtes vous sûr de soumettre vos résultats ?
Gloup ! Allez, c’est mon dernier mot (Jean-Pierre).
Processing
.
.
.
Processing . . .

PASSED

🎉🎉🎉


Conclusion


Arrivé à la fin du chemin, on peut se poser rétrospectivement la question : “cela en valait-il le coup ?”.
À cela, je répondrais “Oui ! Encore et toujours oui.” car, au-delà de la récompense immédiate qu’est la certification en elle-même, c’est la maîtrise acquise qui importe réellement.

Comme tout voyage, au final, l’important n’était pas la destination mais tout ce que j’ai appris sur le chemin.


Alors … si vous êtes intéressé ... bon voyage !

Remerciements spéciaux à SFEIR Belgique pour m'avoir permis de préparer et passer cette certification.

Dernier