Wiele firm technologicznych posiada własne programy certyfikacyjne, mające sprawdzać wiedzę i gwarantować, że posiadacz certyfikatu dysponuje wiedzą i umiejętnościami na odpowiednim poziomie. Obok innych znanych firm, takich jak Microsoft, VMware, IBM czy Cisco, również Oracle proponuje rozbudowany schemat certyfikacji dla własnych produktów i technologii. Wraz z zakupem firmy Sun w 2009 roku, Oracle przejął także program certyfikacyjny dla Javy, wraz ze słynnym egzaminem SCJP (Sun Java Certified Programmer), by wraz z kolejnymi wersjami Javy dostosować certyfikację do własnych standardów, stosowanych chociażby dla bazy danych Oracle.
Sens certyfikacji
Czy w ogóle warto zdawać egzaminy i zdobywać certyfikaty? Certyfikaty dla programistów Javy nie mają znaczenia formalnego. Nie dają, jak dyplom inżyniera czy magistra, wyższego wykształcenia; nie dają też żadnych uprawnień zawodowych wymaganych przepisami prawa, jak chociażby dyplom elektryka. Certyfikat jest po prostu obiektywnym potwierdzeniem, że dana osoba zna język Java i potrafi w nim programować na pewnym poziomie.
Certyfikaty Java mogą więc być jedną ze wskazówek dla pracodawców gdy trudno jeszcze udokumentować swoje kompetencje doświadczeniem w projektach i referencjami lub gdy doświadczenie dotyczy innych technologii. Zdobycie certyfikatu jest też pozytywnie odbieranym dowodem zaangażowania we własny rozwój.
Zdarzają się sytuacje, że certyfikat jest wymagany w niektórych grantach i postępowaniach przetargowych. Warto w tym momencie zauważyć, certyfikat OCP dla Javy SE jest wymaganym krokiem przed uzyskaniem certyfikatów eksperckich z technologii Java EE (np. Web Service, EJB, JPA).
Trzeba przyznać, że egzaminy Oracle rzeczywiście dobrze sprawdzają wiedzę z programowania w języku Java. Przypadkowa osoba, nie mająca pojęcia o programowaniu, nie ma szans zdać tego typu egzaminu na zasadzie „zakuć, zdać, zapomnieć”, bo poza znajomością nazw różnych klas i metod trzeba przede wszystkim rozumieć programowanie. Nawet podstawowy poziom trudno będzie też zdać programistom innych języków, którzy nie znają specyfiki języka Java. Z drugiej strony sama praktyka programowania, szczególnie gdy polega głównie na korzystaniu z frameworków, a rzadko na pracy od podstaw, też może nie wystarczyć, gdyż egzaminy odwołują się do elementów najbardziej podstawowych, a pytania potrafią być naprawdę szczegółowe.
Właśnie koncentracja na fundamentach języka i platformy Java oraz „szczególikach”, a brak odniesienia do praktyki (szczególnie frameworków, ze Springiem na czele) jest najczęstszym zarzutem wobec egzaminów Oracle. Programista może pomyśleć: „Po co mi wiedzieć czy to się skompiluje, przecież błąd będę widział w edytorze, a IDE jeszcze mi podpowie jak go poprawić”. To prawda, ale dokładne rozumienie mechanizmów języka Java pozwala zupełnie inaczej spojrzeć na działanie nawet większych systemów. Mamy poczucie, że rozumiemy jak to działa i nic nas nie zaskoczy… A znajomość frameworków i praktycznych aspektów programowania i tak musi być potwierdzona pracą w realnym projekcie.
Ścieżki i egzaminy
W odróżnieniu od certyfikatów wielu innych firm, certyfikaty dotyczące Javy są dożywotnie i nie trzeba ich aktualizować. Raz zdany egzamin może służyć uzyskaniu różnych certyfikatów, jeśli występuje w ich ścieżkach.
Obecnie (2019) certyfikacja Java SE dostępna jest dla dwóch wersji platformy Java: 8 oraz 11.
- Dla Javy 8 dostępne są dwa poziomy certyfikatów:
- ● „Oracle Certified Associate, Java SE 8 Programmer” (skrótowo
OCA lubOCAJP ) - ● „Oracle Certified Professional, Java SE 8 Programmer” (skrótowo
OCP lubOCPJP ) - a do ich zdobywania służą egzaminy, odpowiednio: Java SE 8 Programmer I (1Z0-808) i Java SE 8 Programmer II (1Z0-809). Nie da się uzyskać Professional bez Associate. Inaczej mówiąc, aby uzyskać Professional, należy zdać oba egzaminy.
- Co zaskakujące, dla Javy 11 dostępny jest tylko certyfikat na wyższym poziomie:
- ● „Oracle Certified Professional, Java SE 11 Developer”
- ale do jego zdobycia także należy zdać dwa egzaminy: Java SE 11 Programmer I (1Z0-815) i Java SE 11 Programmer II (1Z0-816). Jeśli osoba posiada Associate w wersji 7 lub 8, to wystarczy zdanie drugiego egzaminu (1Z0-816), co daje możliwość innego poprowadzenia swojej ścieżki certyfikacji: najpierw egzamin 1Z0-808 i certyfikat OCA 8, a następnie upgrade do OCP 11.
Niezależnie od ścieżki, nowi adepci muszą zdać co najmniej dwa egzaminy aby uzyskać poziom Professional. Posiadacze starszych wersji certyfikatu Professional dla wersji 6, 7 lub 8 mogą natomiast jednym egzaminem 1Z0-817 („upgrade”) zdobyć Professional w wersji 11.
Niewątpliwą zaletą zdawania egzaminu na certyfikat Associate (obecnie tylko w wersji 8) jest wcześniejsze uzyskanie „jakiegokolwiek” certyfikatu. Konieczność zdawania dwóch egzaminów w wersji 11, aby uzyskać swój pierwszy certyfikat może być frustrująca i polecamy ją raczej ludziom już pewnych swoich umiejętności.
Jakich tematów dotyczą egzaminy?
Nie wchodząc zanadto w szczegóły można powiedzieć, że pierwszy poziom egzaminu dotyczy głównie mechanizmów samego języka, z największym naciskiem na programowanie obiektowe, natomiast drugi poziom obejmuje bardzo szczegółową wiedzę w zakresie niektórych klas i mechanizmów platformy Java SE: kolekcji, wątków, wejścia-wyjścia, a przede wszystkim elementów programowania funkcyjnego: strumieni i wyrażeń lambda. Egzaminy w wersji 11 obejmują dodatkowo temat modułów, usług i bezpieczeństwa.
Do egzaminu można przygotowywać się i przystępować indywidualnie. Osoba posiadająca doświadczenie w programowaniu, po przerobieniu przykładowych testów powinna bez większego problemu zdać egzamin OCAJP. Ze swej strony jednak zapraszamy na nasze wyspecjalizowane szkolenia przygotowujące do egzaminów Oracle, których program podporządkowany jest zakresowi danej wersji egzaminu, gdzie będą mogli Państwo poznać wszelkie wymagane szczegóły i wyjaśnić wszelkie wątpliwości, gdzie wspólnie rozwiążemy przykładowe pytania a na przykładach zobaczymy jak i dlaczego te rzeczy działają. Dla mniej doświadczonych lub chcących w ten sposób poznawać najnowszą wersję Javy – przygotowanie do OCAJP; dla kontynuujących naukę lub bardziej doświadczonych, którzy czują, że potrzebują wsparcia dopiero od tego etapu – przygotowanie do OCPJP. Udział w naszym kursie daje też możliwość zakupu vouchera na egzamin w promocyjnej cenie.
Poniżej przedstawiamy porównanie zakresów szkoleń z Javy SE uwzględniający różne wersje egzaminu oraz nasze standardowe szkolenie J-PD ukierunkowane bardziej na wiedzę praktyczną, bez poznawania wszystkich szczegółów wymaganych na egzaminach, ale za to poruszające wiele dodatkowych tematów.
- Znaczenie symboli:
- ● – temat w pełni omówiony
- ○ – temat pobieżnie omówiony
- ↺ – szybkie przypomnienie i uporządkowanie wiedzy
- – – temat nie wchodzi w zakres szkolenia
Temat | J-PD | OCPJP 8 | OCPJP 8 |
---|---|---|---|
Instrukcje sterujące, operatory, zmienne i deklaracje, metody | ● | ● | – |
Typy liczbowe i arytmetyka | ● | ● | – |
Obiekty, zasada działania referencji w Javie | ● | ● | ↺ |
Klasy, pola i metody, elementy instancyjne i statyczne | ● | ● | ↺ |
Modyfikatory widoczności | ● | ● | ↺ |
Przeciążanie metod | ● | ● | ↺ |
Dziedziczenie i nadpisywanie metod | ● | ● | ↺ |
Klasy abstrakcyjne i interfejsy | ● | ● | ↺ |
Wyjątki | ● | ● | ↺ |
Klasy zagnieżdżone, lokalne i anonimowe | ○ | – | ● |
Lambda wyrażenia i referencje do metod | ○ | ○ | ● |
Wybrane wzorce projektowe i pojęcia programowania obiektowego | ○ | – | ○ |
Budowanie i uruchamianie aplikacji z wiersza poleceń (javac, java, jar) | ● | ○ | – |
Obsługa napisów (String, StringBuilder) | ● | ● | ↺ |
Tablice | ● | ● | – |
Porównywanie obiektów | ● | ○ | ● |
Kolekcje | ● | ○ | ● |
Typy generyczne | ○ | – | ● |
Strumienie i funkcyjny styl programowania | ○ | ○ | ● |
Podstawowe wejście/wyjście za pomocą strumieni binarnych i tekstowych | ● | – | ● |
Obsługa konsoli | ● | – | ● |
Serializacja | ● | – | ● |
Obsługa plików za pomocą elementów pakietu java.nio.file | ○ | – | ● |
Przetwarzanie tekstu: Scanner, Matcher, wyrażenia regularne | ○ | – | – |
Obsługa czasu w Java 8 (java.time) | ○ | ○ | ● |
Formatowanie liczb, daty i czasu | ○ | – | ○ |
Lokalizacja (tłumaczenie) aplikacji, ResourceBundle | ○ | – | ● |
Podstawowy dostęp do baz danych, JDBC | ● | – | ● |
Wątki, synchronizacja za pomocą elementów języka | ● | – | ● |
Elementy pakietu java.util.concurrent | ○ | – | ● |
Tworzenie prostych aplikacji okienkowych (Swing LUB java FX) | ● | – | – |
Narzędzia do budowania projektów: Ant, Maven | ○ | – | – |
Elementy aplikacji webowych w Spring MVC | ○ | – | – |
Pisanie testów jednostkowych w JUnit | ○ | – | – |
Informacje o egzaminie i przykładowe pytania | – | ● | ● |
Pobierz powyższą tabelę w formacie PDF