Czy LeetCode to teraz standard?

Czy LeetCode to teraz standard?
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 2 lata
  • Postów:594
0

Hej, dawno nigdzie sie nie rekrutowałem. Jak zacząłem sie ostatnio rozglądać to czesto widze, że ludzie piszą, że rekrutacja to leetcode medium/hard. Czy to jakis obecnie standard rekrutacji? I zostaje mi po prostu przysiąść i sobie poprzypominać? Bo szczerze to wyszedłem z wprawy w rozwiązywaniu takich rzeczy.

AO
  • Rejestracja:około 9 lat
  • Ostatnio:około 5 godzin
  • Postów:183
13

To standard u Google gdzie mają pewno z tysiąc kandydatów na miejsce i mogą sobie wybrzydzać i u Januszexów które ich nieudolnie małpują.

UR
  • Rejestracja:około 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
5

Często spotykane w firemkach, co to chcą na siłę mieć dobrą renomę i często płacą poniżej stawek rynkowych/mniej od konkurencji gdzie liczy się skill, a nie wykucie merge sorta na pamięć :)

edytowany 1x, ostatnio: urke
p_agon
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:96-230
  • Postów:953
1

Czesciej spotykam sie z Codility na rekrutacjach


Reasumując wszystkie aspekty kwintesencji tematu, dochodzę do fundamentalnej konkluzji: To by nic nie dało, nie dałoby nic! Przez 10 minut można, przy 2h to już jakaś zemsta pagona.
SW
przecież to to samo...
p_agon
Tak jak Skoda i VW :]
DR
DR
  • Rejestracja:około 8 lat
  • Ostatnio:około 3 lata
  • Postów:107
3

W stanach na zachodnim wybrzeżu to może jest standard, u nas raczej rzadkość poza amerykańskimi firmami (Google Amazon i inne mniejsze,w Krakowie na przykład Qualtrics ale zadają pytania na poziomie pierwszego semestru na studiach).

edytowany 1x, ostatnio: devRandom
SM
W qualtrics-ie? na jakie stanowisko? raczej algorytm z poziomu very easy albo krótkie zadanko praktyczne.
DR
@smieszekheheszek: stąd mówię że zadanko na poziomie pierwszego semestru na studiach
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 2 lata
  • Postów:594
0

Wiekszosc tych duzych korpo z dużymi produktami o wiekszym zasiegu i z wieksza iloscia uzytkownikow to chyba jednak robi leetcode itp. :/
Na rekrutacji to moze z 3 lata temu bylem, ale z rok temu jak pytalem o process to wszedzie tylko algorytmy.

I szczerze to nie chce mi sie specjalnie przygotowywac na rekrutacje :/
I tak z 5 lat temu tez robilem DFS / Dijkstre na rekrutacji ale teraz z marszu to nie wiem czy bym zrobil :D

DR
do jakich firm aplikujesz?
KA
Niekoniecznie aplikuje ale sobie czytalem o procesie to np. Spotify, Box, Datadog, Snowflake, Grafana Labs, Sumo Logic... patrzac po jakis zdalnych i produktowych
DR
@karsa: no to strzeliłeś się dokładnie w amerykańskie firmy (albo oryginalnie amerykańskie albo wykupione po pewnym czasie). Tam będziesz mieć DSA, system design i "tell me about a situation when".
KA
Ano dokladnie
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5143
0

nigdy się nie spotkałem z algo na rekrutacji

prawie zawsze były to dość praktyczne, dotyczące day-to-day stuff rzeczy, nigdy fanciness

edytowany 1x, ostatnio: WeiXiao
Zobacz pozostałe 3 komentarze
WeiXiao
nie chcę wchodzić w szczegóły, może to wynikać z tego na jaką pozycje aplikowałem, bo nie był to akurat "pure" software development
KA
Pytam bo dobrze wiedziec kto tego nie robi :D
WeiXiao
rozumiem o co ci chodzi, aczkolwiek uważam że rzeczywistość może być trochę bardziej skomplikowana :P
JA
  • Rejestracja:około 3 lata
  • Ostatnio:prawie 3 lata
  • Postów:35
5

Ostatnio byl fajny watek na reddit w ktorym dobitnie wszyscy lali ciepłym moczem na rekrutacje typu leetcode. Osobiscie znam 3 ludzi, ktorzy robia takowe dla sportu tylko po to zeby na koniec nie przyjac oferty, argumentujac beznadziejnym procesem rekrutacji, ktory nie jest zwiazany z codzienna praca

Z mojego doswiadczenia tez mam niemiłe wspomnienia. Procesy w ktorych kazano mi pisac algo nie mialy nic wspolnego z takimi zadaniami na co dzien (DevOps/SRE here). Dlatego teraz jak ktoś mi proponuje taką formę to albo rozwiązuję dla sportu wykluczając firmę albo rezygnuję na starcie.

Warto natomiast rozwazyc taki proces jeśli oparty jest o jakies zadanie z dnia pracy - co zdarza sie bardzo, bardzo rzadko (u mnie raz na kilkanaście).

KA
No ja od 1.5 roku też robię Devops/SRE głównie i aż tak często nawet już nie programuje tylko mnóstwo innych rzeczy często trudniejszych niż klepanie webowego kodu. I później na rekrutacji na mordę dostaje algo.
KA
Z tym, że w przypadku devops to tylko duze firmy maja sensowna infrastrukture z ktora mozna pracowac, a czesto to duze firmy produktowe, kupione przez USA
JA
Czesto ktos po prostu nie umie w rekrutacje. Moze wyjde na buca ale lubie zadawac trudne pytania gdy rekrutacja zaczyna sie nie od tego od czego powinna. Czasami oszczedza to sporo czasu, bo zwyczajnie nie zaczynam ;-)
KA
He? Tutaj wiadomo o jakie pytania chodzi, algo, np. leedcode medium/hard. I prawda, nie nie jestem wycwiczony w zadaniach algorytmicznych bo w obecnej pracy mi sie to nie przydaje. Jak ja prowadzilem rekrutacje to wiekszosc programistow wykładało sie na cokolwiek z http, czy to o timeouty, circuit breakery, retry, cokolwiek. To pytania z kateorii banalnej. Ale na pewno sie nie konczy rekrutacji po jednym pytaniu. Generalnie zagiac kogos na rekrutacji jest bardzo latwo ale wedlug mnie to nie o to chodzi.
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:17 minut
  • Postów:3185
0

@japanlofi: @karsa: a w sumie jak powinna wygladac rerkutacja na Devops/SRE ? Bo u mnie zawsze jakos to bylo tak ze wpadalem w QE/perf testy -> tam trzeba bylo ogarniac zestawianie systemu itp. I z czasem okazywalo sie, ze potrzeby spore, a robotnikow malo i w sumie szkoda zebym robil QE jak potrafie inne rzeczy ogarniac.

edit: Link z komentarza od @karsa, moze sie komus przyda: https://github.com/mxssl/sre-interview-prep-guide

