Kategorie
java Junior Developer

Top 10 umiejętności Junior Java Developera

W tym tekście staram się określić top 10 umiejętności Junior Java Developera, które powinna posiadać osoba rozpoczynając pracę na tym stanowisku. Jeśli jesteś właśnie startujesz swoją ścieżkę w IT, to ten tekst będzie idealny dla Ciebie, a lista ta może posłużyć Ci jako drogowskaz do bycia lepszym w tym, co robisz.

Top 10 umiejętności Junior Java Developera

Znajomość biblioteki standardowej Java

Cóż, ten punkt może wydawać się dla większości osób oczywisty. Jednak coraz częściej na rozmowy na stanowiska juniorskie aplikują osoby, które właściwie nie znają języka, w jakim miałyby programować.

Nie chodzi tutaj o sytuację, gdzie musisz znać np. Vavra, Guavę, Springa, RxJava, czy inne szkielety, czy narzędzia. Chodzi o zwykłą znajomość języka. Czyli np.:

  • Co to jest interfejs?
  • Jak działa pętla for, while?
  • Czym różni się pole statyczne od pola niestatycznego?
  • etc.

Znajomość języka jest w tym wypadku cechą must have.

Umiejętność praktycznej nauki

Kiedy trafiasz do zespołu programistów i jesteś tam jedynym lub jednym z juniorów, musisz wiedzieć jedno – musisz umieć szybko przyswajać praktyczną wiedzę.

Początek pracy to zawsze nowe wyzwanie. Prawda jest jednak taka, że wiedza akademicka, czy też zdobyta na różnych kursach, różni się istotnie od praktyki. I nie ma w tym nic dziwnego. Ogólne teorie, czy też wzorce mają też taki ogólny charakter. Ty, trafiając do konkretnego zespoły dostajesz cały bagaż doświadczeń, wiedzy „tajemnej” tego zbioru osób. Już nie uczysz się na przykładach typu Hello World, zaczynasz rozwijać konkretny komercyjny (lub nie) projekt.

Samodzielność

Będąc juniorem możesz założyć, że większość osób w zespole chętnie Ci pomoże w różnych sytuacjach. Ale musisz też założyć, że to szybko się skończy, jeśli Twoje pytania będą cały czas dotyczyły rzeczy podstawowych. Zatem:

  • Zainstalować JDK powinieneś umieć samodzielnie.
  • Intellij Idea nie gryzie.
  • Git to nie rocket science, poznanie kilku komend w domu to nic strasznego.
  • Jak chcesz pracować na Linux’ie, to nie pytaj, co to jest bash i czym się różni od cmd …

Git

Było o tym w punkcie powyżej … ale serio, to jest standard. Jeśli sądzisz, że git w tym kontekście znaczy, że jest super … to czas zajrzeć tutaj https://git-scm.com/

Prawdziwy killer … rekurencja

Z perspektywy czasu można by ująć to w ten sposób. Kiedyś, gdy junior developer trafiał podczas rozmowy na pytanie o rekurencję i jej przykłady, to wiedział, co odpowiedzieć i w większości przypadków rozumiał o czym mówi.

Dziś często zdarza się sytuacja, w której na pytanie o rekurencję pada odpowiedź: „słyszałem, o tym”.

Eleganckie rozwiązywanie różnych problemów w informatyce wymagało, wymaga i wymagać będzie stosowania eleganckich narzędzi. Rekurencja jest jedną z nich.

Testowanie

Nie musisz być mistrzem testowania kodu w JUnit, czy Spock. Ważne, żebyś umiał lub umiała przetestować swoje rozwiązanie. Znaleźć błąd, przeanalizować, poprawić. Nic wielkiego, po prostu dbaj o jakość tego, co robisz.

Interdyscyplinarnosć

Znasz Javę. Poznaj Groovy, Scalę, Kotlina, JS lub cokolwiek innego, co pozwoli Ci patrzeć na kod z innej perspektywy. Nie będziesz mistrzem we wszystkim, ale różne języki mają różne sposoby na rozwiązywanie podobnych rzeczy. I warto uczyć się różnych perspektyw i kontekstów użycia danych narzędzi.

Wdrażanie dobrych praktyk

Zaczynasz w miejscu A. Postaraj się, żeby docelowe rozwiązanie w miejscu B było choć trochę lepsze. Nie musisz przepisywać setek linii kodu, wystarczy nawet drobna zmiana – poprawa długości metod, korekta nazwy metody. Ucz się, poznawaj. Przeczytaj chociażby Clean Code https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 i zobacz, jak wpłynie to na to, jak tworzysz oprogramowanie.

Wzorce projektowe

Wzorce projektowe to ogólne spojrzenie na rozwiązanie typowego problemu. Poznaj je i stosuj. Zyskując wprawę z czasem Twoje rozwiązania będą niemal automatycznie używały wzorców bez dodatkowego zastanawiania się, który z nich powinno się wybrać.

Drugi ważny element to ten, że obecnie narzędzia takie jak np. Spring, czy RxJava, są naszpikowane wszelkimi wariantami wzorców. Im szybciej będziesz je poznawać, tym łatwiejsze stanie się ich stosowanie.

Komunikacja

Tworzenie oprogramowania korporacyjnego to gra zespołowa. Analizujesz, tworzysz, sprawdzasz, oddajesz, wdrażasz, utrzymujesz. Tak to wygląda.

Na każdym z tych etapów stykasz się z innymi osobami. I na każdym z tych etapów powinieneś pytać, zastanawiać się, rozmawiać, weryfikować. Tak to działa.

Obecnie oprogramowania nie pisze już zespół składający się z jednej osoby. Oprogramowanie korporacyjne to często aplikacje pisane przez zespoły wieloosobowe, które tworzą kod przez kilka lub kilkanaście miesięcy lub lat. Komunikacja w tej sytuacji odgrywa niebagatelną rolę.

Podsumowanie

W tym artykule opisałem top 10 umiejętności Junior Java Developera, które powinien posiadać rozpoczynając swoją przygodę ze światem tworzenia komercyjnego oprogramowania. To oczywiście nie wszystkie umiejętności, jakie powinna posiadać taka osoba. Wybrałem te, bo wydawały mi się bardzo pożądane, a jednak nie zawsze widoczne u młodych adeptów oprogramowania.

Mam nadzieję, że jeśli jesteś Junior Developerem, to lista tych umiejętności pomoże Ci szybciej wskoczyć na wyższy poziom tworzenia oprogramowania.