Zeyomir's Blog Bo piękniej jest wiedzieć coś o wszystkim…

10Paź/13Off
» «

Egzamin na OCAJP7

W dniu dzisiejszym przystąpiłem do egzaminu 1Z0-803 (Java SE 7 Programmer I), który pozwala na uzyskanie certyfikatu OCAJP7 (Oracle Certified Associate, Java SE 7 Programer). Egzamin zdałem z wynikiem 95% :) . Poniżej parę refleksji.

Trochę historii

Jest to pierwszy na liście certyfikatów znajomości Javy. Za czasów Sun i Java6 nazywał się SCJA6 i nie był nawet wymagany (można było podejść od razu do dużo ciekawszego i bardziej rozpoznawanego SCJP6). W moim odczuciu był kierowany raczej do studentów, którzy dzięki niemu chcieli sobie pomóc w znalezieniu pierwszej pracy.

Czasy się jednak zmieniły i wraz z przejęciem Suna przez Oracle egzamin ten stał się obowiązkowy (mam wrażenie, że przy okazji cena również poszła w górę). Niektórzy twierdzą, że lepiej zdać stare SCJP6 (bo wciąż się da), a potem podejść od razu do egzaminu na OCPJP7 jako 'uaktualnienie'- podobno wychodzi taniej. Za mój egzamin płaciła jednak firma więc nie zgłębiałem tematu.

O samym egzaminie

Na egzamin umawiamy się przez stronę pearsonvue.com. Koszt to około 800 zł ($245). Do wyboru mamy kilka centrów egzaminacyjnych w okolicy, z terminami bywa mocno różnie (raz najbliższy termin jest za pół roku, raz za tydzień). Po ustaleniu terminu, możemy go do woli przekładać (bez ograniczeń ilościowych, bez konsekwencji finansowych), byle tylko zrobić to minimum 24h przed zaplanowanym egzaminem- w przeciwnym wypadku zostanie naliczona dodatkowa opłata. Przed przystąpieniem do egzaminu należy jeszcze założyć Oracle Web Account (wszystko będzie w mailu :) ).

Egzamin nie ma żadnych wymagań które trzeba spełnić przed przystąpieniem do niego. Jak już pisałem- jest to pierwszy certyfikat ze ścieżki certyfikacyjnej Javy, więc nie ma żadnych egzaminów które trzeba zdać wcześniej. Nie ma też żadnego obowiązkowego szkolenia/kursu. Można przystąpić do niego 'z marszu'. Ja jednak odradzam takie rozwiązanie.

Co prawda egzamin nie jest trudny (obejmuje podstawowe części języka, podstawy dziedziczenia etc, spory nacisk kładziony jest na to co się w języku zmieniło w porównaniu do wersji 6), ale mimo wszystko szanse na zdanie go bez przygotowania oceniałbym raczej na marne. Jak zatem się przygotować? O tym za chwilę.

Do rozwiązania jest 90 pytań, w dużej części są to pytania wielokrotnego wyboru, często podchwytliwe. Jedno które utkwiło mi w pamięci (nie z egzaminu, z przygotowań) brzmiało mniej-więcej tak:

Mamy plik Main.java o podanej zawartości:

public class Main{
  public int main(String[] args){
    System.out.println("main");
  }
}

Co się stanie jeśli wydamy z konsoli polecenie

javac Main.java
java Main

a) wypisane zostanie "main"
b) nic nie zostanie wypisane
c) rzucony zostanie wyjątek (Exception)
d) żadne z powyższych.

Oczywiście metoda main jest źle zadeklarowana (powinna być statyczna i zwracać void, to nie C++), więc nie ma prawa się uruchomić. Powiecie, że w takim razie poleci wyjątek? A figa z makiem. Poleci Error ;).

Na rozwiązanie wszystkich pytań mamy 140 minut. Czasu jest akurat tyle ile potrzeba jeśli jest się przygotowanym- dłuższe zastanawianie nad kilkoma pytaniami skutkować będzie tym, że czasu nam zabraknie. Żeby zdać, należy uzyskać wynik minimum 77%.

Do dyspozycji mamy kartkę papieru i długopis, zapewnione przez centrum egzaminacyjne. Poza tym nie wolno nam mieć przy sobie niczego więcej (no, poza dowodem osobistym, który musimy okazać przed przystąpieniem do egzaminu).

Wynik możemy sprawdzić na swoim koncie Oracle po kilku godzinach. Wersję elektroniczną możemy pobrać po około 48h z portalu certview.oracle.com. Drukowaną kopię certyfikatu powinniśmy otrzymać w ciągu kilku tygodni pocztą.

Przygotowania