edytowany 1x, ostatnio: WhiteLightning
Zobacz pozostałe 5 komentarzy
JA
Robie dokladnie tak samo. Chociaz czasami jest fajny projekt, a w srodku widzisz jakiegos Señor Developer, ktory poznal 10 lat temu Jenkinsa i uwaza go za narzedzie do wszystkiego, uh.
Patryk Mieleszko
A co zamiast Jenkins?
KA
Cokolwiek. Np. Gitlab
Patryk Mieleszko
My mamy zaj.... ście wielki pipeline do budowy apki na Androida który ma tyle funkcji że nie wiem czy cokolwiek innego niż Jenkins by dźwigało, może się nie znam ale do dużych pipelinow Jenkins się kłania.
randomize111
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 2 lata
  • Postów:137
1

Dużo zależy od firmy, z tego co zauważyłem to najczęściej algorytmy i struktury danych są na rozmowach do dużych korpo, szczególnie zagranicznych, do jakiś małych firm to rzadziej. Pewnie wzięło się to z USA gdzie jest to teraz standard w każdej większej firmie. Kiedyś zamiast algorytmów i struktur danych były brain teasery typu "ile piłek tenisowych zmieści się w samolocie" , teraz jest DSA, może w przyszłości będzie coś innego. Są osoby (pewnie większość), które nie lubią takiego procesu ale zostaje albo się przystosować albo rekrutować się do innych firm.

Co do wielkich korpo to praktycznie zawsze są one przy rekrutacji na stanowisko Software Engineer, gdzie nawet język programowania można wybrać w jakim będzie się to pisać - czyli raczej bez wąskiej specjalizacji.

No i warto zauważyć, że te algorytmy to tylko część rekrutacji - w BigTech gdzie jest po kilka rozmów to jest też część na wiedzę domenową, część behawioralna itd. W mniejszych firmach pewnie jest coś podobnego, że jak jest tylko jedna rozmowa to algorytmy to tylko jej jakaś część.

Kilka przykładów firm z rekrutacji które ostatnio przechodziłem i były algorytmy to Allegro, MicroStrategy, Unit8. Na juniora to trafiały się raczej LeetCode easy/medium, ale raczej standardowe (na sam poziom czasami nie warto patrzeć bo zdarzają się easy trudniejsze od medium, czy medium takie że raczej nie widząc takiego zadania wcześniej praktycznie niemożliwym jest rozwiązanie go w 30 min bez żadnych bugów, hardy niektóre to też niezłe ale to już jakby się miało trafić to pewnie w rozmowie do FAANG), jako że proces ten już trochę trwa to w internecie jest dużo materiałów jak się do czegoś takiego przygotować.

KA
Allegro to mi sie wydaje od lat ma HomeTask
randomize111
A to hometask to miałem w jakimś etapie rekrutacji i tam nie było algorytmów tylko napisać prostą apke, ale chodziło mi że na pierwszej części rozmowy miałem zadanie algorytmiczne
kevin_sam_w_domu
kevin_sam_w_domu
  • Rejestracja:około 4 lata
  • Ostatnio:około 3 lata
  • Postów:196
4

Ktoś może ogarniać dobrze LeetCode, ale jakbym mu kazał wyrzeźbić CRUDA w Springu i Hibernate wraz z testami jednostkowymi, postawieniem tego na Kubernetesie, opowiedzeniu o paru wzorcach projektowych, czy transakcjach albo koncepcji semaforów ogólnie w IT i widzę że gość nie ogarnia no to po prostu go nie zatrudniam. W mojej kontraktornii potrzebujemy wyrobników, co wyklepią PoC'a dość szybko w Sprincie i będzie dobrze.

edytowany 2x, ostatnio: kevin_sam_w_domu
CyanApple
Postawienie CRUDA na podstawie tutorial taka osoba w tydzień ogarnie, ale to jest raczej dla kogoś takiego zadanie poniżej poziomu kompetencji.
KM
  • Rejestracja:około 9 lat
  • Ostatnio:około 3 godziny
  • Postów:86
2

Aż się zdziwiłem że 4p tak chłodno podchodzi do LC sądząc po komentarzach.

Standard, czy nie; LC to sprawdzona droga do najlepszych zarobków dla IC. Ciekawe że pojawił się wątek o Reddit. Polecam więc przejrzenie sobie innej społeczności - teamblind (aplikacja Blind). Regularnie co 2-4 tygodnie pojawiają się tematy typu "thank you Blind community, LC changed my life" i historie jak ludzie wskoczyli z pozycji $60k rocznie na $300-500k rocznie w dwa lata. A z Redditem tam delikatnie mówiąc polemizują (w drugą stronę pewnie też).

I nie ma tu znaczenia że LC nie jest idealnym narzędziem do odsiewania kandydatów. Żadne nie jest. Kandydata nie ma obchodzić czy zasady są słuszne, tylko jak najlepiej grać w korpogrę.

Zobacz pozostałe 9 komentarzy
Shalom
Ale czy ktoś tutaj neguje użytecność LC w rekrutacji do FAANGów? o_O Ale pisanie że ktoś poklika chwile LC i wbija 500k rocznie w jakimś Google to xD Mnie to osobiście obojętne, dla mnie jakieś pałowanie algorytmów na interview do pozycji która tej wiedzy nie wymaga to automatyczne no-go. Są lepsze miejsca. Życie jest za krótkie zeby marnować je na takie bzdury.
KA
LeetCode nie jest takie źle pod kątem czasowosci, na pewno mniej czasu to zajmuje podczas rekrutacji niż jakiś home task. Do samej platformy nic nie mam, zdarzyło się czasem robić takie rzeczy 4fun. Problem to firmy malpujace FAANG. (Poza tym jakby w FAANG nie można było wpaść w jakiś syf - ale przynajmniej dobrze płatny ;) ) oraz przecenianie ludzi tam pracujących ;)
FE
@kmle: jako interviewer, czy DSA to główny bottleneck przy rekrutacji?
GregoryI
@kmle tak, ale Bilnd jest mniej więcej na rynek USA - tam podają TC (czyli brutto, przed odliczeniem podatków :)) oraz dyskusje kręcą się raczej wokół dużych firm faang.
KM
@Fedaykin: DSA czyli algorytmy i struktury danych? Tak, połowa kandydatów (którzy przeszli screening) ma problem z rozgrzewką typu binary search. @Gregoryl: no brutto, ale jakieś rozeznanie to daje. Standardowe przywitanie nowych użytkowników na Blind to "TC or GTFO" :)
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5143
4

@klme

ludzie wskoczyli z pozycji $60k rocznie na $300-500k rocznie w dwa lata.

no nie wiem, ciężko mi w to uwierzyć że różnica pomiędzy 60k devem, a 500k devem jest LC + ewentualnie skok do 1 firmy meanwhile

