Java-certifiering Översikt Certifiering för Java-utvecklare har funnits ända sedan 1990-talet, då Java var ett ungt programspråk. Sun Microsystems, som ursprungligen utvecklade programspråket, har slagit fast hur certifieringen ska gå till. Certifieringen utförs av Sun eller testcentra som utsetts av Sun. Sedan Oracle i januari 2010 förvärvat Sun Microsystems har Oracle tagit över denna styrande roll. Det är vanligt att prata om Java-certifiering som en enda certifiering, men i praktiken handlar det om 13 olika certifieringar, beroende på vilken av de tre Java-arkitekturerna (Java Standard Edition, Java Enterprise Edition och Java Micro Edition) det gäller, version av Java samt vilken yrkesroll det avser. De 13 som förekommer, med både deras nuvarande och tidigare namn, är: Oracle Certified Associate, Java SE 5/SE 6 Sun Certified Java Associate (SCJA) Oracle Certified Professional, Java SE 5 Programmer Sun Certified Java Programmer (SCJP), J2SE 5.0 Oracle Certified Professional, Java SE 6 Programmer Sun Certified Java Programmer (SCJP), Java SE 6 Oracle Certified Master Java SE 6 Developer Sun Certified Java Developer (SCJD) Oracle Certified Professional, Java EE 5 Web Component Developer Sun Certified Web Component Developer (SCWCD) Oracle Certified Professional, Java EE 5 Business Component Developer Sun Certified Business Component Developer (SCBCD) Oracle Certified Professional, Java EE 5 Web Services Developer Sun Certified Developer for Java Web Services (SCDJWS) Oracle Certified Master, Java EE 5 Enterprise Architect Sun Certified Enterprise Architect (SCEA) Oracle Certified Expert, Java Platform, Enterprise Edition 6 Web Services Developer Oracle Certified Expert, Java Platform, Enterprise Edition 6 JavaServer Pages and Servlet Developer Oracle Certified Expert, Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Oracle Certified Expert, Java Platform, Enterprise Edition 6 Java Persistence API Developer Oracle Certified Professional, Java ME 1 Mobile Application Developer Sun Certified Mobile Application Developer (SCMAD) De mer grundläggande certifieringarna genomförs i en testlokal under strikt kontrollerade former på begränsad tid och bedöms maskinellt. De mer avancerade kräver inlämningsuppgifter som bedöms manuellt (t ex en löst programmeringsuppgift plus en uppsats som motiverar ens designval). Den certifiering som de flesta menar när de endast talar om Java-certifiering är den tredje i översikten, dvs Oracle Certified Professional, Java SE 6 Programmer (f d Sun Certified Java Programmer) eller den andra, dvs motsvarande certifiering för Java SE 5. Detta är den certifiering som varit mest populär i Sverige. Resten av detta dokument kommer att handla om den. Det finns i skrivande stund (augusti 2011) ingen certifiering för Java SE 7. Programmera i Java/5.0 Copyright 2011 HB Bohel Smådatorprodukter Sida 1
Oracle Certified Professional, Java SE 6 Programmer De delar av Java och Javas standardbibliotek som ingår i testet för den här certifieringen beskrivs i detalj i Oracles beskrivning av certifieringen (hela adressen på en rad): http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=41&p_exam_id=1z0_851 De sju olika ämnesområdena motsvarar följande kursavsnitt i våra kurser: 1 Declarations, Initialization and Scoping Programmera i Java, kapitel Grundläggande språkelement Programmera i Java, kapitel Klasser Programmera i Java, kapitel Vektorer Programmera i Java, kapitel Klassegenskaper Programmera i Java, kapitel Arv Programmera i Java, kapitel Gränssnitt och programstruktur Programmera i Java, kapitel Uppräknade datatyper Avancerad Java, kapitel Introduktion samt inre klasser (inre klasser) 2 Flow Control Programmera i Java, kapitel Styrstrukturer Programmera i Java, kapitel Objekt (NullPointerException) Programmera i Java, kapitel Vektorer (indexering utanför vektorer, förenklad for-sats) Programmera i Java, kapitel Arv (ClassCastException) Programmera i Java, kapitel Uppräknade datatyper (switch-satsen) Programmera i Java, kapitel Felhantering och in/utmatning (felhantering) Programmera i Java, kapitel Datastrukturer och parametrisering (förenklad for-sats) Avancerad Java, kapitel Felsökning och loggning (assert-satsen, AssertionError) 3 API Contents Programmera i Java, kapitel Standardbiblioteket Programmera i Java, kapitel Objekt (String) Programmera i Java, kapitel Felhantering och in/utmatning (in/utmatning) Programmera i Java, kapitel Grafiska användargränssnitt (StringBuilder) Avancerad Java, kapitel Nationell anpassning Ej i någon kurs: reguljära uttryck, klasserna Pattern och Matcher, metoden String.split 4 Concurrency Programmera i Java, kapitel Parallell exekvering Avancerad Java, kapitel Parallell exekvering 5 OO Concepts Objektorientering, hela kursen Programmera i Java, kapitel Klasser Programmera i Java, kapitel Klassegenskaper Programmera i Java, kapitel Arv Programmera i Java, kapitel Gränssnitt och programstruktur (inkapslingsnivåer) 6 Collections / Generics Programmera i Java, kapitel Datastrukturer och parametrisering Avancerad Java, kapitel Parametriserade klasser och gränssnitt Programmera i Java, kapitel Objekt (== och equals) Programmera i Java, kapitel Standardbiblioteket (equals och hashcode) Ej i någon kurs: NavigableSet, NavigableMap 7 Fundamentals Programmera i Java, kapitel Grundläggande språkelement (operatorer) Programmera i Java, kapitel Objekt (skräpsamling, == och equals) Programmera i Java, kapitel Klasser (inkapsling, argumentöverföring, finalize) Programmera i Java, kapitel Vektorer (kommandoradsargument) Programmera i Java, kapitel Arv (arvsrelationer) Programmera i Java, kapitel Gränssnitt och programstruktur (package, import, classpath, JAR) Programmera i Java, kapitel Standardbiblioteket (equals) Sida 2 Copyright 2011 HB Bohel Smådatorprodukter Programmera i Java/5.0
Hur går ett certifieringstest till? Certifieringen utförs i en av ett antal testlokaler i Sverige som auktoriserats av Sun/Oracle. Man bokar tid och plats i förväg. Det finns en avgift, och man betalar med en voucher som man beställer i förväg. Tester i Sverige måste betalas med en voucher köpt i Sverige. Testlokalen är utrustad med ett antal datorer, en per deltagare som bokat plats i testet. Lokalen övervakas av en testledare. Testet är helt på engelska och ska utföras på begränsad tid. Inga hjälpmedel är tillåtna, dvs du får inte ta med dig böcker, anteckningar, dator, handdator, mobiltelefon, USB-minnen eller minneskort. Det enda som du får ha med dig är pennor, dryck och ett enklare mellanmål (t ex ett äpple). Räkna med att det du tar med dig kommer att undersökas. Eftersom testet är helt på engelska, brukar det finnas en allmän engelsk-svensk ordbok i testlokaler i Sverige. Räkna dock endast med att du kan slå upp ord i allmän engelska i den ordboken. Specifika Java-termer på engelska måste du redan känna till. Testet består av ett antal frågor som ska besvaras inom tidsramen för testet. Frågorna för varje deltagare slumpas fram från en stor databas, så två deltagare som tar testet samtidigt får inte samma frågor, och om du gör om testet vid ett senare tillfälle kommer du inte att få samma frågor som förra gången. Du måste besvara minst en bestämd procentuell andel av frågorna korrekt för att klara testet. (I nuvarande version består testet av 60 frågor som ska besvaras på 150 minuter. Minst 61 % måste vara korrekt besvarade.) Eftersom testet ska kunna granskas maskinellt, kan frågorna endast vara av vissa typer: frågor med flera svarsalternativ där ett alternativ är korrekt frågor med flera svarsalternativ där flera alternativ är korrekta frågor där ett kort svar ska skrivas in, t ex ett reserverat ord, ett namn eller ett numeriskt värde frågor där svaret följer en helt bestämd syntax, t ex en deklaration av en variabel eller en metod frågor där du ska placera kodfragment på tomma platser i källkoden med dra-och-släpp-teknik Däremot förekommer t ex inte frågor där du ska skriva en lång motivering eller ett längre stycke källkod, eftersom dessa skulle vara svåra att granska maskinellt. Datorn du sitter vid under testet har inte tillgång till kompilator eller andra Java-utvecklingsverktyg, ingen språkdefinition och ingen dokumentation av standardbibliotekets API:er (programgränssnitt), utöver det som ingår i uppgiftsformuleringarna. Det finns ingen tillgång till Internet. Du måste alltså ha de kunskaper som krävs i huvudet. Tiden för hela testet är begränsad, däremot inte tiden per fråga. Vissa frågor kan gå väldigt snabbt att besvara, andra kan t ex kräva att du analyserar ett stycke källkod och därmed ta betydligt längre tid. Räkna med att det kan bli ont om tid. Det finns en möjlighet att märka frågor som du vill komma tillbaka till och granska på nytt i mån av tid. Efter fullbordat test får du reda på om du klarat testet, och hur många procent av frågorna som var korrekt besvarade. Du får inte reda på vilka av dina svar som var korrekta eller felaktiga, och du får inte berätta för andra vilka frågor du fått. Klarar jag testet om jag är redan är en bra Java-programmerare? Kanske, men inte alls säkert. Testet sker i en miljö som är väldigt olik den en vanlig Java-programmerare är van vid nuförtiden. Den som arbetar professionellt med Java idag omger sig med mängder av moderna utvecklingsverktyg, dokumentation och ständig tillgång till Internet. Att plötsligt ställas utan allt detta är för många en chockerande upplevelse. Det är alltså som regel nödvändigt även för en erfaren Javaprogrammerare att förbereda sig inför ett test. Är jag en bra Java-programmerare om jag klarar testet? Om du klarar testet har du ett mycket god grundförståelse för Java och centrala delar av Javas standardbibliotek, och det är en viktig egenskap hos en bra Java-programmerare, men naturligtvis inte den enda. En bra programmerare måste besitta fler goda egenskaper, t ex analytisk förmåga, förmåga att arbeta i ett projekt och att kunna kommunicera sina arbetsresultat. Men det är utan tvekan en god start. Programmera i Java/5.0 Copyright 2011 HB Bohel Smådatorprodukter Sida 3
Hur förbereder jag mig för testet? Även om man tillåts ha ganska många felaktiga svar, räknas testet som svårt. Det är inte ovanligt att vana Java-programmerare misslyckas vid första försöket. Därför är det klokt att förbereda sig ordentligt inför ett certifieringstest. Det finns många resurser att utnyttja: Kurser Våra kurser ger en solid teoretisk grund att stå på inför fortsatta förberedelser, så de är ett utmärkt första steg. Det är tre kurser som kan vara relevanta inför ett certifieringstest för Java SE 6: Kursen Objektorientering, för dem som saknar tillräckliga grunder i det objektorienterade synsättet Kursen Programmera i Java, samtliga avsnitt utom det som rör användargränssnitt Kursen Avancerad Java, i första hand avsnitten om: - inre klasser - nationell anpassning - parallell exekvering - felsökning med assert-satsen - parametriserade klasser och gränssnitt För en detaljerad översikt av hur dessa kurser motsvarar de olika testavsnitten, se sida 2. För dig som redan gått kurserna är kursmaterialet en utmärkt bas för repetition av teorin. Titta inte enbart på bilderna, utan läs även den beskrivande texten. Ofta innehåller den fler detaljer än vad som kan tas upp under kursen, och dessa detaljer kan vara särskilt intressanta om du läser inför ett certifieringstest. De flesta av våra kurser innehåller fler övningar än vad flertalet hinner med under kurstillfället. Dessa extra övningar kan användas för att förstärka dina kunskaper. Våra kursmaterial innehåller en ordlista över både svenska och engelska termer inom objektorientering i allmänhet och Java i synnerhet. Första halvan av ordlistan är alfabetiskt ordnad efter svenska termer med förklaring på svenska och översättning till motsvarande engelska term. Andra halvan av ordlistan är alfabetisk ordnad efter engelska termer med översättning till motsvarande svenska term. Lär dig de engelska termerna ordentligt testet är helt på engelska! Böcker Det finns särskilda böcker som är avsedda för dem som studerar inför en certifiering. De är ett utmärkt nästa steg. Flertalet av dessa böcker innehåller övningar med frågor som liknar de du kommer att möta under ett verkligt test. En utmärkt bok för certifiering på nivån Oracle Certified Professional, Java SE 6 Programmer (f d Sun Certified Java Programmer) är: Kathy Sierra Bert Bates: SCJP Sun Certified Programmer for Java 6 Study Guide (CX 310-065): Exam 310-065 McGraw-Hill 2008 Du kan läsa boken och genomföra övningar på egen hand, eller i grupp med andra. Flera företag där många ska certifiera sig samtidigt har valt att ordna studiecirklar. Javas språkdefinition Javas språkdefinition är måhända ingen lättsam läsning, men det är nyttigt att bekanta sig med den. Det sätt att uttrycka sig som används här kommer du även att möta i testet. Att läsa den från pärm till pärm är nog för mastigt för att göra ordentlig nytta, men gör till vana att använda språkdefinitionen för att reda ut oklarheter kring vad som är tillåtet och inte i Java! Språkdefinitionen finns tillgänglig i PDF-format på Internet: http://download.oracle.com/javase/cmn/spec_index.html Sida 4 Copyright 2011 HB Bohel Smådatorprodukter Programmera i Java/5.0
Provtester När du närmar dig slutet på dina studier kan det vara mycket nyttigt att genomföra provtester, som försöker efterlikna det verkliga testet så mycket som möjligt. Den bok som refererades ovan innehåller flera kompletta sådana provtester. Ytterligare provtester finns i boken: Bert Bates Kathy Sierra: OCP Java SE 6 Programmer Practise Exams (Exam 310-065) McGraw-Hill 2010 (Observera att denna bok endast innehåller testfrågor, så den är ett komplement inte en ersättning till den förstnämnda boken.) Det finns också företag som säljer provtester via Internet: Enthuware http://enthuware.com Whizlabs http://www.whizlabs.com Provtester är nyttiga på många sätt: De visar vilken nivå din kunskap kommer att testas på. De visar vilka dina svaga punkter är vad du behöver studera noggrannare. De vänjer dig till formen på testet, och du får känna på tidspressen. Provtester är gjorda för att efterlikna riktiga tester, men de får inte använda sig av frågor som förekommer i verkliga certifieringstester. Så bry dig inte om att försöka lära dig svaren på provtesterna utantill just de frågorna kommer inte upp på ditt test! Praktiska tips under testet Kom till testet utvilad, koncentrerad och i tid! Försök att planera in testet en dag som inte redan är full av andra aktiviteter. Är du mest koncentrerad på förmiddag eller eftermiddag? Hitta den tid som passar dig bäst! Läs frågorna noggrant! Vissa frågor kan vara luriga eller dubbelbottnade. Du har ingen kompilator och inga kollegor som hjälper dig att se det du inte ser. Jäkta inte, men håll koll på tiden! Vissa frågor kräver mer tid än andra. Försök klara av varje fjärdedel av frågorna på 20 % av tiden det ger dig 20 % av tiden kvar på slutet att granska det du är osäker på en gång till. Utnyttja möjligheten att märka frågor som du är osäker på, så att du kan granska dem igen om det finns tid över. Om du stöter på en fråga som du absolut inte vet svaret på, tänk då efter om du känner till likartade fall i andra delar av programspråket. Även om det förekommer undantag, är Java ett ovanligt konsekvent uttänkt programspråk, så det är sannolikt att du kan dra nytta av dina kunskaper i andra delar av språket för att hitta fram till rätt svar. Programmera i Java/5.0 Copyright 2011 HB Bohel Smådatorprodukter Sida 5