Niestety nie, sama znajomość języka Java nie wystarczy, żeby zostać Junior Java Developer’em. Błędne jest myślenie, że zostaniemy zatrudnieni znając całą teorię związaną z językiem Java oraz wiedząc jak napisać program w języku Java. Tak jak w każdym innym zawodzie potrzebujemy znać i umieć posługiwać się narzędziami i posiadać odpowiednie środowisko do pracy oraz znać dobre praktyki. Przez środowisko do pracy rozumiem różne programy wspierające pracę programisty począwszy od systemu operacyjnego, a skończywszy na narzędziu służącym do ochrony wzroku.
Dla przykładu pisarz używa języka np. polskiego do pisania swoich książek, w najprostszym przypadku potrzebuje kartki papieru i czegoś do pisania. W dzisiejszych czasach używa się do tego laptopa i edytora tekstu. Fragmenty książki trzeba wysyłać do wydawnictwa, gotową książkę trzeba przygotować tak, aby mogła być wydrukowana. Czy pisarz znając tylko język polski będzie w stanie od razu tworzyć różne gatunki literackie, np. powieść sensacyjną? Raczej nie, tak samo jest z programistą, znając język Java może wybrać jaką aplikację, program (gatunek literacki) chciałby stworzyć, np. aplikacja na urządzenia mobilne, ale to wymaga dużego nakładu pracy i obszernej wiedzy.
Praca programisty, w tym przypadku młodszego programisty Java polega na wytwarzaniu oprogramowania, czyli aplikacji, programów, np. aplikacji www, aplikacji na smartfony, komputery. Proces wytwarzania oprogramowania jest usystematyzowany i podlega pewnym regułom – tak jak proces tworzenia książki. Nieodłącznym elementem pracy każdego programisty jest analizowanie, projektowanie, tworzenie i rozwiązywanie problemów, które są i będą zawsze czy, to w postaci błędnie działającego programu, czy też źle zrozumianego zagadnienia.
W dużym uproszczeniu proces wytwarzania oprogramowania wygląda następująco:
- Analiza, czyli zbieranie informacji o tym, co ma robić aplikacja, program, analiza np. w postaci dokumentu Word.
- Przygotowanie projektu aplikacji, np. w postaci diagramów UML i makiet GUI.
- Implementacja aplikacji, czyli pisanie kodu w wybranym języku programowania.
- Testowanie aplikacji, najlepiej na każdym etapie tworzenia oprogramowania.
- Wdrożenie aplikacji, czyli umieszczenie na serwerach, gdzie będą mogli z niej korzystać użytkownicy tej aplikacji.
W takim razie, gdzie jest ten ogrom pracy, którą musi wykonać programista? Po pierwsze programista będzie musiał umieć odczytać dokument z analizą aplikacji, jak również zrozumieć projekt aplikacji na podstawie, której powstanie kod źródłowy aplikacji. Niestety w wielu przypadkach brakuje analizy i/lub projektu aplikacji, w takim przypadku, to programista będzie musiał samemu je “stworzyć”. Z mojego doświadczenia wynika, że praca programisty w 70% polega na komunikacji w zespole, a w 30% z samego pisania kodu, więcej o tym można przeczytać w Junior Java Developer umiejętności techniczne, a umiejętności miękkie.
Zanim programista zabierze się za pisanie kodu aplikacji, będzie musiał znać takie narzędzie jak zintegrowane środowisko programistyczne IDE (np. IntelliJ IDEA, Eclipse), w którym, to będzie pisał kod w języku Java. Kod, który stworzy będzie musiał współdzielić z innymi programistami za pomocą systemu kontroli wersji VCS, np. git. Już dawno minęły czasy kiedy, to programista pisał w notatniku, to samo tyczy się współdzielenia kodu aplikacji, już nie przenosi się go na dyskietkach lub nie wysyła się emailem.
Patrząc na powyższe, programista nie zaczął jeszcze pisać kodu aplikacji, a już musi znać dwa narzędzia, rozumieć analizę i projekt aplikacji. Dodatkowo rzadko kiedy korzysta się tylko i wyłącznie z tego, co dostarcza sam język Java. W większości przypadków korzysta się z innych bibliotek (np. JUnit) oraz framework’ów (np. Spring Framework) i z tych gotowych elementów tworzy się aplikacje. Kod, który piszemy powinien być zgodny z dobrymi praktykami (np. SOLID, DRY) oraz przetestowany (np. biblioteka JUnit) – więcej na Dlaczego kod w języku Java powinien być SOLID’ny oraz suchy, DRY? oraz Po co w ogóle testować kod aplikacji? mBank robi to na produkcji!.
Zapraszam do regularnego odwiedzania mojej strony, będą pojawiać się kolejne artykuły oraz do kontaktu przez email kontakt(at)juniorjavadeveloper.pl.