edytowany 1x, ostatnio: WeiXiao
Zobacz pozostałe 11 komentarzy
JM
jackson-mike
#programista500k - nowy cel w życiu
WeiXiao
@jackson-mike: złośliwi by napisali że rząd ciężko pracuje nad tym aby zrealizować twoje marzenia :D
JM
jackson-mike
XD
kimikini
mi tez ale zaczalem czytac historie ludzi wlasnie np na blind i wyglada na to ze tak jest
KA
To prościej przefarbować włosy na tęczowo i poprosić o 300k ;)
kevin_sam_w_domu
kevin_sam_w_domu
  • Rejestracja:około 4 lata
  • Ostatnio:około 3 lata
  • Postów:196
2

Druga sprawa o ktorej warto wspomniec to psychologia. Opiszę pokrótce.

Jezeli ktos jest w stanie grindować algorytmy (ktos tam pisał ze ludzie robia po rok-dwa) po pracy w czasie wolnym to takze ma to drugie dno dla tej firmy, ze po dostaniu pracy tak szybko z niej nie zrezygnuje, będzie to nagroda. (inwestowanie czasu wczesniej bez pokrycia)

Druga sprawa to tez target ludzi ktorzy brną w tą zabawę. To tez juz jest wstępny etap odsiania ludzi. Bo ja już z rodzina na glowie nie wyobrażam sobie z mlodym gościem po studiach rywalizować o to jakie algorytmy porobiłem i ile czasu na to poświęciłem. Po prostu praca w tego typu firmach tez nie jest dla kazdego.

Algorytm swoja droga, ale takze ma to aspekt psychologiczny, który nie zostal wymyslony tak o, tylko to sie kalkuluje i nad tym tegie glowy siedza (nie mowie tu o programistach).

Swoja droga bralem tez to pod uwage wszystko ze zdecydowalem sie pojsc w niszę w IT, gdzie czasem nie ma w ogole kandydatow, albo sa niekompetentni przez co algorytmy to ostatnia rzecz ktorej sie boje na rekrutacji.

edytowany 3x, ostatnio: kevin_sam_w_domu
Zobacz pozostałe 4 komentarze
KA
Ludzie są różni, ja osobiscie stresuje sie live codingiem i byciem ocenianym, w pracy natomiast wcale. I mielismy tez goscia na rekrutacji ktory sie zacial i podejrzewalismy stres i zaproponowalismy zadanie domowe, zgodzil sie, zrobil, a pozniej byl jednym z lepszych nabytkow w firmie. Wiec dla mnie nie jest to oczywiste i zerojedynkowe.
PI
Spoko, dla mnie jest, bo jak ktoś zatnie się na rekrutacji to nie mam pewności co będzie jak mimo, że nie powinien, ale nagle będzie musiał zagadać do biznesu, czy poprowadzić prezentacje czy szkolenie. Ofc. nie jest to główne kryterium, ale mówi coś o osobie. Na pewno jest to negatywna cecha, która może wpływać w przyszłości na pracę. Jeśli stanowisko wymaga częstych rozmów z biznesem, PO czy klientami to nie ważne jak sobie radzi z taskami, ale gościa nie przyjmę.
KA
Nie wiem, ja w pracy nie mam problemu z komunikacja z biznesem, PO, klientami. Stresuje sie samą rekrutacja i że to troche etap "wszystko albo nic" ;) imo to nie kwestia komunikacji
PI
Ok, ale to nie problem rekruterów, tylko Twój. Może terapia, albo psycholog tu pomoże. Pomysłem jest też, mimo posiadania pracy notoryczne chodzenie na rekrutacji z góry wiedząc, że nie przyjmiesz oferty. Poza pierwszą pracą jaką szukałem ponad dekadę temu, nigdy nie miałem sytuacji, gdzie rekrutacja to było by "wszystko albo nic". Chodzę często na rekrutacje "dla sportu", albo, żeby zobaczyć - może faktycznie ekipa fajna, ciekawy projekt, większy worek pieniędzy. Nawet jak rekrutacja nie wyjdzie to są z tego pozytywne korzyści.
KA
Ja przechodze te rekurutacje tez i ludzie są rozni i nie ma potrzeby , po prostu nie mysle zerojedynkowo jak Ty, mozna zmarnowac dobrego kandydata w ten sposob. Ja juz nie chodze na rekrutacje dla sportu, kiedys chodzilem, juz nie mam na to czasu. Jako rekruter wiecej wyciagalem z kandydatow z pogadanki niz z jakiegokolwiek live codingu. Nie ma potrzeby wysylania kogos do psychologa, to tak samo jak niektorzy są introwertykami i ekstrawertykami.
PI
PI
  • Rejestracja:ponad 3 lata
  • Ostatnio:około 3 lata
  • Postów:256
0

Nigdy się nie spotkałem z czymś takim. Od lat nikt mnie nie pyta o algo. Niemniej myślę, czy by nie zobaczyć jak się w FAANG pracuje, więc może się skuszę. W liceum i na studiach robiło się spoje - fajna zabawa, tak samo jak AoC. Szczególnie jak chcesz nauczyć się nowego języka i optymalizacji. Ten LC ma fajny interface i fajnie pomiary robi. Jak byłem za to juniorem to na rekrutacjach miałem pisać jakieś quick sorty, szukanie palindromów etc. ale najczęściej na kartce gdzie była reszta pytań zamkniętych typu ABCD etc. To już od skrobania na kartce wolałbym taki LC, tym bardziej, że możesz się do tego przygotować i można testować, jak i są komunikaty błędów.

KA
haha, nie no na pewno lepsze leetcode niz na kartce. Chociaz te webowe edytorki ogolnie tez srednio dzialaja. FAANG to wiesz, tez po prostu bardzo dluga rekrutacja, moze trwac i do 6 miesiecy
PI
XD ja raz brałem udział w rekrutacji, gdzie po 6mc okazało się, że dostałem się do drugiego etapu. Ogólnie całość trwała koło roku. Wiedziałem, że oferty nie przyjmę, ale chodziłem tam z ciekawości. To była rekrutacja do jednej ze spółek skarbu państwa. Zarejestrowałem się i popisałem trochę to nie jest tak źle z tymi edytorami, ale VisualStudio to nie jest, niemniej zazwyczaj to ja piszę w docelowym IDE a do takich spojów czy innych LC przeklejam kod na koniec. LC ma ten plus, że daje jeszcze ranking % na czas i pamięć, a nie suche "gdzie masz miejsce".
CyanApple
  • Rejestracja:prawie 14 lat
  • Ostatnio:około rok
  • Postów:23
4

Moim zdaniem warto znać algorytmy i struktury danych oraz potrafić rozwiązywać problemy z LeetCode i innych tego typu stron na poziomie conajmniej medium, ponieważ poszerza to znacząco horyzonty programistyczne.
Dodatkowo statystycznie mając dwie grupy kandydatów:

  1. Radzi sobie dobrze z zadaniami LeetCode itp
  2. Nie radzi sobie z tego typu zadaniami
    można przyjąć, że w tej pierwszej grupie jest więcej osób dobrych albo bardzo dobrych niż w tej drugiej.
    Nie mam tutaj na myśli startowania w konkursach na czas.

