Jak znaleźć dobrego specjalistę Java?
Java jest aktualnie jednym z najbardziej popularnych języków programowania, o czym wiedzą doskonale programiści, rekruterzy i w gruncie rzeczy – ktokolwiek, kto choć trochę interesuje się trendami na rynku IT. Co za tym idzie, Java Developerzy aka Javovcy są poszukiwani na rynku w ilościach niemalże masowych. A wyzwania, jakie wiążą się ze znalezieniem takiego specjalisty do projektu zna każda osoba zajmująca się rekrutacją.
Java jest aktualnie jednym z najbardziej popularnych języków programowania, o czym wiedzą doskonale programiści, rekruterzy i w gruncie rzeczy – ktokolwiek, kto choć trochę interesuje się trendami na rynku IT. Co za tym idzie, Java Developerzy aka Javovcy są poszukiwani na rynku w ilościach niemalże masowych. A wyzwania, jakie wiążą się ze znalezieniem takiego specjalisty do projektu zna każda osoba zajmująca się rekrutacją.
Kluczem są oczywiście, jak to w branży IT – konkretne informacje. Pomijając już nieśmiertelny temat widełek płacowych nic tak nie zniechęca programistów jak rekruter, który po prostu nie wie, o czym mówi. Spróbujmy więc poukładać sobie trochę wiedzę na temat Javy i towarzyszących jej narzędzi.
Od początku – czym jest Java?
Początki Javy sięgają daleko w przeszłość, bo aż do roku 1991. Stworzona przez firmę Sun jest wieloparadygmatowym (co za słowo) językiem. Oznacza to po prostu, że w Javie można programować na wiele różnych sposobów (czyli używając różnych paradygmatów) – obiektowo, funkcyjnie, strukturalnie oraz imperatywnie. Ciekawostką jest na pewno nazwa tego języka. Początkowo Java miała nosić nazwę Oak, od drzewa rosnącego przed siedzibą firmy Sun. Nazwa ta była już zajęta, więc padło na Jave – od kawy, która jak wiadomo jest głównym paliwem programistów...
Zapewne nawet twórcy Javy nie myśleli, że stanie się ona tak powszechnie wykorzystywana. Skąd właściwe popularność Javy? Złożyło się na to kilka aspektów. Java jest uważana za bezpieczny język, gwarantujący bezpieczeństwo tworzonych w niej rozwiązań. Wynika to z kilku kluczowych, technicznych różnic pomiędzy Javą a innymi popularnymi językami obiektowymi, jak np. C++. Java jest też językiem na prywatnej licencji Oracle, co gwarantuje wszechstronne wsparcie dla firm używających Javy. Java jest również niezwykle wydajnym językiem – pozwala na tworzenie systemów, w których potrzebne jest szybkie i sprawne przetwarzanie ilości danych, jak np. systemy bankowe, ubezpieczeniowe czy loteryjne. W Javie można pisać również aplikacje mobilne na platformę Android. Mamy więc możliwość pisania szerokiego spektrum aplikacji, od webowych po mobilne.
Java nie jest jednak najbardziej “składniowo” przyjaznym językiem. Napisanie “hello world” w Javie wymaga 3 linijek kodu, a w Pythonie – jednej. Wniosek nasuwa się sam.
Wersje Javy
Java nie jest technologią typu open source, więc nie rejestruje tak dynamicznych zmian, jak np. Java Script. Nie znaczy to jednak, że w ogóle ich nie ma. Java jest cały czas udoskonalana, tak aby stawała się jeszcze wydajniejszym i lepszym narzędziem dla programistów. Najnowsza wersja Javy to Java SE 10 wydana w marcu tego roku. Zawiera szereg usprawnień i zmian, ale zapewne minie jeszcze sporo czasu zanim firmy zaadaptują do swoich projektów tę wersję. Dlatego niech nie zniechęcają was kandydaci programujący na co dzień w wersji 7 czy 8.
Czego szukać w CV Java Developera?
CV lub LinkedIn programisty może być doskonałym źródłem informacji o kandydacie, jeśli tylko posiadamy wiedzę o technologii i narzędziach właściwych dla pracy Java Developera.
Spójrz zatem na poniższy słowniczek:
- Platformy Javy: Java Standard Edition (JSE)Java Enterprise Edition (JEE)Java Micro Edition (JME)
- Java Virtual Machine (JVM) – maszyna wirtualna oraz środowisko zdolne do wykonywania kodu bajtowego Javy
- Frameworki / Biblioteki:
- Spring (Core, Security, MVC)
- Hibernate (ORM) – służący do łączenia się z bazą danych
- JSF (JavaServer Faces) – upraszcza tworzenie interfejsu użytkownika do aplikacji pisanych w Javie.
- JSP (Java Server Pages) – umożliwia tworzenie dynamicznych dokumentów WWW w formatach HTML, XHTML, DHTML oraz XML
- Multithreading (Wielowątkowość) – cecha systemu operacyjnego, dzięki której w ramach jednego procesu może wykonywać kilka zadań
- IDE (Integrated Development Environment): Eclipse, Intellij, Netbeans
- Narzędzia do testów: jUnit, jMeter, Cobertura, Selenium
- Zarządzanie zależnością w projekcie: Gradle, Maven
- Serwery aplikacyjne: Tomcat, Wildlfy
- Kontrola wersji - GIT
- Bazy danych: Oracle DB, DB2
Co warto wiedzieć o tych narzędziach?
1. Spring i Hibernate to obecnie standard w projektach Java. Można oczekiwać, że każdy programista od poziomu Mid’a będzie miał z nimi doświadczenie.
2. Wielowątkowość (multitherading) jest używana tylko w zaawansowanych systemach procesujących wiele operacji jednocześnie. Programiści pracujący nad prostszymi aplikacjami nie będą mieć z tym doświadczenia.
3. Znajomość konkretnego IDE nie ma ogromnego znaczenia, choć komercyjnie najczęściej używany jest Intellij. Co ciekawe, na uczelniach studenci korzystają raczej z Eclipse.
4. Większość programistów będzie miała doświadczenie z jUnit, ale już raczej nie z Selenium, ponieważ jest to narzędzie wykorzystywane przez Testerów Oprogramowania.
5. Na platformę Android pisze się w Javie, ale różnice są ogromne. Web Java Developer nie będzie w stanie szybko zacząć pisać na Androida i vice versa.
Temat narzędzi związanych z Java można by oczywiście ciągnąć jeszcze długo i na pewno starczyłoby materiału. Zamiarem tego artykułu nie było jednak przepisać nieskończonych zasobów Internetu na temat Javy, a sformułować przystępną i łatwą w użyciu ściągę na temat tej technologii. Mam nadzieję, że się to udało i oczywiście zachęcam do poszerzania wiedzy na własną rękę!