Dalsza ścieżka

0

Witajcie,
muszę się poradzić, bo zakopałem się we własnych rozkminach. Udało mi się ogarnąć pierwszą pracę w branży, ale nie stricte programowanie. Jakoś tak los rzucił mnie na linuxa.

Uczyłem się przez ostatni rok programować w Javie. Znam Javę, Springa, napisałem kilka aplikacji, nie koniecznie głupich CRUDów. Jednak dobić się do Javy ostatnio ciężej, a poza tym trochę się znudziłem klepaniem RESTowych API. Porobiłem sobie kilka klientów JavaFXowych.

Zerknąłem sobie na Pythona, zrobiłem 2 apki konsolowe i tak średnio się w tym czuję. Chciałbym wybrać sobie jaki drugi filar, w którym będę się rozwijał w następnym czasie. Prosiłbym Was o pomoc, co jest najbardziej rozsądne i korzystne finansowo.

  1. Python: kupiłem sobie książkę do Big Data i uczenia maszynowego. Jednak teraz mam obiekcje, ponieważ nie kończyłem ściesłego kierunku studiów i boję się, że po prostu kupę czasu nad tym spędzę, a wielkie G z tego wyjdzie, bo nie zrozumiem po prostu tematu. (IQ też jakiegoś błyskotliwego raczej nie mam). Zagadnienie mnie zaciekawiło, bo chciałem robić coś bardziej niszowego, ciekawego i przyszłościowego.

  2. JavaScript: chciałem ogólnie przejść kurs Front-endu, a przecież mamy teraz Node.js zdobywające popularność. Myślę, że na stronkach mógłbym dorabiać po godzinach, a poza tym w sumie lubię programować coś co "widać", a nie jest surowymi danymi. Ogólnie kusi mnie to ponieważ szybko bym mógł chwalić się efektami, ponieważ stronkę wrzucam na mój VPS i jest, a REST API nikt z moich znajomych nie zobaczy i nie skorzysta, bo po cholere.

  3. Linux, Bash, Kali i ogółem zagadnienia sieciowe: chodziło mi po głowie kształcenie się w kierunku kogoś jak Mr. Robot. Może pentester albo coś? Kwestie jak zawsze przyszłościowe i można zyskać poklask i podziw od ludzi. Także przydatność takiej osoby jest wysoka.

  4. Android: skoro znam Javę to myślałem, żeby trochę powędrować do Androida. Myślałem nad uczeniem się nawet Kotlina. Poznanie bliżej środowiska mobilnego jest mocno przyszłościowe wg mnie.

  5. Algorytmika: ciekawa dziedzina, którą chciałbym rozwijać tylko nie wiem czy mnie na to stać bez studiów.

  6. Szlifowanie Javy i wskakiwanie na następne wyższe poziomy.

  7. Low level: Już wcześniej zastanawiałem się długo nad tym. Od pisania aplikacji bardziej interesowałoby mnie pisanie narzędzi i ciekawych rozwiązań. Byłaby to fajna podróż, ale bez korzyści finansowych. Raczej nie przybliżyłoby mnie to do zdobycia pracy programisty.

Co sądzicie na ten temat? Który punkt byście mi polecili, a który stanowczo wyrzucili do śmietnika?
Pomóżcie proszę. Mam 25 lat i nie kończyłem żadnych studiów informatycznych, ani pokrewnych.

2

JavaScript: chciałem ogólnie przejść kurs Front-endu, a przecież mamy teraz Node.js zdobywające popularność.

Frontend jest trudniejszy od Node.js (więc frontendu możesz się uczyć jako główną dziedzinę nauki, a Node.js "przy okazji").

No i Node.js tylko w niektórych firmach się używa jako backend (ponieważ istnieje dużo języków backendowych, a nie tylko JS), a nawet tam Node będzie tylko jednym elementem układanki, bo w backendzie trzeba znać bazy danych choćby.

Jednak często używa się Node jako narzędzia pomocniczego we frontendzie, czyli warto znać choćby podstawy Node, bo to zawsze się przyda.

