Druga dziedzina dla Java developera

0

Hej,
Jak myślicie, która z dwóch wymienionych dziedzin przyniesie większe korzyści na rynku pracy w najbliższych 2-3 latach dla Java developera jako dodatkowej ścieżki rozwoju?

  • Python + DevOps skills (Linux/Unix, Bash, Jenkins, Ansible, Docker, Kubernetes)
  • JavaScript + Frontend developer skills (HTML, CSS, React, SASS, LESS)

Kryteria to nie tylko pieniądze. Proszę wziąć w dyskusji pod uwagę następujące czynniki:

  • ciekawość wykonywanych zadań,
  • liczba wakatów na rynku pracy,
  • poziom konkurencyjności między kandydatami na stanowisko,
  • użyteczność poza etatem,
  • prestiż stanowiska,
  • zarobki,
  • przewidywany wzrost rynku,
  • poziom odpowiedzialności ciążącej na pracowniku

Zapraszam do dyskusji :)

2

Bardziej niż w technologię idź w logiczne myślenie, algorytmy, matematyka itp.
Technologie zmieniają się jak skarpetki a idea jest ciągle ta sama --> stworzyć aplikację która będzie pobierała, modyfikowała, usuwała coś z bazy + ciekawe interfejsy dla użytkownika. W większości firmach tak ludzie pracują. Zastanawiam się czy nie zacząć już budować kosmicznego łazika przejść na embedded (ale nie jakieś arduino, raspberry pi) tylko kupić sobie czysty procek, podszkolić się w elektronice (wiem tylko że dioda pobiera 20 mA prądu) i próbować coś składać :)

2

Generalnie, warto mieć jakieś pojęcie o innych technologiach i nie mieć klapek na oczach, więc za co byś się nie wziął, to i tak będzie na plus. Nie można być też dobrym ze wszystkiego i wiedzieć wszystkiego. Z tego, co wymieniłeś na pewno mogę polecić zainwestowanie czasu w naukę Linuxa/Unixa i rzeczy z tym powiązanych. Unix ma 50 lat i nadal go ludzie używają. Wcale mnie to nie zdziwi, jak będą go używać przez kolejne 50 lat, czego nie można powiedzieć o najnowszych frameworkach w JavaScripcie. Taka wiedza nie dość, że raczej się nie przedawni, to jeszcze możesz ją stosować w pracy oraz prywatnie w codziennym użytkowaniu komputera, aby robić wszystko wydajniej, wygodniej i lepiej. Dodatkowo, masz okazję lepiej zrozumieć działanie systemów operacyjnych. Natomiast programy pisane wg Unix Philosophy, to majstersztyk. Część reguł z tej filozofii można próbować stosować nawet w aplikacjach pisanych w Javie. A propos liczby wakatów i atrakcyjności pracy, to teraz następuje wylew stanowisk związanych z machine learning/AI. Wiodącym językiem w tym obszarze jest Python, więc warto w niego też inwestować czas. Z kolei najlepszym środoowiskiem do pracy z Pythonem jest Unix. Co do JavaScriptu, to nie znam się na tym specjalnie. Wiadomo, stronki zawsze jakiś front-end będą potrzebowały, ale te javascriptowe frameworki na okrągło się zmieniają. Podstawowa wiedza z HTMLa i CSSa też zawsze się przyda, ale nie jest to nie wiadomo jak skomplikowane, żeby poświęcać na to dużo czasu (no chyba, że ktoś się bawi w jakieś animacje, eksperymenty itp.)

0

@wiciu: @au7h w sumie cały ostatni czas się zastanawiałem nad tym wszystkim i faktycznie chyba zrezygnuję z frontendu. Podstawowe kwestie z nim związane tj. własną całkiem sensowną stronkę a nawet klienta w angularze do całkiem sporego CRUDA napisałem po około 10h wstępnego przygotowania, więc jakbym nagle potrzebował na szybko wystawić interfejs dla użytkownika z mojej aplikacji to nie będzie problemu - nawet ten interfejs nie będzie taki brzydki, bo przecież Twitter bootstrap jest bardzo eleganckim gotowcem.

Czy dobrze rozumiem, że lepiej dać sobie na razie spokój z narzędziami typowymi dla DevOps i skupić się na opanowywaniu Unix/Linux z ukierunkowaniem na stack administratora systemów? Czyli jakieś porty, netstaty, lsofy itd itp?

0

Myślę, że dużo zależy w jakim kierunku chcesz się rozwijać. Ogólnie jak chcesz być devem to pewnie inwestycja we front jest dobrym pomysłem, jak chcesz raczej być "gdzieś" wyżej i mniej klepać a bardziej pracować "ekspercko" to pierwsza opcja wydaje się lepsza. Ja pracuję w PHP i zamierzam teraz trochę zainwestować we frontend bo przyda mi się w pracy jako uzupełnienie stacku, ale jednak to jest taki awans poziomy i raczej dodatek do backendu w którym chce się specjalizować. Szeroko rozumiany devops lub skille biznesowo/domenowe to większa szansa na awans pionowy, czyli wskoczenie na jakiś wyższy level.

