Konkursowi wymiatacze vs reszta świata

3

Czy pracowaliście kiedyś z wymiataczami z konkursów w stylu TopCoder, Codeforces, Olimpiada Informatyczna etc?
Jakie macie doświadczenia, jeśli chodzi o jakość kodu, szeroko rozumiane ogarnianie i ogólny rys psychologiczny?

Mam możliwość transferu do projektu, w którym jest jest kilka takich osób.
Projekt jest bardzo ciekawy pod względem możliwości rozwoju, jednak trochę się boję że nie podołam.

Nie to że mnie zjedzą - wiadomo. Raczej chciałbym uniknąć bycia najsłabszym ogniwem w projekcie.
Oceniam się jako sumiennego wyrobnika, który generalnie dowozi co tam trzeba, ale do rockstar 10x developera mi niestety daleko.

7
mirkp napisał(a):

Czy pracowaliście kiedyś z wymiataczami z konkursów w stylu TopCoder, Codeforces, Olimpiada Informatyczna etc?

Nie (albo po prostu nie wiem)

Raczej chciałbym uniknąć bycia najsłabszym ogniwem w projekcie.

Czemu? Wtedy najwięcej się człowiek nauczy i rozwinie.

Ogólnie to fakt, że ktoś wygrywał jakieś konkursy nie oznacza, że jest mega wymiataczem - oznacza jedynie tyle, że miał czas i chęci na starty w tych konkursach i że dobrze mu poszło według formuły tych konkursów.

14

To sa konkursy algorytmiczno-matematyczne a nie programistyczne developerskie

0

Praca to nie olimpiada z informatyki na poziomie Wojewódzkim. Praca to praca taski są różne, możesz nawet nie zauważyć różnicy, może ten ich potencjał być niewykorzystany.

Swego czasu pracowałem z doktorem matematyki, bardzo łebski gościu jeśli chodzi o matematykę. W pracy to się nudził i nawet sobie spał, bo wiesz np parsowanie XML to nie był szczyt jego ambicji. Koniec końców poszedł do jakiejś innej korpy.

10

@mirkp: ty wiesz co ja dziś w pracy robię?

  • Poprawiam bazę do została trochę spierdzielona przez innego programistę
  • Podmieniam hasła bo straciły ważność
  • Musze przeprowadzić upgrade zewnętrznego oprogramowania, a w zasadzie postawić identyczne obok, ale w nowszej wersji (i totalnie nie mam pojęcia jak to zrobić XD )
  • Dodać parametr dla frontendowca do endpointu żeby sprawniej działało logowanie

I to wszystko na cito XD

Wiele innych rzeczy nie mających wziązku z algorytmami XD Może to dlatego że jestem klepaczem crudów, może inni robią ciekawsze rzeczy :D

1

A co to za projekt? Myślę że tacy wymiatacze mają mało szans wykazania się bo chyba nie istnieje żaden projekt w którym ciągle trzeba wymyślać lub udoskonalać jakiś algorytm, więc obstawiam że w codziennej pracy się dużo nie różnią od innych koderów na ich poziomie doświadczenia. Myślę że najbardziej by się sprawdzili jako "skoczkowie" którzy doraźnie pomagają w doskonaleniu projektów gdy zwykli programiści mają problem z opracowaniem optymalnego rozwiązania; spotykałem się że architekci oprogramowania pracowali w takim trybie. Z tym że przeciętni programiści zwykle sami chcą podołać wyzwaniu i rzadko przyznają że nie wiedzą jak coś zrobić dobrze więc nie bardzo widzę jak by to miało funkcjonować.
Poza tym to nie jest tak że pozostali koderzy wiedzą mniej - ci którzy wygrywają takie konkursy zazwyczaj robią te zadania po prostu parę sekund szybciej niż inni lub mają mniej punktów karnych (co nie znaczy że inni nie potrafili tych zadań wykonać). Jak wszędzie - w robieniu x najbardziej przydaje się doświadczenie w x - w tym przypadku: w takich konkursach najbardziej przydaje się doświadczenie w takich konkursach.