Z drugiej strony myślę, że ludzi, którzy dobrze ogarniają Node.js + ekosystem jest mniej niż ludzi, którzy dobrze ogarniają przeglądarkowy JS + ekosystem (bo to każdy teraz ogarnia), więc specjalizacja głównie w Node też może mieć sens.

Tylko, że ogólnie ekosystem JS to jest trochę droga przez mękę. Wszystko się zmienia ciągle, język się ciągle rozwija, powstają nowe frameworki, a i istniejące są niestabilne (tj. potrafią zmieniać api co kolejną wersję), sami frontendowcy to też nie są przyjaźni ludzie - z drugiej strony masz starych frontendowców, którzy epatują znudzeniem i poczuciem wyższości (ale za to mają solidne skille i dużo ekspa), a z drugiej strony masz nowicjuszy, którzy nic kompletnie nie wiedzą, nic nie ogarniają i nie myślą krytycznie, tylko idą za kolejną modą (bo uczą się tylko na zasadzie naśladownictwa)

Node.js zdobywające popularność.

To chyba 5 lat temu xD tzn. nie wiem jakie są statystyki, może wg jakiegoś słupka na wykresie dalej zdobywa popularność, kto wie. Ale mimo wszystko nie wiem, czy istnieje jakiś hype teraz na Node.

0

Uściślając: miałem trochę styczności z HTML i CSS i myślałem, żeby się frontu poduczyć tak trochę na doczepkę, żeby samemu móc zbudować kompletną aplikację serwer + klient. Tyle, że właśnie podchodziłem do tego trochę na zasadzie: to musi być proste. Coś tam w Angularze też zrobiłem zatem moja wiedza to trochę więcej niż zero.

Ogólnie to mam ból d**y, bo niemal wszystko mnie ciekawi, ale życie mam tylko jedno i muszę wybrać najlepszą opcję, biorąc pod uwagę dwa czynniki:

  1. Zainteresowanie
  2. Korzyść zatrudnieniowo-finansowa

Dlatego wydaje mi się, że JS będzie dobrą opcją i z bólem serca będę musiał rozstać się z innymi powyższymi zagadnieniami.

0
NeutrinoSpinZero napisał(a):

dało mi się ogarnąć pierwszą pracę w branży, ale nie programowanie

  1. Uczyłem się przez ostatni rok programować w Javie. Znam Javę, Springa, napisałem kilka aplikacji, nie koniecznie głupich CRUDów. Jednak dobić się do Javy ostatnio ciężej

  2. Algorytmika: ciekawa dziedzina, którą chciałbym rozwijać tylko nie wiem czy mnie na to stać bez studiów.

  3. Szlifowanie Javy i wskakiwanie na następne wyższe poziomy.

Na razie to jesteś na poziomie -1 bo nigdy nie pracowałeś jako programista Java więc pkt. 6 nie ma sensu

Pkt. 5 i pkt. 1 łączą się.

Nie prawda, że dobić się do Javy jest ciężej. Jest o wiele łatwiej bo przyjmują głownie korporacje, korporacje przyjmują praktycznie tylko po pierwszym stopniu na jednym z Tych Właściwych wydziałów, więc wbić się jest łatwo. Wolny rynek dał wysokie fory na start absolwentom.

1

Na razie to jesteś na poziomie -1 bo nigdy nie pracowałeś jako programista Java więc pkt. 6 nie ma sensu

Technicznych rzeczy z programowania można się akurat nauczyć samemu.

Gorzej z kwestiami typu komunikacja w grupie, tolerancja na głupotę, asertywność/pewność siebie czy innych przydatnych programiście skillów, które faktycznie można mieć na poziomie -1, jak się nigdzie nie pracowało (z drugiej strony czy ktoś musi pracować jako programista, żeby nabyć te skille?).

Uściślając: miałem trochę styczności z HTML i CSS i myślałem, żeby się frontu poduczyć tak trochę na doczepkę,
żeby samemu móc zbudować kompletną aplikację serwer + klient.

Idea słuszna ("żeby samemu móc zbudować kompletną aplikację serwer + klient. "), w ten sposób nawet jak będziesz chciał kiedyś zrobić własny startup albo choćby wziąć zlecenie freelance, to już będzie łatwiej.

