W ramach rozwoju osobistego własnego oraz wywierania wpływu na rozwój osobisty moich podwładnych postanowiłem przygotować się i podejść do egzaminu Java SE Programmer I (OCA) i II (OCP). Egzaminy te weryfikują znajomość języka oraz wbudowanych bibliotek i są zarazem początkiem dalszej ścieżki edukacyjnej proponowanej przez firmę Oracle.
Kiedy dawno temu, w 2006 roku, przystępowałem do certyfikacji dla wersji 1.4, był to jeden egzamin. Jako że język się szybko rozwijał to podjęto decyzję o podzieleniu egzaminu na dwie części – moim zdaniem słuszną. Widok jednej książki, która miałaby 1200 stron, mógłby skutecznie odstraszać potencjalnych kandydatów. Pierwsza cześć to tzw. OCA (ang. Oracle Certified Associate) – podstawy, druga to OCP (ang. Oracle Certified Professional) – kompleksowa wiedza z zakresu języka Java.
Przygotowanie
Przygotowanie się do tych egzaminów jest relatywnie proste: należy nabyć dwie książki napisane specjalnie do przygotowania do tych egzaminów:
- OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808
- OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809
Każda z książek zawiera odpowiednio 6 i 10 50-100 stronicowych rozdziałów. Każdy rozdział zawiera wstęp, treść z przykładami kodu, aspektami praktycznymi (tzw. real-life do wykorzystania w pracy zawodowej) i aspektami wyłącznie egzaminacyjnymi (tzw. zakuj, zdaj, zapomnij), podsumowanie, cele egzaminacyjne, przykładowe pytania i odpowiedzi do nich z wytłumaczeniem. Każdy z rozdziałów to pół dnia czytania plus rozwiązywanie przykładowego testu, a następnie sprawdzenie co się nie udało. Moim ostatnim etapem przygotowania było przejrzenie notatek i kodu który robiłem w trakcie do wszystkich rozdziałów i ponowne przejście przykładowych testów. Czyli całość przygotowania pochłania odpowiednio 6 lub 10 popołudni i wieczorów plus weekend na powtórzenie do egzaminu.
Pytania w książce są trudne i nie wiadomo ile odpowiedzi wielokrotnego wyboru jest prawidłowych, więc ja osiągałem niezbyt wysoką skuteczność, od 50 do 80% w zależności od rozdziału. Na szczęście pytania na samym egzaminie są prostsze i program egzaminacyjny podpowiada ile opcji jest prawidłowych, wystarczy wybrać najlepsze. Więc na samym egzaminie osiągnąłem skuteczność odpowiednio 87% (OCA) i 81% (OCP), limit zaliczający to 65%, więc metodyka okazuje się bezpiecznie skuteczna.
Egzamin
Sam egzamin zdaje się w wybranej placówce sieci Pearson VUE, w pokoju egzaminacyjnym, przy komputerze, bez żadnych pomocy, telefonów, smartwatchy, itp. Przed wejściem na egzamin trzeba pozwolić sobie zrobić zdjęcie, pokazać dwa dokumenty potwierdzające tożsamość i złożyć podpis. Wynik egzaminu dostaje się e-mailem po około 10 minutach po opuszczeniu sali.
Dlaczego warto przygotować się i zdać te dwa egzaminy?
Moje argument za:
- utrwalenie posiadanej wiedzy, np. generici, java.time, programowanie funkcyjne i streamy, closeable i autoCloseable,
- nowa przydatna wiedza: Java NIO, concurrency (m.in. ExecutorService, Runnable/Collable), brak konieczności używania Class.forName w JDBC, nowa klasa narzędziowa Console,
- trochę nieprzydatnej wiedzy: używanie JDBC ResultSet do aktualizacji wierszy, używanie klas jako źródła propertiesów,
- zrozumienie na ile nowoczesne IDE przykrywa szczegóły języka i nieco ogłupia bezkrytycznego „klepacza kodu”,
- gimnastyka umysłu: szybkie przyswajanie i weryfikowanie wiedzy – szczególnie ważne dla osób kilka lat po studiach odwykłych od procesu uczenia,
- egzamin dodatkowo weryfikuje umiejętność pracy w sytuacji stresowej,
- oderwanie się od codziennych zadań i znowu spojrzenie na pracę programisty jako bardzo ciekawe zajęcie,
- zaliczenie egzaminu jest momentem potwierdzającym zdobytą umiejętność, po którym można zacząć myśleć co dalej: inny język (scala?), kolejny element stosu JEE i egzaminy Master, Expert, Specialist, może kolejne frameworki lub narzędzia komercyjne,
- element społeczny: wzbudzenie motywacji do rozwoju osobistego u kolegów czy podwładnych.
Dla mnie powyższe uzasadnienie jest wystarczające aby poświęcić trochę prywatnego czasu i zaryzykować ok 900 zł za egzamin. Jestem, podobnie jak moi koledzy i koleżanki z e-point, w o tyle dobrej sytuacji że firma zapewnia nam książki do przygotowania i zwraca sam koszt zaliczonego egzaminu. Jednakże, gdybym był pracownikiem kontraktowym lub pracował jako programista w firmie mniej dbającej o rozwój pracowników, to zdecydowałbym się poświecić i odkładać 100 zł miesięcznie, tak aby raz na rok kupić taką książkę i zdać egzamin.
Reasumując, polecam.
Pozwolę sobie zadać kilka pytań jako wannabe programista
1. Jak duże praktyczne doświadczenie w Javie jest potrzebne, żeby zdać certyfikat OCA? Da się to w ogóle zdać bez komercyjnego doświadczenia w programowaniu w Javie?
2. Czy jego zdobycie daje wiedzę potrzebną/wystarczającą w zdobyciu pierwszego zatrudnienia jako programista Javy?
3. Jak ten certyfikat jest postrzegany przez pracodawców/praktyków/programistów? „Życiowy” czy raczej „teoretyczny”?
Pozdrawiam
Ad1. Jeżeli ktoś ma ogólną wiedzę techniczną i sprawnie przyjmuje wiedzę, czyli praktycznie każdy student uczelni technicznej, to po zapoznaniu się z podstawami programowania obiektowego oraz przejściu przez książkę przygotowującą do OCA, w mojej opinii może zdać certyfikat. Miałem kiedyś taki przykład ze studentem Fotoniki z Politechniki Warszawskiej.
Ad2. Trudno na to pytanie jednoznacznie odpowiedzieć, bo z jednej strony, żeby dostać się do firmy w której pracuje to nie wystarczy, trzeba mieć studia informatyczne (choćby nieskończone) lub jakieś doświadczenie. Ale z drugiej strony zapotrzebowanie na programistów na rynku jest tak duże, że na pewno znajdą się mniej wybredni pracodawcy.
Ad3. Certyfikat jest postrzegany raczej jako teoretyczny, tzn. porządkuje wiedzę o Javie ale nie poświadcza że ktoś kto się nim legitymuje jest dobrym programistą, to sprawdza się inaczej.
Dziękuję za odpowiedzi.
Gdybym przestudiował książkę, to wrócę z infomacją jak odbieram jej zakres jako laik.
Szukam trochę motywacji do przygotowania się do OCP, OCA zrobiłem 1,5 roku temu.
Fajnie przeczytać że idzie się przygotować w kilka tygodni, Ja na przygotowanie mogę poświęcić 2 h dziennie przez co idzie mi to jak krew z nosa :).
@janpawel202
Przeczytanie książki o chirurgii plastycznej nie zrobi z Ciebie chirurga. Moze to zły przykład, ale jak chcesz zostać programistą to zrób sobie prostą aplikacje webową z javie, wymyśl coś, niektóre firmy dają takie zadania rekrutacyjne i weekend na realizacje. Ty sobie zrób to w miesiąc, nauczysz się bardzo dużo. Samo zdanie certyfikatu nic Ci nie gwarantuje.
@Marek
” żeby dostać się do firmy w której pracuje to nie wystarczy, trzeba mieć studia informatyczne (choćby nieskończone) lub jakieś doświadczenie.”
pozwól że nie zgodzę się z Tobą, to podejście managerów. U mnie w zespole jest dziewczyna z wykształceniem średnim która studiowała filozofie :), jest naprawdę dobra, niby tylko tester ale kodowanie widzę też ogarnia. W poprzedniej firmie prawie ksiądz też wymiatał. Takich ludzi jest nawet sporo ale ktoś kiedyś gdzieś musiał zaryzykować i dać im szanse.