Obstawiam też że niektórzy mogą się bardziej wywyższać niż zwykle choć jest to kwestia indywidualna i ciężko generalizować. Nie pracowałem z "topcoderami" ale pracowałem z magistrami i doktorami matematyki i ci z którymi pracowałem lubili się wywyższać na kawie i udawać że ich tytuł ma jakiś sens a potem po kawce wracali do przesuwania przycisków i podnoszenia wersji javy

0

Myślę że tacy wymiatacze mają mało szans wykazania się bo chyba nie istnieje żaden projekt w którym ciągle trzeba wymyślać lub udoskonalać jakiś algorytm

Może Tesla i rozpoznawanie obrazu? Jakiegoś tam światowego wymiatacza z Polski zatrudnili

3

@obscurity @KamilAdam Tylko często takie algorytmy sie zamawia z opracowaniem u jakiegoś typa na uczelni który ma specjalizacje w danej dziedzinie/dziedzinach. Bo to że ktoś rozkminia problemy plecakowe lub znane grafowe w nocy o pólnocy nie daje pewności, że poradzi sobie z opracowaniem kompletnego rozwiązania. Pomijam jakość "opracowania". Raz jak widzialem takie opracowanie to to doslownie była książka tylko o tym "algorytmie"(tu akurat był zbiór dla konkretnego problemu biznesowego)

1
KamilAdam napisał(a):

Może Tesla i rozpoznawanie obrazu? Jakiegoś tam światowego wymiatacza z Polski zatrudnili

Raczej nie. Tu się przydaje ogólna wiedza z tego zakresu, potem to już tylko bawienie się z parametrami, zazwyczaj metodą doświadczeń i prób i błędów. Nie widzę tu za bardzo pożytku z osoby która umie na wyścigi kodować algorytmy

2

Pracowałem i po ok pół roku przeniósł się do innego projektu. Generalnie ogarnięty i inteligentny gość. Miał również wiedzę z technologii, nauki, szybko się wdrażał itd, ale ciągle mu się coś nie podobało w kodzie i narzekał. Psychologicznie to Asperger trochę, taki nerd, ale sympatyczny i uśmiechnięty. Nie ma żadnego poczucia wyższości, bycia obrażonym na życie ani nic (jak wielu programistów niestety) można z nim pogadać.
Niemniej jednak jak wspomniałem wcześniej, często narzeka że kod to g.... i po pół roku nie wytrzymał i zmienił projekt (wtedy jeszcze była kwestia dużej ilości spotkań, wolny CI i buildsystem itd) Co ciekawe nadal jak chodze do biura to siedzi blisko mnie i nadal tak samo narzeka, że kod to dziadostwo totalne xd.

2
  1. Kiedyś myślałem, że ludzie ogarniający algorytmy to muszą być kumaci, ale jak zdałem sobie sprawę z tego ile osób po prostu zakuwa algorytmy (np. ludzie grindujący leetcode), to ogarnianie algorytmów przestało być dla mnie wyznacznikiem dobrego programisty. Po prostu uczą się pewnej sekwencji kroków. Obstawiam, że te olimpiady też się tak wygrywa.

  2. Inną kategorią są ludzie, którzy są kumaci i faktycznie rozumieją algorytmy, matmę itp. ale nie musi się to przekładać na jakość kodu. Rozumienie algorytmów wymaga pewnej inteligencji, jednak do pisania dobrego kodu potrzeba jeszcze dyscypliny czy umiejętności zaprojektowania całości. Dlatego ktoś, kto umie napisać trudny kod, niekoniecznie napisze to zachowując dobrą architekturę. Np. widziałem kody związane z grafiką 3D, gdzie widać było, że ktoś znał się na rzeczy, jednak architektura wołała o pomstę do nieba. Chociaż trochę można zrozumieć - jak ktoś robi coś trudnego, to zajmuje się technikaliami i działa bottom-up nie myśląc o architekturze.

5

Ja uważam na takich ludzi, ponieważ pracowałem już z takimi i mam niemiłe doświadczenia. W sumie dwa razy.

Obaj byli singlami bez innej pasji innej czy rodziny, jakimś work-life-balance, grindowali w projekcie za frajer. Robiłem z takim chłopem co taska za 5 SP pointow jak mu się coś ubzduralo to potrafił dwa dni po 12h siedzieć i napierd... kawę i robotę. Oczywiście nie mówiąc nikomu. To są minusy pracy zdalnej że ktoś robi ukrycie.