0

Znam ludzi którzy w javie stricte programują i tylko w tym siedzą i mają kokosy. Myślę, że to przez to że są dobrzy w jednej specjalizacji. Przykładem jest gość z firmy który biegle umie springa i to mu wystarcza. Rozwijanie się w innych technologiach jest spoko, aczkolwiek moim zdaniem teraz na rynku szuka się specjalistów, a nie chłopaków od wszystkiego.

4
NeutrinoSpinZero napisał(a):

Kryteria to nie tylko pieniądze. Proszę wziąć w dyskusji pod uwagę następujące czynniki:

  • ciekawość wykonywanych zadań,

W tej kategorii Python + DevOps nokautuje JS i front-end, przynajmniej jak dla mnie. Frontu nie zdzierżę, uważam go za zło, czysty rak i męczarnię, a jakieś toole i inne pierdoły "przy okazji" normalnego developmentu bardzo fajnie się rzeźbi, można oderwać się od CRUDów i business logic z pięciu ifów na krzyż i faktycznie porobić coś, co ma sens i się do czegoś przydaje ;)

Zatem Python 1 : 0 JS

  • liczba wakatów na rynku pracy,

Tutaj JS ma przewagę nad Python/DevOps, jest wymagany praktycznie wszędzie, w końcu lepiej (czytaj: taniej) mieć "dwóch" pracowników w postaci fullstacka, niż osobno gościa od frontu i od backendu. A pomijając stricte Devopsów, to jak już ktoś ma sobie devopsować na pół gwizdka jako programista, to to wychodzi "w praniu" (np. z powodu braku devopsa, bo i na jego braku można zaoszczędzić) i nikt nie uwzględni tego nawet w wymaganiach czy choćby jako "nice to have".

Python 1 : 1 JS

  • poziom konkurencyjności między kandydatami na stanowisko,

W świetle tego co pisałem powyżej - na etapie przesiewania kandydatów prędzej zapunktujesz znajomością JS niż zabawami w Pythona i devopsy.

Python 1 : 2 JS

  • użyteczność poza etatem,

Co z tego, że wyrzeźbisz piękny front, skoro nie będzie miał kto potem tego deployować, bo szefo stwierdzi że po co Wam devops w zespole, poradzicie sobie chłopaki ;) Robiąc coś "poza etatem" też jakieś podstawowe umiejętności się przydadzą, choćby po to żeby postawić sobie środowisko developersko-testowe które będzie miało ręce i nogi ;)

Python 2 : 2 JS

  • prestiż stanowiska,

Ja tam bardziej szanuję Devopsów niż frontendowców. Poza tym Python master race ;)

Python 3 : 2 JS

  • zarobki,

Zarówno na froncie, jak i devopsom potrafią płacić krocie. Powiedziałbym, że remis, gdybym nie powiedział parę punktów wyżej, że rekrutując się na programistę tę drugą umiejętność możesz sobie prawdopodobnie wsadzić - musiałbyś pewnie całkiem przejść na devopsa żeby się tym remisem nacieszyć :P

Python 3 : 3 JS

  • przewidywany wzrost rynku,

Ostatnio rozbiłem szklaną kulę, następną dostanę dopiero na święta :/

  • poziom odpowiedzialności ciążącej na pracowniku

Zrąbiesz na froncie - klient zobaczy i się wkurzy, że coś tam się rozjeżdża

Zrąbiesz devopsy - klient niczego nie zobaczy, chyba że demo z laptopa :]

Chyba jednak większa odpowiedzialność jest w tym drugim przypadku, ale czy mam przyznać punkt za odpowiedzialność, czy jej brak :P

2

Poza dodatkowymi ścieżkami rozwoju warto na początku wymasterować czystą javę. Działanie JVMa, memory model, współbieżność

0

@superdurszlak: fajna analiza, dzięki :)

Jeszcze jedno Panowie,
jeśli chodzi o języki naturalne, mówię po angielsku jako tako i swój poziom oceniam na b2+ podchodzący pod c. Jestem w stanie się komunikować w sprawach technicznych, ale płynność i luz w komunikacji pozostawia jeszcze sporo do życzenia.
Jednak chciałbym też się nauczyć francuskiego, a jestem w nim początkującym.
Niestety nie mam czasu robić wszystkiego na raz, więc jaka jest Wasza opinia? Lepiej zacząć przygodę z francuskim czy wynosić angielski na wyższy level?

1
superdurszlak napisał(a):

W tej kategorii Python + DevOps nokautuje JS i front-end, przynajmniej jak dla mnie. Frontu nie zdzierżę, uważam go za zło, czysty rak i męczarnię

