Java-certifiering

Astrakan om certifieringsgrundande Java-kurser

De grundläggande certifieringstesterna för Java-utvecklare är rena kunskapstester. Klarar du testet har du en god grundförståelse, självklart en viktig förutsättning för en bra Java-programmerare. Men det behövs fler egenskaper för att omsätta de teoretiska kunskaperna till fungerande programkod.

Våra kurser är praktiskt orienterade och lägger fokus på att du ska bli en bra Java-programmerare. Praktiska färdigheter får du effektivast genom att öva med professionell handledning. Det är dessutom roligt och det är inte helt enkelt att få våra kursdeltagare att göra avbrott för kaffe eller lunch då de väl kommit igång med övningarna.

Vill du dessutom certifiera dig har vi gjort en sammanställning här intill där du kan se hur ceritfieringens ämnesområden motsvaras av våra olika kursavsnitt och vilka självstudier som behövs för att klara testet.

Ring oss gärna 010-588 60 20!

Vi vill också förtydliga att Astrakan inte är ett testcenter.  Vi är ett utbildningsföretag som bland annat har kurser inom Java-området, så vi informerar om Java-certifiering som en ren service till våra kunder.  Du kan hitta testcentra nära dig via den här sökmotorn.

Lycka till med certifieringen!


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.

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:

http://education.oracle.com/pls/web_prod-plq-dad/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)

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 Java-programmerare 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.

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 sammanställningen ovan (de 7 ämnesområdena).

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

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.

Fråga oss gärna! 010-588 60 20