Ale z drugiej strony nauka podstaw, żeby przy okazji coś zrobić, jak potrzeba, a nauka pod tym kątem, żeby się w czymś specjalizować (czyli zostać tym frontendowcem) to też trochę różne rzeczy. To drugie jest o wiele bardziej wymagające.

0
LukeJL napisał(a):

Na razie to jesteś na poziomie -1 bo nigdy nie pracowałeś jako programista Java więc pkt. 6 nie ma sensu

Technicznych rzeczy z programowania można się akurat nauczyć samemu.

Gorzej z kwestiami typu komunikacja w grupie, tolerancja na głupotę, asertywność/pewność siebie czy innych przydatnych programiście skillów, które faktycznie można mieć na poziomie -1, jak się nigdzie nie pracowało (z drugiej strony czy ktoś musi pracować jako programista, żeby nabyć te skille?).

Uściślając: miałem trochę styczności z HTML i CSS i myślałem, żeby się frontu poduczyć tak trochę na doczepkę,
żeby samemu móc zbudować kompletną aplikację serwer + klient.

Idea słuszna ("żeby samemu móc zbudować kompletną aplikację serwer + klient. "), w ten sposób nawet jak będziesz chciał kiedyś zrobić własny startup albo choćby wziąć zlecenie freelance, to już będzie łatwiej.

Ale z drugiej strony nauka podstaw, żeby przy okazji coś zrobić, jak potrzeba, a nauka pod tym kątem, żeby się w czymś specjalizować (czyli zostać tym frontendowcem) to też trochę różne rzeczy. To drugie jest o wiele bardziej wymagające.

Powiem Ci szczerze, że akurat o jednym małym Startupie myślałem, myślę, że to mi się może przydać.
Jeden kolega programista mi radzi, żebym się zdecydował, albo Backend albo Frontend, bo wszystkiego nie ogarnę na wysokim poziomie.
Inny mówi, żebym szedł w programowanie webowe, bo nie potrzeba matematyki jako takiej, a do Big Data itd nikt mnie nigdy nie weźmie, bo to raczej posada dla dobrego matematyka.

1

Co do big data - u mnie w robocie "matmą" i algorytmami zajmują się głównie doktorzy/magistrzy po kierunkach bardziej matematycznych niż informatycznych. Szukają teraz Pythonowca do pisania skryptów dla nich, i o ile do kwestii znajomości Pythona podchodzą różnie, to wymagają bezwzględnie dobrej znajomości algebry liniowej. Od kolesia który ma pisać tylko skrypty.

No więc jeśli myślisz o Big Data "na poważnie", to bym się zastanowił dwa razy na twoim miejscu. Albo zrobił tak jak ja - interesował się tym tylko na poziomie hobbystycznym.

I racja - trudno znać front i backend na wysokim poziomie. Jednak nic nie szkodzi na przeszkodzie, by jedno znać lepiej, a drugie gorzej. I to jest jak najbardziej możliwe.

0

Do Javy w korpo nie wezmą cię na pozycję poniżej samodzielnego regulara.

Na juniora z najlepszych wydziałów IT mają po 2, 3 albo 3,4 aplikacje na jedno miejsce. Kandydaci odsiani na przyjęciu na studia na dobry wydział 5 na jedno miejsce, później odsiani na pierwszym roku, przez następne lata zaliczyli podstawy szeroko pojętego IT, mają podstawy żeby świadomie wybrać kierunek rozwoju i w końcu jak już dobrnęli do dyplomu to mają za sobą tyle odsiewania, sprawdzania, projektowania, zaliczania, egzaminowania że coś tam jednak potrafią.

2 do 4 aplikacji na jedno miejsce juniora wystarczająco mała, fajna liczba żeby kandydatom przyjrzeć się bliżej bez straty czasu na sprawdzanie czy taki w ogóle coś się na bootcampie nauczył albo w domu cokolwiek samemu zrobił.

Bez wewnętrznego progu ustawionego na poziomie inżyniera kilku wydziałów IT w regionie na jedno stanowisko dla juniora będzie do rozpatrzenia 50 aplikacji, z czego i tak 45 nie będzie się nadawało do niczego. Zostanie jeden obiecujący samouk i 4 inżynierów.

