Smutny Java Developer - jak przestać klepać crudy?

Smutny Java Developer - jak przestać klepać crudy?
B1
  • Rejestracja:ponad 5 lat
  • Ostatnio:8 minut
  • Postów:372
1

Mam pytania dotyczące ścieżki kariery.

Na początek trochę o mnie: mam prawie 4 lata doświadczenia (ale tylko na papierku, w praktyce godzinowo wyszło tak z 2,5 roku bo czasy studenckie i niepełny etat) głównie jako backendowiec w Javie, pobocznie zawsze robiłem jakieś proste taski na froncie (w każdej firmie inna technologia: vaadin, eclipse rap, jquery, react), co w sumie jakoś nie rozwijało, ale taka różnorodność dawała mi nieco większą satysfakcję z pracy od klepania crudów.

Aby się wycenić i oszacować poziom połaziłem dla sportu na rozmowy rekrutacyjne, wyceniają mnie obecnie na 90-100PLN/h, bardzo dobrze wypadam z javy core, części algorytmicznej (zawsze lubiłem algorytmikę, zagadki logiczne, szachy, sudoku + ukończyłem licencjat z matmy) i sql, ale słabo mi idą bardziej zaawansowane rzeczy typu gc czy wielowątkowość bo jej nie używam w projekcie czy spring bo nie widzę sensu pamiętania miliona adnotacji które sprawdzę w 10 sekund co robią. Rozwój na froncie mnie raczej nie interesuje. I w sumie mam dwa pomysły na dalszy rozwój:

  1. Skupić się na java advanced, obkucie się na rozmowy, wkręcić się gdzieś na mocny mid/senior i na 90% klepać crudy (czego nie lubie, ale trudno, za dobry hajs mogę to robić)

  2. Skupić się na algorytmice, może SQL i robić coś ambitniejszego (co by mnie bardziej ciekawiło), no ale gdzie w takim razie szukać pracy java + algorytmika + licencjat z matmy? Na myśl mi przychodzi jakieś data science (ale to zdominowane przez pythona), jakieś modelowanie matematyczne (gdzie ofert pracy nie widziałem chyba nigdy), a chciałbym jednak nie zaczynać kariery od nowa tylko jakoś wykorzystać doświadczenie w javie.

I w sumie teraz główne pytanie, co mogę zrobić by nie zostać smutnym klepaczem, tylko jednak podążyć drugą ścieżką? Jakie lub jak szukać stanowisk z takimi wymaganiami?

EDIT:
Wpisywać w CV rzeczy w stylu finalista Mistrzostw Polski w Grach Matematycznych i Logicznych czy członkostwo w Mensie, czy to raczej nie ma wpływu (lub ma negatywny)?

edytowany 2x, ostatnio: benoni12
RequiredNickname
ja ostatnio czytałem ogłoszenie w którym było napisane w nice to have że szukają kandydatów po 3 Warszawskich uczelniach (jak potem sprawdziłem na LI to faktycznie 99% osób które znalazłem po nich były więc nie byłbym pewien co do tych mistrzostw ;)
PaulGilbert
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Postów:914
4

W ogłoszeniach opisy stanowiska mogą być szablonowe i niewiele mówiące. Szukaj lepiej nie po opisach stanowiska a po firmach o takim profilu jak Ci pasuje, a najlepiej na ich stronach. Zrób sobie swoją listę potencjalnych firm które by Cię interesowały i monitoruj ich stronki.

AS
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 15 godzin
  • Postów:344
3

Skupić się na algorytmice

Algorytmika? A po co to komu w realnym świecie? Nie mówię, że się nie zdarza, ale sorry, nie znajdziesz pracy na stanowisku Senior Algorithm Big Brain Developer.

Na myśl mi przychodzi jakieś data science (ale to zdominowane przez pythona),

To naucz się pythona i uderzaj. To nie gryzie (tylko dusi).
Dobrze myślisz, że modelowanie AI to dzisiaj miejsce, gdzie możesz robić jakiś research w pracy. Niestety same opisy stanowisk nic nie mówią, musisz się dopytać, czego będą od ciebie wymagać.

Jak zobaczysz Java+Spring Boot+Hibernate na pierwszych miejscach w wymaganiach, to nie będzie to projekt dla ciebie.
Jak zobaczysz Scrum na wstępie opisu stanowiska, to wiedz, że nie będziesz robić żadnego prototypowania, tylko będziesz skupiał się na trzepaniu tasków.

EDIT:
Wpisywać w CV rzeczy w stylu finalista Mistrzostw Polski w Grach Matematycznych i Logicznych czy członkostwo w Mensie, czy to raczej nie ma wpływu (lub ma negatywny)?

Widzę impostor syndrome wszedł głeboko, skoro się pytasz. Ludzie wpisują straszne rzeczy do CV, a twój pomysł ma jakiś tam związek z pracą. Wklej to do rozdziału „inne”. Może zrobi wrażenie, może zostanie zignorowane. Nie zaszkodzi.

CZ
Są algorytmiczne miejsca pracy. Z tym, że nie wiem czy w Javie. Raczej nie.
KamilAdam
python nie dusi Genialne XD
KamilAdam
Jak zobaczysz Java+Spring Boot+Hibernate na pierwszych miejscach w wymaganiach, to nie będzie to projekt dla ciebie. +11
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:2787
1
benoni12 napisał(a):