Może i w codziennej pracy nie spotyka się za często tego typu zadań, ale nigdy nie wiadomo kiedy coś takiego się trafi.

Często przeglądam i widzę słabo napisany kod, właśnie z tego powodu, że ludzie nie znają algorytmów - to od razu widać.
Przykład - usunięcie duplikatów z tablicy wiele razy widziałem w podwójnej pętli for, czyli O(n^2), a żeby to napisać lepiej nie trzeba wcale być algorytmicznym mistrzem, a to tylko jeden z prostszych przykładów.

Nieznajomość algorytmów objawia się też na wiele innych sposobów:

  • złe projektowanie klas
  • wynajdywanie koła na nowo
  • nieczytanie kodu
  • nieznajomość bibliotek
  • niepotrzebne komplikowanie kodu
  • nieznajomość wielu technik programowania

Rozwiązując zadania algorytmiczne moim zdaniem można bardzo podnieść swoje umiejętności progrmistyczne.
Nawet jeżeli nie potrafi się samemu rozwiązać zadania to można się tego nauczyć patrząc na rozwiązania innych.
Przeglądając rozwiązania innych można poznać wiele sposobów rozwiązania tego samego problemu o różnej wydajności, a pracując jako programista często trzeba przeanalizować kilka rozwiązań i wybrać najlepsze, więc w ten sposób uczymy się też tego typu umiejętności.

Mógłbym pisać tak długo. Nieprzekonanych i tak nie przekonam.
Taka dyskusja trochę przypomina mi (pewnie porównanie nie będzie do końca trafne) coś na zasadzie:

  1. Programista A zna tylko goto (ewentualnie tylko tablice)
  2. Programista B zna goto, ale umie też przeiterować kolekcję używając for (zna np. listy)
    Programista A mógłby powiedzieć, po co mi tam znać te wszystkie iteracje, zawsze mogę sobie zrobić goto, albo po co mi znać listy zawsze stworzę sobie wystarczająco dużą tablicę, albo po co mi tam znać te listy, zawsze stworzę sobie odpowiednio dużą tablicę :)
edytowany 1x, ostatnio: CyanApple
GregoryI
Popieram powyższe przemyślenia :)
TS
Ten post to jest typowe sprowadzanie sprawy do absurdu. Między wymiataczami LC, a drugą grupą jest wiele innych grup. Np. wspomniane projektowanie klas nijak się ma do algorytmiki.
GregoryI
Z drugiej strony wybór jest taki, że można obnieść się honorem i powiedzieć "to głupie, niczego mnie nie nauczy, nie będę tego robić" a co za tym idzie skreślić się z rekrutacji do firm gdzie można osiągnąć TC po 500k USD (oczywiście z relokacją), w zamian zostając typowym wyrobnikiem/deweloperem który też zarobi dobrą kasę ale jednak mniejszą. Zgadzam się, że stawianie na LC w małych firemkach jest bez sensu, ale w takich faang już jakiś sens ma - jest to tylko jeden z kilku etapów technicznych oraz jakiś odsiewacz.
CyanApple
@twoj_stary_pijany: ja nigdzie nie napisałem, że trzeba być wymiataczem LC, wystarczy być na poziomie medium (oczywiście idealnie było by być wymiataczem, ale osiągnięcie tego poziomu zdecydowanie nie jest dla każdego, w sumie na medium też nie ;)), ale imho żeby być w miarę dobrym programistą z zadaniami na medium powinno się być w stanie sobie poradzić. Wbrew pozorom projektowanie klas ma bardzo dużo wspólnego z algorytmiką np. abstrakcyjne myślenie, czyli chcesz mi powiedzieć, że bez umiejętności abstrakcyjnego myślenia można zaprojektować dobrze kilka klas?
CyanApple
@twoj_stary_pijany: nie zgodzę się z tym, że sprowadzam sprawę do absurdu, chciałem tylko pokazać inny punkt widzenia :) Równie dobrze sprowadzaniem do absurdu można nazwać wszystkie poprzednie komentarze.
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:17 minut
  • Postów:3185
3

Az sobie odpalilem to let code i zrobilem pare zadanek. Wrazenie? Tak jakby rekrutowali kogos na pilota samolotow pasazerskich i kazali mu biegac po placu z rozlozonymi rekami i wymagana onomatopeja zeby nasladowac silniki.
Sam brak IDE i Intellisense robi ogromna roznice.

randomize111
Tych rzeczy nie ma bo przy rekrutacji do FAANG piszesz w wordzie/na tablicy
CyanApple
Intellisense działa, a wystarczy znać jakikolwiek język programowania na średnim poziomie, żeby sobie tam poradzić bez intellisense. Jeżeli nie znasz składni języka, w którym programujesz na tyle, żeby sobie tam poradzić bez intellisense to ja już nie mam więcej pytań :)
CyanApple
  • Rejestracja:prawie 14 lat
  • Ostatnio:około rok
  • Postów:23
2

Zadziwiające jest to, że programowanie to ciągłe poszerzanie wiedzy i umiejętności, nauka wielu frameworków, bibliotek itp. i tego nikt nie uważa za bez sensu, bo teraz szukają programistów Springa, za rok programistów czegoś innego. Przed nauką tego typu rzeczy nikt nie ma oporów. Wszyscy chętnie uczą się nowych frameworków, które zmieniają się co jakiś czas.

Natomiast nauczenie się czegoś raz i porządnie, co przyda się w całej karierze jest traktowane jako coś bezsensownego i bezcelowego :)

Wydawało mi się, że programiści to ludzie głodni wiedzy, a na podstawie tego wątku i komentarzy, widzę, że wcale niekoniecznie :(

Zaryzykuję może jeszcze takie porównanie.
Mamy dwóch neurologów (edit: neurochirugrów :)):

  1. Nie potrzebna mi jest znajomość budowy mózgu, wystarczy że wiem jak zbudowana jest czaszka i osadzone w niej oczy, jakoś sobie poradzę w razie czego doczytam przed operacją co i jak
  2. Znam bardzo dobrze budowę mózgu

Do którego z nich byście się wybrali na operację? :)

edytowany 2x, ostatnio: CyanApple
JA
Tego od budowy czaszki. Chcialbym zeby mi ja dobrze otworzyl i zamknal. Co mi po chlopie od samego mozgu?
CyanApple
@japanlofi: np. ten drugi może zna sposób, dzięki któremu otwieranie czaszki nie jest wcale potrzebne :)
SZ
  • Rejestracja:prawie 11 lat
  • Ostatnio:38 minut
  • Postów:1501
3
CyanApple napisał(a):

Zaryzykuję może jeszcze takie porównanie.
Mamy dwóch neurologów:

  1. Nie potrzebna mi jest znajomość budowy mózgu, wystarczy że wiem jak zbudowana jest czaszka i osadzone w niej oczy, jakoś sobie poradzę w razie czego doczytam przed operacją co i jak
  2. Znam bardzo dobrze budowę mózgu