Proces rekrutacji juniora optymalizuje się przez przyjęcie do wiadomości, że ewentualnie obiecujący samouk nie przejdzie dalej.
Z tych 4 inżynierów z dobrych wydziałów przejdzie dalej 2.
45 śmieciowych aplikacji (z punktu widzenia korporacji) nie będzie wcale brane pod uwagę. Duża oszczędność czasu.
Jeden obiecujący samouk niesprawiedliwie (ze społecznego punktu widzenia) odpadnie, ale taka niesprawiedliwość społeczna dla korporacji jest do przyjęcia.
Korporacja jest od zarabiania pieniędzy a nie od kontynuowania procesów przekwalifikowywania kucharzy i politologów na programistów.

Dawniej tego nie było ale dawniej nie było bootcampów i 500 CV spragnionych wbicia się w programowanie za 15_000.

0
CountZero napisał(a):

Co do big data - u mnie w robocie "matmą" i algorytmami zajmują się głównie doktorzy/magistrzy po kierunkach bardziej matematycznych niż informatycznych. Szukają teraz Pythonowca do pisania skryptów dla nich, i o ile do kwestii znajomości Pythona podchodzą różnie, to wymagają bezwzględnie dobrej znajomości algebry liniowej. Od kolesia który ma pisać tylko skrypty.

No i teraz po bootcampie koleś od pisania skryptów dostanie 15k a doktorzy 5k i magistrzy 4k.

A dlaczego tak? Bo każdy bootcamp gwarantuje pracę 15k. :p

0

Przez podstawową wiedzę z zakresu algorytmiki przebrnąłem, chociaż już analiza efektywności czy ich matematyczny zapis to czarna magia normalnie :)
Kończę książkę "Java. Concurency in practice". W kolejce mam świeżuteńką "Java. Efektywne programowanie".

No i właśnie pytanie: Drążyć dalej skille czy zasięgnąć czegoś nowego, świeżego. Dodam, że python mnie jednak trochę odrzuca. Mocno przywykłem do nawiasów klamrowych, poza tym w pythonie denerwują mnie ostro skrócone nazwy metod i te podkreślniki. Na plus zaskoczyła mnie zwięzłość. Żeby wczytać jakiś plik z zewnątrz wystarcza 1 linijka kody, a w javie to jest kilka linijek + blok try catch itd.

0

Mialem posobne myslenie co Ty , patrzylem na programowanie pod katem jezyka . Teraz glownie skupiam sie na architekturze, jezyk to tylko narzedzie . W pracy klepie w .net i JS , w domu c++ i python. Generalnie jak myslisz k czyms sieciowym , linux to zainteresuj sie infrastruktura i ogolnie narzedziamj DevOps , jak masz juz doseiadczenie w Linuxie to dobrze , goracy temat ostatnio ;)

1

mają podstawy żeby świadomie wybrać kierunek rozwoju i w końcu jak już dobrnęli do dyplomu to mają
za sobą tyle odsiewania, sprawdzania, projektowania, zaliczania, egzaminowania że coś tam jednak potrafią.

Albo wręcz odwrotnie. Tyle odsiewania, sprawdzania itp. że przejdą tylko najbardziej zdesperowani i najmniej zdolni, którzy nie mają pomysłu na siebie.

To tak jak z tymi wieloetapowymi rekrutacjami. Jak ktoś ma dobrą pracę i się spełnia, to nie będzie mu się chciało przechodzić 10 etapów rekrutacji, żeby się gdzieś zatrudnić. Prędzej osoba, której bardzo zależy na pracy będzie się w to bawić w akcie desperacji.

Jeden obiecujący samouk niesprawiedliwie (ze społecznego punktu widzenia) odpadnie, ale taka niesprawiedliwość społeczna dla korporacji jest do przyjęcia.
Korporacja jest od zarabiania pieniędzy a nie od kontynuowania procesów przekwalifikowywania kucharzy i politologów na programistów.