słabo mi idą bardziej zaawansowane rzeczy typu gc czy wielowątkowość bo jej nie używam w projekcie czy spring bo nie widzę sensu pamiętania miliona adnotacji które sprawdzę w 10 sekund co robią.

Jeśli nie widzisz sensu uczenia się na rozmowy kwalifikacyjne, żeby zwiększyć zarobki, to ¯_(ツ)_/¯

Zobacz pozostałe 5 komentarzy
I1
@szok gdybym był świadomy takiego długu technicznego to też bym pytał na rozmowie o nowości w nadziei, że znajdę partnera do modernizacji softu, która nastąpi prędzej czy później
SZ
@itou123: No właśnie nie byłem świadomy (wyszło po zatrudnieniu) wiem już teraz na przyszłość czego oczekiwać i jak :)
I1
@szok niezrozumiale to napisałem :-) poprawione: "gdybym jako programista przepytywał kandydata na rozmowie o pracę i zarazem jako programista byłbym świadomy długu technicznego, który mamy w projekcie do którego szukam kandydata, to też bym pytał tego kandydata o nowości w nadziei, że znajdę partnera do modernizacji softu, która nastąpi prędzej czy później"
SZ
Aaa kumam :) no to było by extra bo jednak refactor i ogólnie migracja sprawia mi duża frajdę :)
Miang
dług techniczny często jest właśnie po tym jak przyjdzie nowy i rzuci się na ulepszanie, a w połowie roboty okaże się dla niego za trudna i se pójdzie
Resident
  • Rejestracja:ponad 15 lat
  • Ostatnio:około rok
  • Postów:195
1

Może pomyśl o zmianie obszaru w którym pracujesz? Webówka to dobry hajs jeśli się jest ogarniętym, dużo ofert pracy, natomiast często wiąże się to z klepaniem curdów, raz na jakiś czas wpadnie greenfield gdzie oprócz CRUDA masz architekturę. Może idź w tym kierunku (architektura, systemy rozproszone - strasznie dużo teorii, znajomość narzędzi itd ale hajs dobry i trzeba być dobrym, by system działał nie tylko na papierze ale i na prodzie)?

Dużo matmy i algorytmów masz również w gamedevie, wymagany głównie CPP/C# oraz znajomość Unreal/Unity, ewentualnie jako CPP dev do firmy, która rozwija własny silnik. Minusem są zarobki w gamedevie :(

Również jeśli masz potencjał to jakieś niskopoziomowe rzeczy, gdzie głównie robisz w C/CPP/Rust (jak rozwijanie języka programowania, systemy operacyjne itd)


...
edytowany 3x, ostatnio: Resident
B1
dzięki, właśnie szukam takich ciekawszych ścieżek
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
10

Ewakuowałem się z javowych CRUDów, a siedziałem w nich długo - 15 lat :-) (no nie wszystko to były takie faktycznie durne CRUDy - ale jednak webówka itp).
Primo - po pierwsze to trzeba wyjść z Javy, ciekawe projekty niecrudowe to miałem w Kotlinie (i TypeScript - front (o rany !!!) .
Paradoks Javy polega na tym, że zupełnie się do CRUDów nie nadaje, i to się właśnie w niej robi.

Czym można sie zająć:
Siedze w dzialce blisko blockchain i mam teaz takie problemy jak BFT, Vector clocks, smart kontrakty - ataki na to itp. Wielka matematyka to to nie jest, a do tego jestem klepaczem (inni zajmują się główkowanie - ja klepie) ale w stosunku do CRUDów postęp jest.
W mojej bańce ludzie używają Haskella, Scali, Rust, gdzieś dalej Kotlina.

IMO najciekawsze problemy to sa w gamedev - ale to C++/C# i może Rust niedługo (nie mam pojęcia).


jeden i pół terabajta powinno wystarczyć każdemu
Zobacz pozostałe 6 komentarzy
M0
Dlaczego używałeś Option z vavr zamiast Optional+map?
CY
Jak sie wbic do takiej bańki alla blockchainowej?
BA
@jarekr000000: czy C# bardziej nadaje się do CRUDów? Szukam dobrego języka do CRUDów.
jarekr000000
@Batgirl: z tego co wiem to nadaje się minimalnie lepiej, bo łata kilka z wymienionych problemów, ale nie mam wystarczającego doświadczenia z C#, żeby się wypowiadać. Ze znanych mi lekko lepiej do CRUDów nadaje się kotlin (i się używa), zdecydowanie lepiej do CRUDów nadaje się Scala (i czasem się używa), teoretycznie to cudowny do CRUDów powinien być haskell - ale żadnego nie widziałem, więc może język spoko, ale może nie być przykładów, ani wystarczająco dobrych bibliotek.
jarekr000000
@mariusz00: Serializable, brak durnej logiki :map (_-> null) == empty). Do tego spójność z resztą Vavr (either, try i przede wszystkim kolekcje). (java.util.* totalnie nie nadaje się do pisania aplikacji, pomijając już główny problem - czyli mutowalność, mamy jeszcze niespójne api z tonami pułapek).
WO
  • Rejestracja:ponad 2 lata
  • Ostatnio:dzień
  • Postów:33
