18 grudnia 2006

Sun Certified Java Programmer (SCJP) 5.0 zdany!

Voucher (czyli przepustkę) na egzamin kupiłem bodajże jeszcze w listopadzie 2005 roku w Sun'ie za 500 PLN. Czy to z powodu kończącego się terminu wazności vouchera, czy mojej wewnętrznej determinacji (raczej tego pierwszego) nadeszła pora na podejście do egzaminu Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (SCJP 5.0).

Dzisiaj o 11:00 stawiłem się w ABCData na VIII piętrze, gdzie dotarłem walcząc ze schodami po tym jak zdecydowałem się iść, a nie jechać windą. Kiedy dotarłem nie mogłem złapać tchu i to nie z powodu egzaminu (!) Zanim do normy wróciły wszystkie funkcje życiowe, pani wskazała mi na moje stanowisko. Po wstępnej ankiecie, w której miałem ocenić własną znajomość języka Java, przyszła pora na właściwy egzamin. Po około 2 godzinach zobaczyłem przy swoim nazwisku Pass, a następnie dostałem do ręki wydruk z wynikiem.


Przy minimum egzaminacyjnym na poziomie 59% zdobyłem 80%, co pozwoliło mi na pomyślne zdanie egzaminu. I nie ukrywam, że mimo wydawałoby się dużego zaangażowania w różne projekty i technologie Java, nie było lekko. Oj nie było! Czuję dużą ulgę, że mam to już za sobą - 72 pytań w 175 minut wykańcza samo w sobie, a życie analizatora składniowego języka Java nie jest łatwe ;-) O to właśnie chodzi na egzaminie - stać się analizatorem składniowym (!) Przy naszym wykorzystaniu zintegrowanych środowisk (IDE) coraz bardziej na nich polegamy zapominając o konstrukcjach języka (inicjalizacja tabel, średniki, przecinki), różnicach w działaniu podstawowych operatorów (np. & czy |) nie wspominając, że nauka nowości języka w wersji 5 nie należy do łatwych (szczególnie Java Generics, czy Enumy). Zdumiewające dla mnie było nauczenie się działania operatorów % oraz / i znaków ich wyników (dla dociekliwych: % daje w wyniku ujemną liczbę wyłącznie jeśli pierwszy operand jest ujemny, a przy drugim jeśli przynajmniej jeden z operandów).

Z czego się uczyłem? Głównie SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055) by Kathy Sierra and Bert Bates, McGraw-Hill/Osborne © 2006 oraz Whizlabs SCJP 5.0 Preparation Kit. Oczywiście ciągle towarzyszyły mi Java 2 Platform Standard Edition 5.0 API Specification i The Java Language Specification, Third Edition. Tak uzbrojony pozostawało mieć wystarczająco wiele czasu, aby zgłębić niuanse i meandry języka i uzyskać...no cóż...jedynie 80%. Duuużo cierpliwości i wystarczająco dużo snu są wielce pożądane (w ostatnią sobotę nie mogłem się opanować i zabrałem się za ewaluację IBM WAS 6.1 z dodatkiem EJB 3.0 - dobrze, że nie wiedziałem o BEA WLS 10 ;-)).

Każdemu osobiście polecam podejście do egzaminu, bo wiele się nauczyłem i zrozumiałem. Ile to razy nie mogłem uwierzyć w to, co czytam (szczególnie z wątkami oraz kolekcjami, z których ostatecznie i tak wypadłem kiepsko). Promocja typów również była ciekawa oraz kwalifikatory dostępu. Wiele informacji przyswajałem wykonując testy w symulatorze z Whizlabs, bo alternatywnie mogłem wkuwać z książki, a nie bardzo szło mi poznawanie detali Javy bez komputera.

Możnaby zapytać, czy egzamin jest potrzebny? Ja odpowiem: tak. Człowiek uczy się ponownie uczyć rzeczy, które wydaje mu się, że rozumie. I nie widać, aby była różnica, czy dopiero się zaczyna pracę z Javą, czy jest się weteranem. Oba profile mają swoje wady i zalety - pierwszy ma świadomość konieczności nauki nowości w Javie 5, podczas gdy drugiemu może się wydawać, że wystarczy jedynie przeczytać tu i tam i podejść. Obaj muszą przewertować javadoc i specyfikację od deski do deski i duuuużo testować. Przynajmniej takie są moje odczucia. Ja nie należę do cierpliwych i po upływie 2 godzin miałem dosyć. Zaznaczyłem 12 odpowiedzi jako "do sprawdzenia", ale kiedy przyszło mi je sprawdzać po prostu nie chciało mi się, byłem wypruty. Coś tam sprawdziłem, ale bojąc się błędnie wprowadzonych odpowiedzi na sam koniec ostatecznie zarzuciłem temat.

Oficjalny certyfikat w drodze. Zastanawiam się nad kolejnym egzaminem - może SCWCD albo SCBCD, ale z pewnością w ich najnowszej odsłonie dla Java EE 5 (nie mam zamiaru przechodzić męki z EJB 2.1 ponownie).