Niby tak, ale to i tak słabe sito. Moim zdaniem jest lepszy test. Pokaż zdjęcie swojego laptopa (zauważyłem, że dobrzy programiści mają zwykle naklejki na laptopie z nazwami frameworków czy języków - BTW ja nie mam, więc nie przeszedłbym tego testu). Ew. zamiast naklejki na laptop, ktoś może mieć tematyczny t-shirt, albo np. kubek z nazwą frameworka, widoczny na zdjęciu na Instagramie.

Także można sprawdzić, jakiej marki kandydat ma laptopa (czyli Apple, ew. high-endowy pecet) albo czy posiada iPhone (co można sprawdzić wchodząc komuś na Instagrama i szukając odpowiednich zdjęć)

Bo poziom znerdowania (czyli np. te naklejki) oraz zamożność (czy go stać na drogi sprzęt, a jeśli tak, to pewnie jest dobrym programistą, skoro inne firmy mu dużo płaciły) to naprawdę lepszy wskaźnik, niż studia.

Tzn. nie sądzę, żeby firmy powinny tak prowadzić rekrutację (Bo wg mnie powinni patrzeć bardziej na rzeczywiste kompetencje niż kierować się stereotypami), ale mimo wszystko i tak wydaje mi sie, że są to lepsze wskaźniki niż studia.

0

@LukeJL: a co sądzisz o takim problemie?
Otóż, boję się, że jak zacznę wchodzić we frontend, to moje umiejętności ze świata Javy zardzewieją/przestaną się dynamicznie rozwijać.

3 dni temu podjąłem się bojowego zadania: uczyć się frontendu jako case study. Pomyślałem:
"Programować umiem, dobrze sobie w tym radzę, dlatego JS przecież się nie będę uczył od podstaw bo po co? HTML i CSS używałem już kiedyś z Javą (Thymeleaf)"
Jednak nie jest lekko, a chciałbym jeszcze rozwinąć się w znajomości Linuxa i zagadnień sieciowych.

0

Otóż, boję się, że jak zacznę wchodzić we frontend, to moje umiejętności ze świata Javy zardzewieją/przestaną się dynamicznie rozwijać.

JavaScript jest innym językiem niż Java i wymaga innych nawyków. Widzę często, jak ludzie, którzy programowali w Javie czy w C#, po wejściu w JavaScript sobie nie radzą, bo w JS się kompletnie inaczej programuje.

Na tym etapie niektórzy łapią się za TypeScript (bo myślą, że będzie im łatwiej z TS), co ma mniej więcej tyle sensu jak oglądanie filmów z lektorem, żeby nauczyć się angielskiego. A przed JavaScript nie da się (jeszcze) uciec we frontendzie.

2

A nie myślałeś o tym, żeby się pobawić bardziej w DevOpsy?

Ktoś niedawno napisał w którymś wątku, że hurr durr w devopsach jest bardzo mało jakiegoś twórczego rozwiązywania problemów nie to co w programowaniu, ale wydaje mi się, że to nie jest do końca prawda. To znaczy, nie pracowałem nigdy stricte jako DevOps, ale ani w poprzednim, ani w obecnym projekcie nie mamy tak naprawdę własnego DevOpsa i jak ktoś spoza teamu ma wolne przebiegi, żeby nam coś ogarnąć to chętnie korzystamy, ale czasem też sami musimy bawić się w różne devopsowe hocki-klocki i wcale nie wydaje mi się to jakoś szczególnie nudne. A jak już wykminisz co i jak i klepniesz skrypt, który jednym kliknięciem załatwi całą dłubaninę za Ciebie to też jest moim zdaniem większa satysfakcja, niż z pochwał kolegów że ładnie ostylowałeś coś na froncie ;)

A przy okazji mógłbyś łatwo zahaczyć o security i low-level, w końcu devopsy to nie tylko klikanie w gotowe narzędzia, czasem też trzeba podłubać w jakimś skrypcie albo wykombinować swojego toola który zrobi robotę.

0

@superdurszlak: myślałem o tym. Znajomi podpowiadali mi, że faktycznie profil zainteresowań by pasował.
Jednak musiałbym najpierw się zapoznać bliżej z tematyką, a nie jest tak dużo materiałów jak do programowania w sieci.

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