1

IMO znajdź jakiś ciekawy startup, pewnie kasa będzie mniejsza, ale może robota ciekawsza. Szukaj jednak takiego co poza kasą od inwestorów ma płacących klientów. Dziś o VC nieco trudniej i np. startup, który jeszcze nie zarabia, może zwyczajnie nie pozyskać kolejnej rundy, choćby projekt był nie wiadomo jak bardzo interesujący.

CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:około miesiąc
  • Postów:2284
0

Czasem na jakiś uczelniach chcą Javy jako języka programowania.
No, ale generalnie niestety trzeba się przebranżowić a tu będziesz potrzebował o wiele więcej pracy, bo oprócz pythona/c++ to trzeba będzie przyswoić wiedzę domenową, która bywa cięższa. No i bedziesz całościowo mniej zarabiał, bo najwięcej kasy ma się właśnie w webowce, Javie itd.

marcyse
  • Rejestracja:około 4 lata
  • Ostatnio:6 miesięcy
  • Postów:76
1

Pomyśl nad devopsowaniem, może to kolejny twój krok zainteresowań, o którym jeszcze nie wiesz.

nowy_kret_2
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 6 godzin
  • Postów:305
0

w javie i nie crudy to chyba jakies hft, ale to musailbys sie pewnie do city przeniesc i miec leb jak sklep. Inna opcja to zmienic technologie. Tyle ze tu trzeba wlozyc wysilek w nauke nowego.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
6
marcyse napisał(a):

Pomyśl nad devopsowaniem, może to kolejny twój krok zainteresowań, o którym jeszcze nie wiesz.

Jako okazjonalny programista YAML powiem:
To dobrze płatna działka, ale cholernie frustrująca dla programisty. Wielogodzinne wprawtrywanie się w konsolę, bo znowu coś porypałeś w parametrach startowych serwisu i trzeba powtórzyć deploy. Strasznie smutne.

Fajnie jest ogarniać narzędzia/CI/chmurki na tyle, żeby móc sobie wszystko zoptymalizować / odapalić. Ale jako praca na etat to smutne.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
OL
  • Rejestracja:około 2 lata
  • Ostatnio:około 2 lata
  • Postów:70
2

Tutaj przedmówca dobrze powiedział, miałem czasem obowiązki Devopsa i do frustracji doprowadzało mnie to że jakaś libka nie działała tak jak potrzeba bo jej maintainerzy zapomnieli o niej a podbicie wersji pluginu z której ona korzystała rozwiązywało problem xDDDD do czego czasem się dochodziło po paru dniach. Albo że jakoś tool pod spodem dodaje znak nowej linii czy inne cudawianki.

Jak piszesz swój kod to masz kontrolę i większą władzę nad tym co robisz.


Hey XYZ, I wanted to check in with you on the progress of XYZ. We have a tight deadline for this sprint, and I was hoping we could stay on track to deliver on time. Can you give me an update on your progress so far and if there are any roadblocks that we can help address?
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
3

Duże firmy / korporacje / softłer-domy to niestety miejsca gdzie w większości będzie się robić rzeczy szablonowe, masowe, nudne w tym CRUDy. Jedynie mały procent będzie miał okazję robić rzeczy ciekawe. Pozostaje pytanie jak się z tego wyrwać?

benoni12 napisał(a):

I w sumie teraz główne pytanie, co mogę zrobić by nie zostać smutnym klepaczem, tylko jednak podążyć drugą ścieżką? Jakie lub jak szukać stanowisk z takimi wymaganiami?
Wpisywać w CV rzeczy w stylu finalista Mistrzostw Polski w Grach Matematycznych i Logicznych czy członkostwo w Mensie, czy to raczej nie ma wpływu (lub ma negatywny)?

