Zaterdag 23 november was het dan zover: Masters of Java 2013 vond plaats. Zaterdagochtend op tijd opstaan is niet helemaal het ding van de gemiddelde programmeur, maar na een stevige kop koffie – uiteraard van een Indonesisch eiland, versie 3.1 – kon de strijd beginnen. Dit officiĆ«le NLJUG-evenement vond dit keer plaats op het kantoor van Sogeti te Amersfoort.
Er stond een sterk deelnemersveld opgelijnd: zo was er een groot deel van de top-3 van voorgaande edities vertegenwoordigd. Er waren individuele deelnemers, maar ook een groot aantal bedrijven had teams afgevaardigd en daar soms zelfs een trainingsgame aan vooraf laten gaan. Dat was niet voor niets: de Masters of Java is natuurlijk het officieuze nationale kampioenschap Java-programmeren en er waren leuke prijzen te winnen! Meedoen kon zoals altijd alleen of in duo’s.
Mijn teamgenoot Robert en ik hadden er wel vertrouwen in: we hadden getraind via Project Euler en onze OCJP-certificering was nog vrij recent: dat moest dus wel goed komen. Het concept van de problemen was een combinatie van bestaande code en niet-werkende/ontbrekende elementen: best realistisch als je het vergelijkt met de dagelijkse praktijk dus. Alles zelf oplossen is sowieso geen optie: de tijd is beperkt en hoe sneller hoe meer punten. De eerste vraag was een “opwarmertje”: door een recursieve Map itereren op basis van een keyreeks. Die keyreeks werd aangeleverd als dot-seperated string. Klinkt als een eitje, maar String.split(“.”) gaat toch echt niet werken zonder dubbele backslash. Kortom, voor sommige teams inclusief ondergetekende was de eerste “NullPointer” al binnen.
Daarna kwam een leuke pokeropgave: enige elementen uit een pokerapplicatie ontbraken om te evalueren wie een potje “Texas hold ‘em” had gewonnen. En als je twee 3-of-a-kinds en twee single pairs kan vergelijken is een ontbrekende compareFullHouses() natuurlijk kinderlijk eenvoudig. Toch wel lekker een stukje eerherstel, en dat 14 seconden voor de deadline!
Een ander probleem betrof een bedrijf dat in verschillende periodes een verschillend aantal mensen nodig had. Aan ontslag/aanname zaten kosten verbonden, maar stilzittende mensen kosten ook geld. Op zich werd er een applicatie met een werkend algoritme opgeleverd, maar dat was niet efficiënt genoeg en de taak was dit efficiënt te maken door middel van Memoisation.
Ook was er een opgave waar je het maximaal aantal weggespeelde rijen moest uitrekenen als er een blokje aan een spel Tetris werd toegevoegd. Dat spel werkte echter niet op de normale manier en ik vond dat hopeloos verwarrend. Robert had gelukkig wel tegenwoordigheid van geest en een dikke tien seconden voor tijd waren wij geslaagd.
De strijd aan de top was ongemeen spannend: plaats 1 & 3 hebben bij de laatste opgave nog stuivertje gewisseld. De verdiende winnaars waren uiteindelijk Patrick de Wit en Johan de Jong! Zij gingen met een splinternieuwe quadcopter naar huis! We hebben het even gecheckt: een Raspberry Pi kan ie prima tillen dus het wachten is op een vliegende webserver! Daarnaast zijn zij nu dus officieus Nederlands kampioen Java-programmeren en dat is best iets om trots op te zijn!
De rest van de deelnemers ging ook niet zonder prijs naar huis: er was een grote keuze aan interessante vakliteratuur. Ook Conspect ICT heeft drie boeken ter beschikking gesteld (Pro Spring Webflow). Tevens heeft Conspect iedere deelnemer uitgenodigd voor een presentatie van Russ Miles van Simplicity Itself. Russ geeft een workshop "Building Adaptable Software".
Als aanmoediging voor de volgende edities: de winnaars bewijzen dat jarenlange ervaring echt niet nodig is om hoge ogen te gooien, dus doe mee met de volgende editie! Tevens hebben alle teams punten weten te scoren en is het bovenal ook erg leuk om mee te doen. En zeg nou zelf: winnen is toch belangrijker dan meedoen? Of was het andersom? In ieder geval zal dit event vanaf nu in principe weer jaarlijks door NLJUG georganiseerd worden.
Een filmverslag volgt binnenkort en zal te vinden zijn op de site van NLJUG.
Verder rest er niets meer dan Sogeti te bedanken voor de organisatie dit jaar en we hopen jullie volgend jaar te zien op een even spannende editie!