Potem kończyło się to tym że manager wymagał ode mnie tego samego, robienia po godzinach, dokształcania się na weekendach. Innymi mówiąc zawyżał mi normy w projekcie.
Tego typu osobnicy zafixowani na IT powinni robić z równymi sobie i się ścigać.

Nie dla normika praca z takimi. Ale to moja perspektywa.

5
mirkp napisał(a):

Projekt jest bardzo ciekawy pod względem możliwości rozwoju, jednak trochę się boję że nie podołam.

Nie to że mnie zjedzą - wiadomo. Raczej chciałbym uniknąć bycia najsłabszym ogniwem w projekcie

Bycie najsłabszym ogniwem poza minusami psychologicznymi (poczucie bycia najgorszym) to tak naprawdę same plusy. Najszybsza i najlepsza droga do rozwoju. W powiedzeniu "z kim przystajesz takim się stajesz" jest wiele prawdy.

0

Lepiej byc najslabszym w zespole niz najbardziej ogarnietym, bo sie o wiele bardziej rozwijamy. Chociaz nie powiem, jesli roznica w poziomie jest duza to bywa ciezko i moze to byc stresujace.

@oliver_: to ze potrzebujesz na cos 12h, nie oznacza ze ktos kto siedzi w temacie nie zrobi tego np w 15 minut.

0

Czy pracowaliście kiedyś z wymiataczami z konkursów w stylu TopCoder, Codeforces, Olimpiada Informatyczna etc?
Mam możliwość transferu do projektu, w którym jest jest kilka takich osób.

Czasem na studiach miałam styczność, czasem w pracy, ale nigdy nie było kilka takich osób naraz w zespole.

Gdybym miała wybierać, to pewnie miałabym wątpliwości:

  • takie osoby mogą być specyficzne, wydaje mi się że częściej niż średni programiści
  • jeżeli np. po roku efekty będą gorsze niż u wymiatacza, PM może nie być wyrozumiały i zacząć cisnąć "no przecież Maciek zrobił to w 2 dni, a Ty zamulasz" Ciężko konkurować z pasjonatami, czasem do tego singlami którzy nawet w boże narodzenie cisną. Uncle Bob np. pisał że tygodniowo ciśnie 20h za darmo poza pracę i "tyle trzeba poświęcić jak ktoś chce być dobry".
  • jak się spali projekt to może być wymówienie jako pracownik który się nie sprawdził, a nie zmiana projektu

Inna sprawa że jak ktoś był wymiataczem z czegokolwiek, czy to matematyki czy algorytmów, nie znaczy że całe życie jest maratończykiem i utrzymuje determinację dalej żeby być w czymś najlepszy. Niektórzy to olewają po liceum albo po studiach. Czy dobrze poznałeś ten zespół?

0

Yh, to zalezy.
Znam takich co traktowali konkursy jako zabawe i o ile algo umieja to nie sa jakimis 10x inzynierami.
Znam tez takich co wymiatali i w konkursach i w ogolnym ogarnieciu technicznym

Jesli w projekcie jest troche takich ludzi, to jest szansa ze albo robia tam ciekawe rzeczy, albo bardzo dobrze placa, albo jest bardzo malo roboty i moga sie zajmowac innymi rzeczami (albo wszystko na raz, jest taka jedna firma w waw ktora robi R&D i by pasowala xD)

A i patrzac na wiekszosc wypowiedzi tutaj - to ze wy nie pracujecie nad rzeczami gdzie algo (albo bardziej ogolna rozkmina) sie przydaje, nie znaczy ze takich firm w PL nie ma, sam wiem o kilku gdzie szukaja explicite takich ludzi. No ale oni sie nie oglaszaja na nofluffie/justjoinit tylko targetuja konkretne osoby i bezposrednio do nich sie odzywaja

6

@mirkp:
Zamiast pytać ludzi na losowym forum w internecie o anegdotyczne doświadczenia z pojedynczymi osobami które mają jakieś wpisy w życiorysie, po prostu idź z tymi osobami z projektu o którym piszesz na przysłowiowe piwo ;)