Brak nudy to umiejętność samodzielnej realizacji zadań z różnych obszarów. Jeśli wyspecjalizowałeś się w CRUD'ach na bazie JAVA to teraz spróbuj samodzielnie robić np. front-endy w JS/CSS/HTML. To pozwoli Ci tworzyć projekty w o wiele szerszym zakresie i bardziej samodzielnie.
Z doświadczenia wiem, że w małych firmach są ciekawsze projekty a stawki w zakresie 150zł - 240zł / godz. już dla większości stały się normą i mało kto z ich powodu rezygnuje ze współpracy. Mowa tu o polskich klientach - tak, często tych wyśmiewanych "Januszexach" co to Pan Adam zatrudnia tylko 10 osób i handluje np. zbiornikami na wodę. Fakt, że takie stawki osiągamy poprzez kompleksowe dostarczanie rozwiązań, czyli od rozmów wstępnych przez projekt, wykonanie, testy po dostarczenie działającego rozwiązania. Wymaga to szerokiej wiedzy ale warto wspomnieć, że 20 lat temu też wszystkiego nie wiedziałem a też w taki sposób działałem. Było trudniej bo to zmuszało mnie do nauki i zdobywania wiedzy, z której dziś korzystam i na której zarabiam.
Na początek nie musisz umieć poruszać się we wszystkich obszarach bo nigdy nie dostaniesz zlecenia, które będzie wymagało znajomości ich wszystkich. Może się trafić, że dostaniesz zlecenie na prosty system okienkowy na desktop + aplikacja na telefon. Z pierwszym prawdopodobnie poradzisz sobie już dziś a z mobilną się douczysz.
W ten sposób za kilka lat ogarniesz technologie od niezbędnego zarządzania serwerami przez projektowanie, back-end po front-end niezależnie czy będzie on mobilny, w przeglądarce czy desktop. Być może w porównaniu z profesjonalnym Analitykiem z Google będziesz "słaby" ale też nie każdy problem wymaga "rocket-science" by go rozwiązać. Stwierdzę nawet, że większość projektów wymaga minimalnej podstawowej wiedzy z:

  • prowadzenia rozmów wstępnych i analitycznego umysłu;
  • projektowania aplikacji / bazy;
  • czegoś w czym stworzymy serwer dla back-end do współpracujący z bazą;
  • znajomości technologii WEB - czyli coś o będzie gadać z back-end i ładnie wyglądać;
  • dziś fajnie jest umieć zrobić aplikację na telefon. Na szczęście mamy tu masę technologii a od biedy znając juzJS/HTML i CSS można zrobić Progressive Web App i nie wgłębiać się w nowe technologie.
  • podstawy jakiejś chmury Azure, AWS itp...

Ogarniecie podstaw powyższych zagadnień to kwesta roku może dwóch lat ćwiczeń ale warto to zrobić bo na całą resztę życia będziesz miał ogólniejsze pojęcie o tworzeniu systemów i nawet jeśli taka forma pracy Ci nie podejdzie to zamykając się w jednym z obszarów będziesz zwyczajnie lepszy niż Ci co tego nie "liznęli".


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
edytowany 2x, ostatnio: katakrowa
JA
  • Rejestracja:prawie 6 lat
  • Ostatnio:dzień
  • Postów:55
1
katakrowa napisał(a):

Brak nudy to umiejętność samodzielnej realizacji zadań z różnych obszarów. Jeśli wyspecjalizowałeś się w CRUD'ach na bazie JAVA to teraz spróbuj samodzielnie robić np. front-endy w JS/CSS/HTML. To pozwoli Ci tworzyć projekty w o wiele szerszym zakresie i bardziej samodzielnie.

No tak, gość chce uciec od frameworków i innych pobocznych rzeczy, a Ty mu polecasz wejście w to głębiej (praca we frontendzie jest chyba jeszcze bardziej odległe od programowania sensu stricto, niż klepanie beanów w springu i użeranie się z hibernate'em).

Ja bym poszukał w firmach zajmujących się ML (z ostatnio widzianych np. DeepL), albo posiadających własny, innowacyjny produkt, który coś robi (np. HERE (ta firma od map)). Jeśli jesteś dobry w klepanie zadanek, spróbowałbym też np. do firm typu google (na interview nikt nie pyta o springa, liczy się głównie sprawne rozwiązywanie zadań algorytmicznych).

CZ
Ale w FAANGach to samo jest co w zwykłym korpo. Do innowacyjnych rzeczy go nie wezmą, bo biorą tylko localsow stacjonarnie
WeiXiao
@Czitels: nie sądzę że w 100% tak jest
nowy_kret_2
nie wiem czy zawsze ale w projekcie dla googl'a takim crudowych/zleconym zewnetrznie nie uzywali spring i hibernejta tylko na customach
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 3 godziny
  • Postów:5107
1

mam prawie 4 lata doświadczenia (ale tylko na papierku, w praktyce godzinowo wyszło tak z 2,5 roku bo czasy studenckie i niepełny etat)

plus za uczciwość, wielu nie potrafi się przyznać :D

A co do tematu - znaleźć sobie jakąś fajną działkę, spróbować wejść w nią na tyle ile się da i aplikować

edytowany 2x, ostatnio: WeiXiao
TR
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:731
0
benoni12 napisał(a):

[...] I w sumie mam dwa pomysły na dalszy rozwój:

  1. Skupić się na java advanced, obkucie się na rozmowy, wkręcić się gdzieś na mocny mid/senior i na 90% klepać crudy (czego nie lubie, ale trudno, za dobry hajs mogę to robić)

  2. Skupić się na algorytmice, może SQL i robić coś ambitniejszego (co by mnie bardziej ciekawiło), no ale gdzie w takim razie szukać pracy java + algorytmika + licencjat z matmy? Na myśl mi przychodzi jakieś data science (ale to zdominowane przez pythona), jakieś modelowanie matematyczne (gdzie ofert pracy nie widziałem chyba nigdy), a chciałbym jednak nie zaczynać kariery od nowa tylko jakoś wykorzystać doświadczenie w javie.

Jeszcze możesz spróbować sił w testach automatycznych/integracyjnych. Może nie jest to bardzo rozwojowe, ale pomoże zdobyć wiedzę z różnych technologii ze środowiska Javy. Napisanie testów integracyjnych między systemami/mikroserwisami to dość przyjemna robota, bo wszystko się robi samemu. I CRUDów nie ma.

EDIT:
Wpisywać w CV rzeczy w stylu finalista Mistrzostw Polski w Grach Matematycznych i Logicznych czy członkostwo w Mensie, czy to raczej nie ma wpływu (lub ma negatywny)?

wszystko co robisz czy osiągnąłeś jest mile widziane w CV


musica curat corpus at animam
JA
testowanie dla miłośnika algorytmów -- ,,świetny" pomysł...
FA
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 4 godziny
  • Postów:162
0

Jestem w podobnej sytuacji (Java, też jestem po matmie.) Będę szedł w stronę kryptografii, blockchaina. Wydaje mi się, że dla Ciebie też to może być dobra opcja. A i jeszcze coś... ja bym Cię wycenił na 150 PLN.

MI
Czy aby być poważnie traktowanym w kryptografii, nie wypadałoby móc się pochwalić jakimś doktoratem z teorii liczb i algebry abstrakcyjnej + nakierowane to na krypto?
FA
Miałem stypendium naukowe na matmie ;) Powinienem podołać.
MI
Stypendium rektora to i ja miałem ze 2 razy i osobiście nie sądzę ze to jakoś świadczy o potencjale w powyższych dziedzinach na wysokim poziomie :P bardziej pytałem(nie wprost - nie wątpię w czyjeś możliwości) o realia pracy w krypto jeśli znasz takie. Moje doświadczenia są takie ze doktoraty z krypto/algorytmiki z matmy/infy to dopiero wstęp aby dostać coś poważniejszego do robienia.
FA
Tytuły naukowe są przereklamowane. Wystarczy przytoczyć wywody niektórych profesorów ;)
jarekr000000
Ale dlaczego miałby być poważnie traktowanym w kryptografii? niepoważnie też jest zupełnie dobre - ważne żeby kasa się zgadzała.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:5 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1
jarekr000000 napisał(a):
marcyse napisał(a):