Opcji przygotowania się do egzaminu jest kilka. Możemy wybrać jeden z oferowanych przez Oracle typów treningu (self-study, live virtual class, training on demand, classroom training). Nie jestem w stanie nic o nich powiedzieć, oprócz tego, że wszystkie są diabelnie drogie.

Mamy też dość spory wybór książek. Ja dostałem do ręki OCA Java Programmer 7 Study Guide wydawnictwa Oracle Press i... szczerze mówiąc- zawiodłem się bardzo. W moim odczuciu książka może i pozwalała poznać wymagane zagadnienia, ale na pewno nie na poziomie pozwalającym zdać egzamin.

Sytuację ratują egzaminy próbne. Ja miałem dostęp do whizlabs.com (pewnie są też inne) i bez tego chyba bym nie zdał (a na pewno nie tak wysoko). Za przystępną cenę (jeśli dobrze pamiętam to $40) otrzymujemy zestaw testów przygotowawczych (po jednym do każdego z wymaganych zagadnień), kilka zestawów "przekrojowych" ("próbnych"), oraz materiały w formie pdfów do każdego z zagadnień. Po rozwiązaniu testu otrzymujemy dość szczegółowy opis dlaczego dana odpowiedź jest poprawna a reszta błędna, co dla mnie było właściwie najcenniejszym źródłem informacji. Podobno testy te (z whizlabs) są przygotowywane przez te same osoby co testy egzaminacyjne- i ciężko mieć co do tego wątpliwości, bo sporo pytań z tych testów powtórzyło mi się w prawie niezmienionej formie na egzaminie (!). To chyba powinno ostatecznie wszystkich przekonać ;).

Niestety nie może być zbyt różowo- trafiają się źle sformułowane pytania, zdarza się, że poprawna odpowiedź oznaczona jest jako błędna, zdarza się w końcu, że wyjaśnienia do odpowiedzi nie mają sensu. Nie zdarza się to często, ale się zdarza. I wprowadza pewien niepokój. No bo skoro był błąd w jednym miejscu to może jest ich więcej? W szczególności: może niektóre pytania za które dostałem full punktów zawierają takie błędy i tak naprawdę to nie zaznaczyłem w nich poprawnej odpowiedzi? Zmusza to do sprawdzania wszystkiego w IDE i dokumentacji... co w sumie wychodzi ostatecznie na plus ;). Warto przy okazji posprawdzać różne warianty itd, żeby w pełni zrozumieć czemu coś działa tak a nie inaczej i jak zachowa się w innych warunkach.

Ile czasu należy zabezpieczyć na przygotowanie do egzaminu? Myślę, że mając dostęp do whizlabs, wolne popołudnia i determinację, by codziennie poświęcić 1-2h czasu można się spokojnie przygotować w ciągu miesiąca. Ja robiłem testy w kółko, czytając za każdym razem wyjaśnienia (nawet do tych pytań w których podałem prawidłową odpowiedź) tak długo aż miałem 100% poprawnych odpowiedzi- wtedy dopiero brałem się za następny. Około tygodnia przed egzaminem zrobiłem powtórkę ze wszystkich testów przygotowawczych (znowu czytając wyjaśnienia i powtarzając do uzyskania 100%), po jednym dziennie, czytając również odpowiedni kawałek materiału z pdfów. Na ostatnie kilka dni zostawiłem sobie testy przekrojowe (po jednym dziennie), które znowu powtarzałem do uzyskania 100%, wczytując się w wyjaśnienia i sprawdzając każdą wątpliwość w kodzie i dokumentacji.

Co dalej?

Egzamin zdany, tym samym ścieżka certyfikacyjna otwarta. Czy będę podchodził w przyszłości do (następnego w kolejności) OCPJP7? Czas pokaże, ale myślę, że tak. Nie uważam, żeby przygotowania do egzaminu nauczyły mnie czegoś nowego w sensie przydatnego. Nie sądzę też, żeby certyfikat sprawiał, że pracodawcy będą się o mnie bić (w przeciwieństwie do certyfikatów MS, tu nie występuje efekt zbierania pokemonów ;)). Ale i tak uważam, że warto- na pewno przygotowanie się do egzaminu wymusza uporządkowanie swojej wiedzy, a posiadanie certyfikatu jest zawsze plusem- pomimo tego, że zaświadcza on jedynie, że kiedyś zakuło się sporo materiału (z którego pewnie większość już się zapomniało), a nie mówi nic o faktycznych umiejętnościach.

» «
Komentarze (4) Trackbacks (0)
  1. Egzamin do łatwych nie należy. Gratuluję sukcesu.

  2. Bardzo przydatne. Dzięki :)

  3. Dzięki za wpis :-)

  4. Hej
    Czy dostałeś Certyfikat w wersji papierowej na adres domowy ?

    Pozdrawiam


Trackbacks are disabled.