Do którego z nich byście się wybrali na operację? :)

Do chirurga :p

CyanApple
Ok, neurochirurga, jasne :) Mój błąd, dzięki :)
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
16

Natomiast nauczenie się czegoś raz i porządnie, co przyda się w całej karierze jest traktowane jako coś bezsensownego i bezcelowego

@CyanApple: tylko że to bzdura. Tak jak ze wszystkim innym, to trzeba ćwiczyć. To że dziś umiesz rozpykać jakieś LC hardy z biegu, wcale nie oznacza że za rok albo dwa, bez ćwiczenia, nadal będziesz. Szczególnie jeśli teraz to wyskillowałeś a nie byłes w tym kierunku naturalnie uzdolniony.

Nieznajomość algorytmów objawia się też na wiele innych sposobów:
złe projektowanie klas
wynajdywanie koła na nowo
nieczytanie kodu
nieznajomość bibliotek
niepotrzebne komplikowanie kodu
nieznajomość wielu technik programowania

Nie wiem skąd te wnioski. Problemy algorytmiczne w stylu LC kończą się zwykle może z 50 linijkami spaghetti, byleby zadziałało. Nijak się ma to do projektowania oprogramowania które da się utrzymywać albo do jakiegoś Clean Code.

można przyjąć, że w tej pierwszej grupie jest więcej osób dobrych albo bardzo dobrych niż w tej drugiej.

Google jakiś czas temu opublikowało artykuł z którego wynikało że nie ma u nich żadnej korelacji pomiędzy tym jak kandydat skillował leetcoda na rekrutacji a tym jaki jest jego późniejszy performance w pracy. Kiedyś może i tak było, jak ludzie nie skillowali takich platform i jakichś cracking the coding interview, ale teraz to bez różnicy. To trochę jak z graniem w szachy -> jak posadzisz dwóch gości którzy nie umieją grać i nauczysz ich zasad, to inteligentniejszy z nich będzie wygrywać. Ale wystarczy ze ten słabszy poświeci chwilę czasu na teorię, nauczy sie jakiegoś jednego otwarcia i będzie orać tego drugiego bez litości.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
TS
  • Rejestracja:prawie 6 lat
  • Ostatnio:5 minut
  • Postów:854
4

Uprawianie rekrutacji w stylu Cracking the Coding Interview przez małe firmy to jest po prostu kult cargo. Zastanówmy się najpierw jakie cele ma taka rekrutacja:

  • zminimalizowanie false positives - zwalnianie pracowników z FAANG jest kosztowne,
  • chcemy przyciągnąć największe talenty (najwyższe IQ), które będą pracowały przez wiele lat i budowały bardzo customowy codebase.

Celem rekrutacji w firmach kontraktorskich jest to, żeby znaleźć najlepszego pracownika do danej pracy za najniższe pieniądze. Firmy kontraktorskie nie przejmują się tym, że zatrudnią badziewiaków bo nie piszą dla siebie codebase'u. Dla nich to jest nawet lepiej zatrudnić 10 badziewiaków i opchnąć ich do klienta bo dostają prowizję*10.

O ile FAANGI są w stanie zapłacić takim kandydatom, żeby przyszli i nie odchodzili to w jaki sposób mała firma kontraktorska ma niby konkurować z rynkiem gdzie co chwila pojawia się firma, która podbija stawki i rotacja jest taka, że ludzie zmieniają firmę co 6 miesięcy. Mało firm jest w stanie sobie pozwolić na tworzenie customowego codebase'u tak jak robi to Google. Finalnie, wszędzie jest taki sam stack technologiczny, tj. spring, aws, python, może ruby, js. Więc skacząć z jednej firmy do drugiej moim największym assetem powinna być znajomość stacka. Skacząć do FAANGa nie jestem w stanie znać stacka bo oni mają customowego stacka.

Wyobraź sobie, że zapłaciłeś 10x więcej za rekrutację, bierzesz jakiegoś kozaka IQ 200 i ten kozak nie potrafi delegować, jest indywidualistą i nie dzieli się wiedzą. Po co Ci taki geniusz skoro masz prostą apkę do napisania? Po 6 miesiącach kozak się zwija bo gdzieś płacą 100 zł więcej. Czy naprawdę pracowity średniak z IQ 120 nie potrafi zrobić tej samej pracy? Przepłaciłeś bo zapłaciłeś za skillset, którego nie potrzebowałeś. Tylko, że nie możesz się chwalić na LI, że macie zajebisty proces rekrutacyjny z liczeniem piłeczek w autobusie. Że też ludzie się wciąż na to nabierają.

Zobacz pozostałe 7 komentarzy
Shalom
Ale kto mówi że jest fajnie? :) Obiegowe opinie są takie, ze biorą tam jakichś wymiataczy a potem każą im poprawiać CSSy. Ale szekle sie zgadzają, więc ludzie jakiś czas siedzą, a potem zmieniają.
Charles_Ray
W WAW jest spoko środowisko, na pewno nie nazwałbym go toksycznym ;)
TS
Może dlatego, że jesteś częścią tego toksycznego środowiska? Nie osądzam, ale komuś z wewnątrz może być nie tak łatwo zauważyć, że jest częścią problemu.
AS
Przecież do Google idzie się po to, aby wpisać sobie w stopkę na LI „ex-Google”. Wystarczy przez rok popoprawiać CSSy u naszych reklamowych overlordów, a potem kariera już jest na poziomie easy.
Charles_Ray
@twoj_stary_pijany dołączyłem we wrześniu, nie sadze, żebym był „częścią problemu”
CyanApple
  • Rejestracja:prawie 14 lat
  • Ostatnio:około rok
  • Postów:23
1

@Shalom:

Shalom napisał(a):

Natomiast nauczenie się czegoś raz i porządnie, co przyda się w całej karierze jest traktowane jako coś bezsensownego i bezcelowego

@CyanApple: tylko że to bzdura. Tak jak ze wszystkim innym, to trzeba ćwiczyć. To że dziś umiesz rozpykać jakieś LC hardy z biegu, wcale nie oznacza że za rok albo dwa, bez ćwiczenia, nadal będziesz. Szczególnie jeśli teraz to wyskillowałeś a nie byłes w tym kierunku naturalnie uzdolniony.

Jasne, że trzeba to ćwiczyć, tak samo jak znajomość frameworków, tyle że jak dojdziesz do poziomu, na którym umiesz rozpykać hard to nie zdegradujesz się w ciągu roku tak, że nie będziesz potrafił rozwiązać easy, a żeby wrócić na poziom hard będziesz potrzebował o wiele mniej czasu niż ktoś kto ma problemy z easy.