Pomyśl nad devopsowaniem, może to kolejny twój krok zainteresowań, o którym jeszcze nie wiesz.

Jako okazjonalny programista YAML powiem:
To dobrze płatna działka, ale cholernie frustrująca dla programisty. Wielogodzinne wprawtrywanie się w konsolę, bo znowu coś porypałeś w parametrach startowych serwisu i trzeba powtórzyć deploy. Strasznie smutne.

Fajnie jest ogarniać narzędzia/CI/chmurki na tyle, żeby móc sobie wszystko zoptymalizować / odapalić. Ale jako praca na etat to smutne.

Ja to właśnie przeżywam i to jest niesamowicie smutne. Może nie jestem full time devopsem, ale mamy w systemie Sparka który dobrze się zachowuje tylko na zdalnej maszynie. A najlepiej z taką dużą ilością danych. Wiec praca wygląda ta.

  1. Coś tam klepie lokalnie, jak kompiluje się, szczatkowe testy przechodzą i wydaje się że jest dobrze muszę zmerdzować feature brancha do developl brancha
  2. Zmiany aplikują się na środowisko developerskie gdzie są szczątkowe dane. Puszczam Joby i patrzę co się dzieje. Czasem wrzystko przechodzi od razu, ale o wiele częściej coś sie wywala. Jak jest już dobrze to przenoszę zmiany z develop brancha na integration brancha
  3. Zmiany aplikują się na środowisko integracyjne gdzie jest więcej danych. Niektóre joby trwają godzinami. Dobrze jest jak uda sie joba puścić na koniec dniówki. Czasem przeciągam dniówkę o pół h żeby jeszcze puścić i zobaczyć wyniki rano. Pół h oczywiście odbieram sobie następnego dnia

Ogólnie mało to przypomina pracę w TDD :D A historia w repo wygląda jak tragedia :D Na szczęście praca nad Jobami w Sparku to tak tylko 20-25% mojego czasu :P Inaczej bym pewnie zwariował :P

Oczywiście jak ktoś ma jakiś pomysł jak testować Sparka czy Airflowa lokalnie to chętnie przyjmę pomysł czy tutaroal jak to zrobić


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 4x, ostatnio: KamilAdam
markone_dev
O jakich testach Airflow na lokalu piszesz? Nie możesz sobie odpalić kontenera z Airflow lokalnie i na nim testować logikę DAGów (https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html)? Wiadomo że kwestia wolumenu danych do testów to inny temat, ale logikę możesz sobie śmiało tak testować na małych zbiorach. Z doświadczenia z Airflow wiem, że najważniejsze są odpowiednio przygotowane dane zarówno pod kątem ilościowym jak i jakościowym, ale tu musisz sam o to zadbać i najlepiej to testować na środowiskach stage/qa/integracyjnych
W0
Tzn. nie wiem, jak korzystasz ze Sparka, ale kiedyś robiliśmy providery, które albo zaczytywały dane z konkretnych źródeł, albo też dane z CSV/Parqueta. Innym razem po prostu podmieniłem connector na H2 i odpalałem Kafkę, H2 i Sparka lokalnie - trwało to z 40 sekund na dobrej maszynie, ale przy dobrych danych wejściowych dawało dobry test integracyjny. Ale tak, masz rację w przypadku tego, że przy Sparkach, Hadoopach i innych tego typu cudach napisanie dobrych testów to wyższa szkoła jazdy.
SE
puścić proszę Pana, pUścić
KamilAdam
aaa, jedno wyłapałem, a drugiego nie. Dziękuję
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:3 minuty
  • Postów:3539
