De waarde van Java certificering
Eind 2016 was ik in een discussie verwikkeld met twee collega’s over het behalen van een officieel Java certificaat. De één was begonnen met de studie voor OCA Java SE 8 en de ander had in het verleden SCJP behaald voor J2SE 1.4. Beide waren het met elkaar eens dat het een behoorlijk pittig examen was. Ik was er niet van overtuigd dat iemand die gecertificeerd is, automatisch als vakman beschouwd kan worden; de stof is zo geleerd, maar ook zo weer vergeten. Tijdens deze discussie drong het tot me door dat ik redelijk kritisch ben, maar dat ik niet uit ervaring kan spreken. Dus zit er maar één ding op: zelf het certificaat halen.
De studie
Java certificering komt in verschillende vormen. De algemene certificering bestaat uit OCA en OCP. Daar bovenop kun je certificaten halen voor specificaties op het gebied van JEE. Ik heb ervoor gekozen de algemene OCP certificering te doen. Je moet eerst je OCA certificaat halen, voor je het OCP examen mag afleggen.
Ik heb twee boeken [1] besteld om me via zelfstudie thuis voor te bereiden. Rond de kerstdagen van 2016 vallen ze op mijn deurmat. Bij elkaar ruim 1000 bladzijden. Oké, dit gaat wel even duren. Ik maak een planning en denk dat ik in het eerste kwartaal van 2017 de materie doorgewerkt kan hebben.
Het is eind maart als ik het tweede boek dichtsla. Uit! Elk hoofdstuk in de boeken wordt afgesloten met een test om voor je zelf te bepalen of je de stof genoeg beheerst. Volgens de schrijvers komen de vragen overeen met het niveau van het examen. En dan kun je maar één conclusie trekken: er moet ten minste één sadist tussen die examinatoren gezeten hebben. Want elke vraag lijkt een zorgvuldig geconstrueerde valkuil te zijn, bedoeld om jou als OCP-er in spe, te laten struikelen. Je moet denken als een compiler, en dat is iets wat ik niet gewend ben, met dank aan alle geweldige tooling en IDE’s van tegenwoordig.
Examens
Al met al denk ik dat ik dat het OCA zonder extra inspanning haalbaar moet zijn. OCP bevat een aantal onderwerpen, waar ik te weinig praktijkervaring mee heb, of waar mijn ervaring te ver in het verleden ligt. Denk bijv. aan Concurrency, Fork-Join framework, Paths en de Java 8 functionele uitbreidingen. Hier moet ik me nog wat verder in verdiepen. Afijn, ik heb genoeg vertrouwen om het examen voucher aan te schaffen voor OCA (ze vervallen na zes maanden). Dat valt nog niet mee, als je niet beschikt over een creditcard. Maar na een iteratief proces van bellen en wachten en mailen en wachten is het toch gelukt om via een bankoverschrijving een voucher bij Oracle te bemachtigen. Op 16 juni 2017 doe ik examen OCA en slaag met een score van 91% .
Inmiddels is op het werk de druk flink toegenomen in verband met deadlines en ambities van het bedrijf, en resteert mij weinig tijd om OCP verder op te pakken. Uiteindelijk besluit ik om aansluitend aan een weekje Devoxx in Antwerpen twee weken vrij te nemen om er eens goed voor te gaan zitten. Op vrijdag 24 november 2017 slaag ik voor mijn OCP met een score van 82%.
Conclusie
Ook de ervaren Java ontwikkelaar zal een behoorlijke inspanning moeten leveren om de OCP Java certificering te halen. Veel lezen, voorbeeldjes controleren in je IDE, proefexamens maken, enzovoort. Wat het je oplevert is extra scherpte en het opfrissen van je kennis. Ik merk hier in de praktijk met name voordeel van, wanneer ik code van collega’s review. Ook kan het een (hernieuwde) kennismaking zijn met onderdelen van het Java platform die je in je dagelijkse werkzaamheden niet of nauwelijks gebruikt. En die je dus ook weer snel zal vergeten, als je ze niet gaat gebruiken. Wel kan het helpen om een volgende keer niet de vertrouwde oplossingen toe te passen, maar de ‘nieuwe manier’: met Streams en lambda’s, met NIO.2 Paths of de nieuwe datetime API’s.
Voor beginnende Java ontwikkelaars is certificering geen goede manier om de taal (beter) te leren kennen. De lesboeken en examens staan vol met voorbeelden van hoe het niet moet. Zoals: éénletterige variabele namen, onleesbare if-else of try-catch constructies, etc. Zoals eerder gezegd, je leert je te verplaatsen in de compiler, en niet in een teamgenoot die ook de code moet lezen en begrijpen.
Voor een werkgever of opdrachtgever kan het helpen om een snelle schifting in CV’s te maken, bijv. als je op zoek bent naar ontwikkelaars met kennis van de functionele toevoegingen in Java 8 (lambda’s en de Stream-APIs). Bekijk wel altijd goed voor welke Java versie de certificering geldt.
Al met al heeft certificering mij wel wat opgeleverd, maar weegt het mijns inziens niet op tegen de tijdsinvestering. En ik denk nog steeds dat wel- of niet Java gecertificeerd zijn geen graadmeter is voor vakmanschap.