Za rok zapomnisz, ale pod warunkiem jeżeli wykułeś to na pamięć bez zrozumienia.
Jeżeli się tego nauczyłeś ze zrozumieniem tj. przeszedłeś przez kilka etapów:

  1. nie wiem jak to zrobić
  2. analizuję czyjeś rozwiązanie + czegoś nie znam doczytuję
  3. już wiem jak to działa
  4. rozwiąże to sam 2-3 razy
  5. zaaplikuję to rozwiązanie do rozwiązania kilku podobnych problemów
    to raczej tego tak łatwo nie zapomnisz.

Oczywiście, że są osoby które sobie z tym radzą lepiej lub gorzej, ale zastanówmy się, czy Ci co sobie z tym nie radzą na pewno powinni być programistami?

Nie wiem skąd te wnioski. Problemy algorytmiczne w stylu LC kończą się zwykle może z 50 linijkami spaghetti, byleby zadziałało. Nijak się ma to do projektowania oprogramowania które da się utrzymywać albo do jakiegoś Clean Code.

Jeżeli w ramach rozwiązywania problemu wytworzyłeś 50 linijek spaghetti to czy Twój kod produkcyjny nie będzie taki sam?
Kod spaghetti powstaje, jeżeli próbujesz rozwiązać jakieś z tego typu zadań bez wcześniejszego zastanowienia się nad problemem np. nie zastanowisz się na początku nad przypadkami jakie mogą wystąpić tylko od razu przystępujesz do programowania.

Jeżeli do leetcode podchodzisz na zasadzie, żeby jakoś zadziałało to pewnie tak samo do kodu produkcyjnego :)

można przyjąć, że w tej pierwszej grupie jest więcej osób dobrych albo bardzo dobrych niż w tej drugiej.

Google jakiś czas temu opublikowało artykuł z którego wynikało że nie ma u nich żadnej korelacji pomiędzy tym jak kandydat skillował leetcoda na rekrutacji a tym jaki jest jego późniejszy performance w pracy.

Poproszę tutaj o linka, bo tak można napisać wszystko :)

Shalom
Artykuł nazywa sie In Head-Hunting, Big Data May Not Be Such a Big Deal, chodzi np. o cytat: We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około godziny
  • Lokalizacja:Wrocław
7
CyanApple napisał(a):

Nieznajomość algorytmów objawia się też na wiele innych sposobów:

  • złe projektowanie klas
  • wynajdywanie koła na nowo
  • nieczytanie kodu
  • nieznajomość bibliotek
  • niepotrzebne komplikowanie kodu
  • nieznajomość wielu technik programowania

Absolutnie nic z tej listy nie ma związku z algorytmami. Rzekłbym nawet, że w wielu przypadkach to będą objawy właśnie znajomości algorytmów.
Można też w drugą stronę - dobrze projektować nieskomplikowany kod, znać biblioteki i techniki, i nie znać algorytmów.

edytowany 2x, ostatnio: somekind
KamilAdam
dobrze projektować nieskomplikowany kod, znać biblioteki i techniki, i nie znać algorytmów. To o mnie :P
somekind
Myślałem o kimś innym, ale jak wolisz. :P
CyanApple
  • Rejestracja:prawie 14 lat
  • Ostatnio:około rok
  • Postów:23
0

@twoj_stary_pijany:

twoj_stary_pijany napisał(a):

Skacząć do FAANGa nie jestem w stanie znać stacka bo oni mają customowego stacka.

Jesteś pewien, że tylko FAANG ma customowego stacka? :> Nie wydaje mi się, robisz tutaj duże uproszczenie.

Wyobraź sobie, że zapłaciłeś 10x więcej za rekrutację, bierzesz jakiegoś kozaka IQ 200 i ten kozak nie potrafi delegować, jest indywidualistą i nie dzieli się wiedzą. Po co Ci taki geniusz skoro masz prostą apkę do napisania? Po 6 miesiącach kozak się zwija bo gdzieś płacą 100 zł więcej. Czy naprawdę pracowity średniak z IQ 120 nie potrafi zrobić tej samej pracy? Przepłaciłeś bo zapłaciłeś za skillset, którego nie potrzebowałeś. Tylko, że nie możesz się chwalić na LI, że macie zajebisty proces rekrutacyjny z liczeniem piłeczek w autobusie. Że też ludzie się wciąż na to nabierają.

Patrzysz bardzo stereotypowo.
Dlaczego zakładasz, że ktoś o IQ 200 jest indywidualistą?
Czy jak to nazwałeś średniak o IQ 120 też nie może być indywidualistą?
Czy to, że ktoś jest średniakiem od razu oznacza, że dzieli się wiedzą? :)
Skąd wiesz, czy przełaciłem za skillset, którego nie potrzebowałem?
Może mój programista zrobił w tydzień to co średniak robiłby przez pół roku i pomimo tego, że zapłaciłem mu za miesiąc więcej to jednak zaoszczędziłem 5 miesięcy pracy średniaka?

edytowany 1x, ostatnio: CyanApple
TS
Nie napisałem implikacji. Napisałem, że możesz na takiego trafić bo szukałeś kogoś z wysokim iq, a nie sprawdzałeś czy jest team playerem. Skoro sprawdzasz iq zagadkami to nie sprawdzasz innych rzeczy bo masz ograniczoną ilość czasu. Większość ludzi rezygnuje z wieloetapowych rekrutacji bo to jest błazenada.
CyanApple
@twoj_stary_pijany: skąd wiesz czy nie sprawdziłem też czy jest team playerem? LeetCode != zagadka iq. Dlaczego wieloetapowa rekrutacja to błazenada?
JA
  • Rejestracja:około 3 lata
  • Ostatnio:prawie 3 lata
  • Postów:35
3
WhiteLightning napisał(a):

@japanlofi: @karsa: a w sumie jak powinna wygladac rerkutacja na Devops/SRE ? Bo u mnie zawsze jakos to bylo tak ze wpadalem w QE/perf testy -> tam trzeba bylo ogarniac zestawianie systemu itp. I z czasem okazywalo sie, ze potrzeby spore, a robotnikow malo i w sumie szkoda zebym robil QE jak potrafie inne rzeczy ogarniac.

edit: Link z komentarza od @karsa, moze sie komus przyda: https://github.com/mxssl/sre-interview-prep-guide

Niestety ten link moze sie przydac tylko na jakas bazowa wersje DevOps/SRE/Platform Engineer etc. Fakt, ze na to pierwsze stanowisko mozna nie miec za bardzo doswiadczenia, natomiast kolejne dwa wymagaja zazwyczaj tego pierwszego ;-)

Gdyby mi ktos kazal rekrutowac na to stanowisko to generalnie dopytalbym co robil do tej pory, a wiedzac co sie robi prosto zadac sensowne pytania. Niestety te prezentowane w linku wyzej i podobnych sa bardzo ogolne.