1

Ja swojego czasu przeszedłem z CRUDów na szeroko rozumiane Big Data oraz przetwarzanie rozproszone. Jest to dużo ciekawsze bo jest tu trochę roboty "inżynierskiej", tj.:

  • musisz grzebać w dokumentacji żeby znaleźć rzeczy, których w Google nie znajdziesz typu "który z pięciu rodzajów joinów będzie dobry do mojego przypadku użycia i dlaczego"
  • coś robi to, co powinno robić, ale robi to zbyt wolno - i wtedy zaczynasz bawić się w pomiary wydajności, zabawę z parametrami itp.
  • dochodzą sprawy infrastrukturalne, typu "ile node'ów wystarczy"

Stack to Java, SQL i Python, przy czym Pythona uczyłem się w locie i nie mam żadnych złudzeń, że CRUDa w nim bym nie napisał.

Tak jakbym miał wskazywać - to sporo firm zaczęło transformację z architektur synchronicznych (tj. tradycyjny CRUD) na taką opartą o zdarzenia (jakieś formy publish-subscribe) więc jeśli poszukasz to na pewno znajdziesz ciekawszy projekt.

edytowany 2x, ostatnio: wartek01
LitwinWileński
Zaloczyles spadek wynagrodzenia po takim przejsciu?
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:około godziny
  • Postów:3169
1

@KamilAdam: a jakbys zautomatyzowal stawianie srodowiska + load gena ktory wygenruje ci odpowiednia ilosc danych/ruch tak zeby sie to testowalo z automatu po kazdym commicie? Nie wiem co masz pod spodem, ale ja ostatnio cos takiego dla Kafki robilem. Po kazdym commicie buduje sie obraz dockerowy, na k8s zestawia sie tymczasowe srodowisko, ida testy i wszystko sie discarduje.

Nawet jak nie przetestujesz w pelni, to niech Ci da 80% pewnosci ze jest ok. Wtedy juz bedziesz wiedzial ze prawie gotowe, wrzucisz na integracje jak teraz i bedziesz mial pewnosc jak przejdzie.

jarekr000000
Ale on dokładnie opisywał zautomatyzowane.
ZN
ZN
  • Rejestracja:około 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:65
1

Kilka lat temu myślałem podobnie z tymi crudami, dlatego raz zmieniłem pracę na Python+ML. Na pierwszy rzut oka to było coś nietypowego, coś co mnie nakręcało, powodowało chęć czytania wielu książek, myśl, że to zamieni te 8 pustych etatowych godzin na coś miarę moich pragnień i możliwości była ekscytująca.

Czy tak było? Było, ale do czasu, gdy nie zdałem sobie sprawy, że czas potrafi płynąć za szybko.

Jak każdy projekt i ten miał terminy, w rezultacie musiałem się dwoić i troić, by wywiązywać się z założeń. Oczywiście sygnalizowałem niektóre problemy i dostawałem też więcej czasu, czasem też jakieś pomocne informacje więc nie było tak koszmarnie. Z pracy się wywiązałem, a ostatecznie produkt z powodzeniem został wdrożony do oddziałów firmy klienta rozmieszczonych w terenie całego kraju.

Wydawać by się mogło, że jest git i że o to chodziło.

No jak dla mnie niezupełnie, bo jakby spojrzeć na to od strony świadczenia usługi to wziąłem na siebie nieświadomie duże ryzyko (i potencjalne kary!). Pewne problemy powodowały, że nocki zarwałem, firma też do mnie wydzwaniała w urodziny w nocy, bym łatał błędy, bo następnego dnia prezentacja. Dodatkowo finansowo to nie było moje najlepsze zagranie, także ta ekscytacja to zbytnio nie pomaga w negocjacjach. Ostatecznie biorąc pod uwagę cały mój wkład jaki wtedy był to nigdy w życiu bym tego nie chciał powtórzyć, z wyjątkiem pracy na własnych warunkach i we własnej firmie.

LitwinWileński
Przejscie na pajtona wiazalo sie ze spadkiem wynagrodzenia?
ZN
znowutosamo
częściowo tak, ale bardziej powodem była wielkość firmy i wczesny etap produktu
LU
  • Rejestracja:około 9 lat
  • Ostatnio:3 dni
  • Postów:365
0

Ja kilka lat temu też szukałem zmiany jako C# dev. Rozważałem Unity, ale ostatecznie wylądowałem w krypto. Które polecam. Ale algorytmika Ci się przyda.