Osób, które są topowe w różnych około-programistycznych lub około-algorytmicznych konkursach są dziesiątki tysięcy, wywodzą się z różnych kultur, mają różne doświadczenia życiowe, etc, więc próba wyciągnięcia jakichś prawidłowości typu "miejsce top100 w topcoder → nie lubi mleka" trochę mija się z celem. I ofc topowe umiejętności w X danej osoby nie dają żadnych podpowiedzi, jeśli chodzi o stan umiejętności w Y tej samej osoby. Żadnych, tj. taka osoba może być równie dobrze bardzo dobra w Y, jak i nie mieć pojęcia o Y.

Na pozycję "najsłabszej" osoby w zespole można też popatrzyć z drugiej strony, jako idealne i motywujące środowisko do nauki, z masą potencjalnych mentorów dookoła.

Żeby było coś też "on topic" (i anegdotycznie) - pracowałem/pracuje z masą osób topowych w masie różnych konkursów, i jedyną cechą wspólną jest to, że są to bardzo sympatyczni ludzie ;)

50

Konkursy / zadania leet coode to z reguły naklepanie spaghetii, które ma rozwiązać jakiś normalnie nie istniejący problem. To coś zupełnie innego niż np zaprojektowanie sensownego systemu. O ile taka osoba jest świetna w algo o tyle nie musi to oznaczać, że jest dobrym programistom programistĄ.

Miałem okazje pracować z człowiekiem, który jeździł i zajmował wysokie miejsca na tego typu imprezach. Nie wyróżniał się niczym specjalnym na tle innych.

Wszystko zależy również od domeny. Jeśli domena to pisanie tego typu po*ebanych algo to takowy się odnajdzie. W przeciwnym razie silna wiedza z algo nie musi iść w parze z całą resztą.

1
Mjuzik napisał(a):
mirkp napisał(a):

Projekt jest bardzo ciekawy pod względem możliwości rozwoju, jednak trochę się boję że nie podołam.

Nie to że mnie zjedzą - wiadomo. Raczej chciałbym uniknąć bycia najsłabszym ogniwem w projekcie

Bycie najsłabszym ogniwem poza minusami psychologicznymi (poczucie bycia najgorszym) to tak naprawdę same plusy. Najszybsza i najlepsza droga do rozwoju. W powiedzeniu "z kim przystajesz takim się stajesz" jest wiele prawdy.

Ano. I nie musisz się hamować. Jak jest odwrotna sytuacja i wchodzisz, a tam ludzie, którzy nie są od ciebie lepsi (ale również nie na tyle słabi, żeby ich niańczyć i przyjmować rolę mentora - ot samodzielni pracownicy, ale bez ognia), to potem nie wiadomo jak się zachować. I w sumie niby jak równy z równym gadasz, ale czujesz, że ktoś do końca nie ogarnia do końca tego, co masz na myśli i ma tak naprawdę mocno wyje*ane na twoje wartości (bo to o wartości już zaczyna chodzić na pewnym poziomie, a nie o szczegóły implementacji. Czy komuś zależy na tym, żeby zrobić dobrej jakości dobrze działający soft, który będzie się łatwo utrzymywać, czy może ma wszystko gdzieś i chce tylko zaklepać taska).

Ludzie o mentalności mida są najgorsi.

tj.
mentalność juniora - jestem tu po to, żeby się uczyć i pomagać lepszym od siebie
mentalność mida - jestem tu, żeby rutynowo klepać taski i na wszystko inne mam wywalone
mentalność seniora - jestem tu po to, żeby wziąć odpowiedzialność za projekt (cały albo przynajmniej za swoją część)

0

Nie to że mnie zjedzą - wiadomo. Raczej chciałbym uniknąć bycia najsłabszym ogniwem w projekcie.

wtf, co to w ogóle za podejście?

3

Z mojego doświadczenia klepanie algorytmów praktycznie nie ma związku z pracą ani jakością produkowanego kodu. Widziałem osoby dobre z algorytmów piszące ładny i brzydki kod - nie ma związku. Nowe osoby które bardzo często robią algorytmu z reguły są bliżej brzydkiego ze względu że szybciej się go pisze podczas konkursów i potem się przyzwyczajają ale nie jest to reguła i zależy od osoby.

0

Biorąc pod uwagę jakość narzędzi używanych przez fizyków teoretycznych w modelowaniu to może nawet lepiej że tych wymiataczy jest na tyle mało że to wszystko jeszcze działa.

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