Wracajac do Twojego pytania @WhiteLightning, firmy nie umieja w rekrutacje na to stanowisko, bo z perpsektywicznego HR'owego mozdzka wynika, ze szukaja jednego czlowieka na 5 stanowisk. Jesli masz farta i pozniej przyjdzie ktos tech, kto wie czego szuka to - masz farta. Jesli masz pecha to pozniej przyjdzie beton, ktory nie ma pojecia kogo szuka, ktos mu powiedzial, ze istnieje ktos taki co sie zwie DevOps i on robi generalnie wszystko.

  • Pozniej oczekiwalbym, ze ogarnia wirtualizacje.
  • Ma solidna wiedze z Linuxa.
  • Konteneryzacje, chcialbym zobaczyc jak buduje nawet Dockerowy image z testowa apka, przygotowana wczesniej przeze mnie i udokumentowana w taki sposob aby umozliwic mu odpalenie jej w kontenerze. Do tego punktu oczywiscie pogadalibysmy troche glebiej o konteneryzacji. Zaletach, wadach, security, a nastepnie przechodzimy do...
  • Zarzadzania konteneryzacja. Wiadomo, ze mam tu na mysli samego juz Kubernetesa. Ilosc potencjalnych pytan jakie mozna tutaj zadac (UWAGA! Nalezy faktycznie umiec dobrze sformulowac pytanie tak zeby nie bylo niescislosci) jest ogromna. Np.
Kopiuj
- Chcialbym wiedziec jakie kroki wykonalby po postawieniu prostego klastra.
- Czy robienie 2 Master Node to dobry czy zly pomysl? Uzasadnij.
- Jak ogarnalby zarzadzanie klastrami w roznych lokacjach / strefach czasowych?
- Jak przeprowadzi update Kubernetesa do nowszej wersji
- Ustawianie limitow - jak ustalac je poprawnie. Dlaczego limit na CPU moze byc zlym pomyslem/lub dobrym - podchwytliwe.
- Jak dziala skalowanie wewnatrz Kubernetesa?
- A̶u̶t̶e̶n̶t̶y̶k̶a̶c̶j̶a̶ Uwierzytelnianie za pomoca Kubernetes identity dla mikroserwisow.
- Wyjasnic graceful shutdown.
- Custom resources - biore od kazdej druzyny po 200zl i slucham panstwa.

Przede wszystkim chcialbym wiedziec z jakimi odmianami k8s pracowal do tej pory

  • Wiedza chociaz w teorii odnosnie tego mitycznego SDLC.
  • Programowanie: w czym ogarnie jakis task, ktory wymaga napisania kawalka kodu - tutaj poprosilbym o rozwiazanie jakiegos zadania z zycia wzietego - nawet jakiejs uproszczonej wersji.
  • Automatyzacja: Terraform i Ansible - lub alternatywy np. Puppet, Chef, Pulumi.
  • Gdybym mial dac jakis task to najchetniej wlasnie cos co wymagaloby polaczenia wielu obszarow. Np.
    Zbuduj kontener w ktorym bedziesz miec swoje srodowisko programistyczne np. Python, Go, JS. Nastepnie napisz kod, ktory zbiera z dwoch maszyn dane np. ilosc plikow w wybranych katalogach oraz konkretne dane o maszynie i generuje z tego JSON albo wrzuca to do CSV. Caly proces uruchamiania, zbierania informacji wykonaj za pomoca Ansible. Ewentualnie dorzucilbym zeby kompilacje kodu wykonywal na maszynie z ktorej ma pobierac te dane, a nie w swoim srodowisku.

Zadanie moze wydawac sie kompletnie bez sensu ale ma wiecej sensu niz ganianie kogos zeby pisal algorytmy, ktorych w pracy nie wykorzysta ;-)

  • Pogadalbym o budowaniu calego CICD. Czy ma juz z tym doswiadczenie. Budowal/obslugiwal. Jesli tak to z czego ono sie skladalo? Jesli budowal to dlaczego akurat wybral Jenkinsa i sie tym chwali w momencie w ktorym chce pracowac ze mna w zespole - tutaj rekrutacja by sie zakonczyla :D
  • Czy zna GitOps? Jesli tak to kiedy ma on sens? Moze zawsze ma sens?
  • Rodzaje i strategie Deploymentow?

W zasadzie moglbym tak pisac 5x tyle. Wszystko tez zalezy od tego do czego mialbym zatrudniac tego czlowieka. Jesli mam jakis legacy projekt na starych zabawkach to powyzsza calosc praktycznie nie ma sensu poza moze VM, Linuxem i teoretycznymi koncepcjami.

edytowany 1x, ostatnio: japanlofi
Zobacz pozostałe 21 komentarzy
KA
tak, zdecydowanie ma wiekszy sens :) ja 100% cloud
JA
Czyli zazdroscimy sobie nawzajem. Zwykle Ci z clouda zazdroszcza tym on-prem, ze moga porobic takie bardziej hard tematy, a Ci z on-prem majacy dosyc chcieliby sobie wyklikac chociaz czesc roboty :D
KA
Ja miałem trochę do czynienia z postgresami on premise i jednak cenię sobie spokój ducha w cloud w tej kwestii xD
JA
Nie ma reguly jaka baza i jaki tool. Wszystko on-prem wymaga totalnej jebanki. A fikolki zaczynaja sie jak odpalisz z niewiedzy takiego Postgresa na k8s. Bonus - odpalac na produkcyjnym systemie. Adrenalina zapewniona.
KA
No tak tak :) postgres tylko jako przykład ;) on premise to zawsze mięso
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5143
6

@CyanApple:

Rozwiązując zadania algorytmiczne moim zdaniem można bardzo podnieść swoje umiejętności progrmistyczne.

Z mojego doświadczenia robienie tego typu zadanek nie wiele mi dawało w porównaniu do robienia prawdziwych projektów.

Spróbuj sobie napisać edytor tekstu, OSa, engine bazki, kompilator, gita, przeglądarkę czy inne podobne

to zyskasz na tym pewnie order of magnitude więcej, bo nie tylko masz tutaj projektowanie złożonych systemów - czego nie ma w LC, a jest wszędzie indziej - od crudów, po złożone systemy informatyczne, a w dodatku tonę wiedzy którą będziesz musiał zdobyć aby móc ruszyć

no i jeszcze - co lepiej brzmi napisałem własny OS czy klepnąłem 50 zadanek na LC screenshot-20220214170608.png

Już nawet nie pisze że taki prawdziwy projekt możesz wystawić na świat, nauczyć się releasować/deployować, przygotowywać installery/paczki, projektować sensowne API, męczyć z breaking changes, a takie kodziki na LC to co najwyżej na GH wrzucić i podrzucać studyntom :P

edytowany 6x, ostatnio: WeiXiao
nowy_kret_2
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 5 godzin
  • Postów:307
3

Rekrutowali wy sie ta do gugla/projektu googla kiedys? EPAM szukal swego czasu ludzi do projektow dla gugla, oni tam wszystko maja customowe, to co maja pytac ze wiosny/sprężyny, jak u nich wszystko inaczej. A pozniej małpki małpuja i jeszcze teorie do teog dorobia

A taki delikwent co zna algorytmy i jest l33t to bardziej niebezpieczny niz ten co nie zna bo bedzie wszedzie robil optymalizacje na listy z length 15 itemow.