Zobacz pozostałe 6 komentarzy
KamilAdam
ale myślę że jest w tym bardzo dużo złego Co konkretnie?
Miang
co jest złego w byciu quasi-niewolnikiem? spytaj szwaczki w Bangladeszu
Miang
a wartościowi ludzie muszą wyjeżdzać
somekind
@Lukxxx: do każdego przecież się odzywali z Gramarly. :P
LU
@somekind: a myślałem, że jestem wyjątkowy :(
nowy_kret_2
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 6 godzin
  • Postów:305
0

@Lukxxx: przy pierwszej pracy juz ogarniales blokczejny czy on the job dopiero?

LU
On the job. Ostatnio robiliśmy wielką rundę rekrutacji, wzięliśmy 10 świetnych programistów, 2 miało doświadczenie z blockchainem, reszta wciąż się wdraża, ale idzie im super. To też kwestia ceny i wielkości poola. BTW żeby zatrudnić tych 10, mieliśmy z > 3000 CV i > 100 interviews. Możliwe, że w ciągu kilku miesięcy znowu będziemy tak szukać, bo pojawiają się nowe projekty.
Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:2 minuty
  • Postów:1659
8

Co złego w tym że jesteśmy klepaczami crudów dla Zachodu?
Ano to że :

  • można z nas łatwo zrezygnować
  • można nam stawiać warunki, zarówno pracownikom jak i politykom "panie dej zwolniernie z podatku"
  • nasi programiści sie nie rozwijają a uwsteczniają, nie mają możliwości nawet z dala podejrzeć ciekawszych bardziej skomplikowanych zadań bo te są w centrali, my dostajemy tylko zadania zdefiniowane przez kogoś może i gorszego technicznie, ale siedzącego w centrali
  • ludzie oduczają się inicjatywy, nie tylko nie rozwijają technicznie, ale i jeśli chodzi o umiejętności miękkie. Promowani są nieasertywni pokorni pracownicy. przez mikromanagement ludzie przestają umieć zarządzać własnym czasem pracy

dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
Miang
jeszcze dopiszę że dostając CRUDA do klepnięcia tak naprawdę pracujecie w weterfallu nie żadnym agile ;) nie macie wpływu na g* co spływa z góry
loza_prowizoryczna
Czy fatalizm prowadzi do antynatalizmu czy tylko do aborcjonizmu?
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:2787
9
Miang napisał(a):
  • można z nas łatwo zrezygnować

Tak samo jak można zrezygnować z programistów w US i Indiach.

  • można nam stawiać warunki, zarówno pracownikom jak i politykom "panie dej zwolniernie z podatku"

Nie rozumiem, o jakich warunkach mowa? Myślisz, że to prosta sprawa złapać takiego sensownego java developera?

  • nasi programiści sie nie rozwijają a uwsteczniają, nie mają możliwości nawet z dala podejrzeć ciekawszych bardziej skomplikowanych zadań bo te są w centrali, my dostajemy tylko zadania zdefiniowane przez kogoś może i gorszego technicznie, ale siedzącego w centrali

Przez całą moją przygodę z 4programmers nie dostałem odpowiedzi na pytanie czym jest ciekawe, bardziej skomplikowane zadanie. W pracy wszystko Ci działa od razu za pierwszym razem? Nie ma żadnych zagwozdek? Ja się przewinąłem przez kilka firm, w każdej były wyzwania i ciekawe rzeczy. Ale pewnie tu na forum bym został nazwany klepaczem CRUDów xd nigdy w życiu tych mitycznych CRUDów nie widziałem. Biznes nie płaci za CRUDy (czyli nakładki na baze danych, prezentującą stan bazy).

  • ludzie oduczają się inicjatywy, nie tylko nie rozwijają technicznie, ale i jeśli chodzi o umiejętności miękkie. Promowani są nieasertywni pokorni pracownicy. przez mikromanagement ludzie przestają umieć zarządzać własnym czasem pracy

Mikromanagementu również nie lubię, ale u Ciebie promowani są nieasertywni pokorni pracownicy? U mnie zawsze promowani byli ekstrawertyczni ludzie, umiejący robić dużo rozgłosu wokół siebie - pokorny, cichy i uległy Mirek programujący wszystko z palca, dostanie co najwyżej darmowe nadgodziny xd

OL
haha, z tymi darmowymi nadgodzinami to doje*ałeś bo ja właśnie byłem lauretatem w liceum z matmy, skończyłem infrę i w sumie takim cichym jestem i właśnie spotkało mnie to że w korpo mój manager co najwyżej dowalał mi coraz więcej zadań że zacząłem robić za darmo nadgodziny w Sprincie
LitwinWileński
Ja tez crudow nie widzialem nigdy, w sensie zadan ktore by byly tylko crudami
BA
  • Rejestracja:około 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
0

Co złego w tym że jesteśmy klepaczami crudów dla Zachodu?

Proponujesz jakieś rozwiązanie?

Bo ja to widzę jako narzekanie.

Z tego co się orientuje po rozmowach z rocznikami 40/50+, to za czasów jak jeszcze nie było roboty z zachodu to było znacznie gorzej dla pracownika.

edytowany 3x, ostatnio: Batgirl
Zobacz pozostałe 5 komentarzy
BA
A jakie są kroki które umożliwiłyby taki końcowy etap (dużo polskich firm które "zajmują się czymś więcej niż CRUD")? Tzn. kto i co konkretnie miałby zrobić?
Miang
politycy. mieliby nie przeszkadzać
BA
w jaki sposób przeszkadzają? Dlaczego komunikacja z Tobą jest taka ciężka ;)? Zawsze tak rozmawiasz?
Miang
spytaj Romana Kluskę w jaki sposób mu przeszkodzili
BA
Nie spytam.
EL
  • Rejestracja:ponad 4 lata
  • Ostatnio:około godziny
  • Postów:138