Małżeństwo i trójka dzieci czy wolny związek? Pytaj siebie, nie innych, co ci będzie odpowiadać. W pracy spędzasz więcej czasu niż w domu. Też wybieraj z czym TY się dobrze czujesz.

1
NeutrinoSpinZero napisał(a):

jeśli chodzi o języki naturalne, mówię po angielsku jako tako i swój poziom oceniam na b2+ podchodzący pod c. Jestem w stanie się komunikować w sprawach technicznych, ale płynność i luz w komunikacji pozostawia jeszcze sporo do życzenia.

Przepraszam, ale w takim razie nie umiesz na B2+, a tym bardziej na C1. Znajoma mi osoba ma certyfikat z C1 z innego języka niż angielski i to jest przepaść pomiędzy np. angielskim ze studiów na B2+ a tym, jak ta osoba mówi. Ja już tam słyszę piękny akcent, nie mówiąc o całkowitej płynności na większość tematów, w tym technicznych.

A wracając do tematu, to wybrałbym tak jak @superdurszlak i w moim odczuciu ma on dużo racji.

0

A jeszcze dodatkowe rzeczy niezwiązane z technologiami. Nie wiem czy byleś na studiach, ale jeśli nie to warto też poznać wszystkie technologie które wykorzystuje się pośrednio podczas tworzenia oprogramowania. Jak działa system operacyjny, jak działa komunikacja przez sieć, protokół HTTP, działania baz danych itp

2

Prawdziwy B2 to jest już w zasadzie biegła znajomość języka, może bez pełnej swobody w potocznym języku. Nie wiem skąd wzięło się przekonanie, że jak ktoś się dostał na poziom B2 na uczelni to taki poziom ma. Jak się na taki dostaliście, to na takim mieliście zajęcia prowadzone, a nie na tyle umiecie. Co więcej, nauka języka do B1 idzie w miarę szybko, ale przeskok z B1 na B2 to jest w większości przypadków dramat, wielka bariera niełatwa do przeskoczenia. I nic w tym złego, po prostu tak jest, ale jeśli masz problem z komunikacją - nie umiesz na B2 ;)

1

Trzeba iść do pracy do zespołu nie znającego języka polskiego. Angielski w bufecie, na piętrze w pokoju socjalnym, przy biurku obok. Używasz języka bo musisz, wtedy dopiero się uczysz. Zaleta pracy w międzynarodowej korporacji.

1

Oj to prawda - szkoła/uczelnia może nauczyć człowieka maks do solidnego B1. Ja tak właśnie miałem - po wielu latach nauki (języki wchodzą mi fatalnie) byłem w stanie przeczytać wszystko (no może poza literaturą piękną), ale komunikacja w obcym języku mnie przerażała. Próbowałem coś z tym zrobić we własnym zakresie, ale finalnie odpuściłem. Paradoksalnie to była najlepsza decyzja, bo B2 moim zdaniem nie da się "nauczyć". Wszystko przyszło naturalnie - oglądałem sporo materiałów po angielsku, poprawiałem swoje rozumienie języka słuchanego. Potem były seriale (często z napisami po angielsku), audiobooki itp. W pracy nagle zaczął być ten język wymagany, więc wykupiłem trochę prywatnych lekcji przez Skypa i nagle się okazało, że na standardowe tematy spikam zupełnie bez problemu i daily nie ma dla mnie większego znaczenia czy jest po polsku czy po angielsku. Duża w tym zasługa mojego nauczyciela, który w czasie lekcji prywatnych zmusił mnie do rozmowy na tematy, w których strasznie brakowało mi słownictwa - omawialiśmy np. badania/teorie naukowe, kwestie społeczne itp. Nauczyłem się tam wyrażać nawet dość skomplikowane myśli zasobem słownictwa, który miałem. Po czymś takimi powrót na standardową gadkę o rzeczach, w których nie brakuje mi słownictwa jest banalnie łatwy.

Co najśmieszniejsze w weekend miałem okazję porozmawiać z Ukraińcem nie mówiącym po polsku, ani angielsku. Na studiach przez 4 lata uczyłem się rosyjskiego (ale było to lata temu) i doszedłem tam do poziomu "ledwie rozumiem tekst czytany". Ku mojemu wielkiemu zdziwieniu gadka poszła tak naturalnie, że szok. Oczywiście ukraiński jest bardzo podobny do polskiego + osoba z którą rozmawiałem mówiła dobrze po rosyjsku bo mieszkała w Moskwie przez wiele lat więc był to bardziej taki dialekt z 3 języków, ale rozmowa się na prawdę kleiła przez kilkanaście minut (czekaliśmy na wydruk dokumentów). Widać, że oprócz samej wiedzy coś się musi w głowie przestawić aby wskoczyć na poziomu komunikatywnego języka. Aż powoli zaczynam rozważać powrót do nauki niemieckiego, który swego czasu okazał się największą naukową porażką mojego życia ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1