KA
Przez EPAM to taki niewolnik w subprojekcie w dużym kołchozie
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 godzin
  • Postów:1880
4

Trzeba sobie zdac sprawe z kilku rzeczy, które jednak wyrozniaja FAANG od innych organizacji i nie mowie, że to dobrze albo zle;

  1. Customowy stack technologiczny
  2. Bardzo dużo zależności i duża zmienność

To powoduje, ze na codzień inzynierowie maja do czynienia z duzą zlozonoscia, z ktora musza sobie radzic, aby byc efektywnym. Pomaga wiedza i doświadczenie, ale przede wszystkim niezbedna jest umiejetnosc szybkiej nauki i adaptacji (tzw. umiejętności poznawcze).

Jak to sprawdzic podczas rekrutacji? Pewnie mozna na wiele spodobow, w FAANG robi sie tak, że daje sie kandydatowi nietrywialny problem do rozwiazania (ale nie tzw. brain teaser, bo udowodniono, że to nic nie wnosi). Algorytmy i struktury danych (LeetCode in gereral) to takie klocki Lego, ktore w zalozenie zna kazdy (mozna sie przygotowac przed interview, wiec nie jest o zaskoczeniem) i trzeba wpasc na rozwiazanie zlozonego problemy z ich uzyciem. Trudnosc jest w problemie, nie w algorytmach, aby sprawdzic jak kandydat atakuje zlozonosc i niepewnosc. Niestety z powodu (1) nie ma sensu pytać „Jak zrobil(a)byś to w Springu?” ;) bardziej „Jakbys zaprojektował(a) Springa, zeby dalo sie zrobic X?”.

Oczywiscie nie kazdy chce sie bawic w algorytmy i to jest OK. Nie kazdy tez chce pracowac z customowym stackiem albo w wielkiej organizacji na tysiace inzynierow - to jest OK.

Jezeli w organizacji nie zachodzi (1) i (2), to widze ograniczony sens w tego typu rozmowach.


”Engineering is easy. People are hard.” Bill Coughran
edytowany 6x, ostatnio: Charles_Ray
Zobacz pozostałe 17 komentarzy
Charles_Ray
Akurat search jest o tyle specyficzny, że technologia i produkt bardzo mocno się przenika i działa to w obie strony - PM tez musi w jakimś stopniu ogarniać search/ML. Czy trzeba wybitnie ogarniać JVM? Raczej w ramach specjalizacji, dobrze jest mieć taka osobę w zespole.
KA
Większość firm niech najpierw nauczy się pisać monolity, później niech myśli o mikroserwisach. Podejrzewam, że może jedynie Google robi to jako tako, reszcie wydaje się. Jeżeli w zespole masz jedną osobę jako taki specjalista to masz bottleneck.
WeiXiao
chyba masz jakieś złe doświadczenia :P
KA
Ano owszem, w większości same złe. U nas też mamy masę developerów którzy myślą, że to super działa bo z niewielu rzeczy sobie zdają sprawę. A tak naprawdę jako całość działa to tak sobie i kosztuje zdecydowanie za duzo
KA
"Z kontekstu rozumiem, że jesteś z SRE" - co do tego to wiekszosc kariery bylem Java/Kotlin Eng
CyanApple
  • Rejestracja:prawie 14 lat
  • Ostatnio:około rok
  • Postów:23
0

@1a2b3c4d5e:

1a2b3c4d5e napisał(a):

Spróbuj sobie napisać edytor tekstu, OSa, engine bazki, kompilator, gita, przeglądarkę czy inne podobne

to zyskasz na tym pewnie order of magnitude więcej, bo nie tylko masz tutaj projektowanie złożonych systemów - czego nie ma w LC, a jest wszędzie indziej - od crudów, po złożone systemy informatyczne, a w dodatku tonę wiedzy którą będziesz musiał zdobyć aby móc ruszyć

no i jeszcze - co lepiej brzmi napisałem własny OS czy klepnąłem 50 zadanek na LC screenshot-20220214170608.png

Już nawet nie pisze że taki prawdziwy projekt możesz wystawić na świat, nauczyć się releasować/deployować, przygotowywać installery/paczki, projektować sensowne API, męczyć z breaking changes, a takie kodziki na LC to co najwyżej na GH wrzucić i podrzucać studyntom :P

Jedno nie wyklucza drugiego.
Nigdzie nie napisałem, że na rozwiązywaniu zadań z leetcode należy poprzestać i że to sprawia, że ktoś jest master programistą.
Moim zdaniem bez znajomości algorytmów i struktur danych nie jesteś w stanie napisać nic z tego co wymieniłeś.

nowy_kret_2 napisał(a):

Rekrutowali wy sie ta do gugla/projektu googla kiedys? EPAM szukal swego czasu ludzi do projektow dla gugla, oni tam wszystko maja customowe, to co maja pytac ze wiosny/sprężyny, jak u nich wszystko inaczej. A pozniej małpki małpuja i jeszcze teorie do teog dorobia

A taki delikwent co zna algorytmy i jest l33t to bardziej niebezpieczny niz ten co nie zna bo bedzie wszedzie robil optymalizacje na listy z length 15 itemow.

Nie trzeba pracować w Google, żeby nie korzystć z Javy i nie pracować w Springu :) To, że Spring jest używany w wielu projektach na prawdę nie znaczy, że we wszystkich i tylko FAANG z niego nie korzysta.

Wszystko z rozsądkiem, a jednak bardziej niebezpieczni są tacy, co nie znają i będą sprawdzać czy element istnieje w bardzo dużej posortowanej tablicy liniowo, albo tacy co będą w pętli uruchamiać setki zapytań do bazy danych.

Znajomość algorytmów jest ważna, a ucząc się rozwiązywać tego typu problemy przy okazji można się nauczyć wielu przydatnych sztuczek programistycznych. Można też nauczyć się dobrych praktyk, nikt nie każe rozwiązywać tego typu zadań pisząc kod spaghetti.

Nie rozumiem tego oporu wiedzy przed poznaniem algorytmów i struktur danych. To są przecież podstawy, które każdy programista powinien znać.

KA
Netflix już ma wiekszosc na Spring Cloud i zaorali swoje customowe forki, duże firmy najczesciej pchaja open sourcowe projekty
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5143
1

@CyanApple

Moim zdaniem bez znajomości algorytmów i struktur danych nie jesteś w stanie napisać nic z tego co wymieniłeś.

to jest zawsze najważniejszy punkt tych wszystkich śmiesznych dyskusji nt. grindowania a&ds, a mianowicie:

Co to znaczy znajomość A&DS

bo śmiem twierdzić że np. przy edytorze kodu, przeglądarce i kompilatorze to głównie drzewka będą ci potrzebne

ale przecież dla kogoś to nie będzie jakaś super znajomość A&DS, a dla kogoś w sumie to tak.

A zatem zdefiniuj co rozumiesz przez znajomość.

edytowany 9x, ostatnio: WeiXiao

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.