1
Pinek napisał(a):

Przez całą moją przygodę z 4programmers nie dostałem odpowiedzi na pytanie czym jest ciekawe, bardziej skomplikowane zadanie.

np.

  • sa programisci ktorzy pisza "SELECT book FROM shop", ale sa tez tacy ktorzy musza zaimplementowac kod ktory tego selecta wykona, uwzgledniajac ze to ma byc wydajne bedac czescia 3-kilometrowego zapytania korzystajacego jednoczesnie ze wszystkiego co jest w standardzie i kilku rozszezen
  • sa programisci ktorzy znaja i uzywaja kafki (czyli jesli ostatnio sie nic nie zmienilo to jakies 2 klasy z 3 metodami), ale sa tez tacy ktorzy musza ta kafke zaimplementowac zagwarantujac ze to bedzie dzialalo wydajnie na dowolnym srodowisku pod dowolnym obciazeniem. No i sa tez tacy programisci ktorzy musza napisac takie GC zeby kafka miala jakiekolwiek szanse byc uzyta w praktyce.
  • sa programisci ktorzy uzyja libki do wykrywania krawiedzi, ale sa tez tacy ktorzy musza wymyslic algorytm ktory to zrobi lepiej od istniejacych a potem zaimplementuja, i to tak zeby bylo wydajne na dowolnym liczydle

I zapewniam ze druga grupa programistow jest spotykana w przyrodzie.

CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:około miesiąc
  • Postów:2284
0

Z tego co się zorientowałem po rynku pracy to jak chcesz i się pouczysz to prędzej czy później dostaniesz jakaś ciekawa i wymagająca pracę. Po prostu trzeba mieć tą wiedze i znajomość konkretnego języka programowania, np c++ albo pythona.

Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:2 minuty
  • Postów:1659
1
Pinek napisał(a):
Miang napisał(a):
  • można z nas łatwo zrezygnować
    Nie rozumiem, o jakich warunkach mowa? Myślisz, że to prosta sprawa złapać takiego sensownego java developera?>

a potrzebni są bardzo dobrzy czy zwykli?

  • nasi programiści sie nie rozwijają a uwsteczniają, nie mają możliwości nawet z dala podejrzeć ciekawszych bardziej skomplikowanych zadań bo te są w centrali, my dostajemy tylko zadania zdefiniowane przez kogoś może i gorszego technicznie, ale siedzącego w centrali

Przez całą moją przygodę z 4programmers nie dostałem odpowiedzi na pytanie czym jest ciekawe, bardziej skomplikowane zadanie. W pracy wszystko Ci działa od razu za pierwszym razem? Nie ma żadnych zagwozdek? Ja się przewinąłem przez kilka firm, w każdej były wyzwania i ciekawe rzeczy. Ale pewnie tu na forum bym został nazwany klepaczem CRUDów xd nigdy w życiu tych mitycznych CRUDów nie widziałem. Biznes nie płaci za CRUDy (czyli nakładki na baze danych, prezentującą stan bazy).

pthreads ostatnio było ciekawym wyzwaniem

  • ludzie oduczają się inicjatywy, nie tylko nie rozwijają technicznie, ale i jeśli chodzi o umiejętności miękkie. Promowani są nieasertywni pokorni pracownicy. przez mikromanagement ludzie przestają umieć zarządzać własnym czasem pracy

Mikromanagementu również nie lubię, ale u Ciebie promowani są nieasertywni pokorni pracownicy? U mnie zawsze promowani byli ekstrawertyczni ludzie, umiejący robić dużo rozgłosu wokół siebie - pokorny, cichy i uległy Mirek programujący wszystko z palca, dostanie co najwyżej darmowe nadgodziny xd

całujący szefa w d*, a czy są ekstrawertycy czy introwertycy to mniej ważne. potem owszem dla siebie coś tam potrafili wyszarpać, ale w obronie "swojefgo " zespołu stanąc nie mieli zamiaru tylko przekazywali zadanai z góry z dodatkiem chamskiego ekstrawerycznego dowcipu


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10053
2

Jeśli masz aplikację, która nie ma za dużo logiki w sobie, i tak jak mówisz "cały czas klepiesz crudy" (pewnie masz rest, controllery, serwisy, i repozytoria), to może warto zrobić krok wstecz, i przestać robić to co Cię spowalnia? Nie traktuj wartości jak osobne modele i resource'y, tylko zrób jeden endpoint do przyjmowania crudów, olej rest, olej te warstwy service/repository, i wsadź cruda do bazy najprościej jak się da.

To byłby szczyt techdebtu w normalnej aplikacji, ale jeśli w Twojej nie ma nic poza crudami, to i tak nic nie tracisz tym, a zyskasz na czasie developmentu znacznie.

loza_prowizoryczna
Z drugiej strony w naturze im bardziej skomplikowany ekosystem tym bardziej odporny na zawirowania środowiska. Jak ci się łańcuch troficzny skraca to znak że niedługo wszystko pierdo***nie.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)