Dobra rekrutacja techniczna - subiektywne opinie

Dobra rekrutacja techniczna - subiektywne opinie
HA
  • Rejestracja:około 6 lat
  • Ostatnio:około 17 godzin
  • Postów:1005
3

W nawiązaniu do wątków, które ostatnio pojawiają się na forum o tym jak to źli pracodawcy ciemiężą kandydatów na rozmowach każąc im odpowiadać na za trudne/za proste pytania itp. chciałbym pogadać jak wg Was powinna wyglądać dobra rozmowa techniczna. W komentarzach pokazałem jakie sam stosuję pytania i zostałem mocno zjechany, że pytania bez sensu, programista praktyk nie umiałby na nie odpowiedzieć itp.

jak wygląda proces od strony HR

Na początek opiszę trochę wymagania do procesu rekrutacyjnego, z których osoby komentujące mogą sobie nie zdawać nawet sprawy. Zazwyczaj osoba techniczna przed prowadzeniem rekrutacji dostaje podstawowe info o kandydacie + ewentualnie wskazanie pozycji na jaką by miała go rekrutować (chyba, że rekrutacja ogólna). HR w rezultacie rozmowy oczekuje:

  • odpowiedzi w skali 1-5 jaki jest poziom kandydata pod względem technicznym
  • odpowiedzi w w skali 1-5 jakie wrażenie robi kandydat (tj. czy wpasuje się w zespół, czy nie jest kłótliwy, czy umie rozmawiać, jak reaguje na wskazanie błędu itp)
  • do tego często jest lista skilli typu API, bazy danych, software design itp. - w każdym z tych tematów trzeba napisać kilka słów o poziomie kandydata.

Nawet jak kandydat nie zostanie zatrudniony na stanowisko to przez X miesięcy taki wpis leży sobie w systemi HR i osoby w firmie, które mają potrzebę "na zasób" zamiast rozpisywać rekrutację mogą przejrzeć osoby, które się przewinęły i ewentualnie odświeżyć kontakt. Sam HR też co jakiś czas wraca do kandydatów, którzy dobrze wypadli w rozmowach, ale np. nie przyjęli oferty i ich co 6-12 miesięcy pinguje, aby odświeżyć kontakt.

rekrutacja techniczna

Sama rozmowa zazwyczaj zależy w dużej mierze od osoby ja przeprowadzającej - są ludzie, którzy preferują code review, live coding albo luźną rozmowę. Ja jestem w tej ostatniej grupie. Mój skrypt na rozmowę (1,5-2h) polega mniej wiecej na:

wprowadzenie

Temat dowolny - zazwyczaj rozmowa o doświadczeniu kandydata. Tu wiele osób powie "przecież to jest w CV". Odpowiem, że robię to bo wielu kandydatów się stresuje i źle wypada w rozmowie. Jak zaczniemy od neutralnego tematu to kandydat ma szansę "wejść w rozmowę" na luzie. Dla mnie też jest istotne co kandydat robił, jakiej skali projekty ogarnial itp.

rozmowa techniczna.

Tu wiele osób zrzyma się, że część pytań jest za prosta i na przykład nie ma sensu pytać o SOLID osób z 5 letnim doświadczeniem i studiami. Sam pytam o SOLID bo:

  • dobre praktyki/jakość kodu są na liście rzeczy, które muszę ocenić
  • wbrew pozorom wiele osób sobie nie radzi z tymi tematami i jedyne co umie powiedzieć to sucha regułka.

Dla przykłądu u mnie pytanie o SOLID wygląda np.

  • co to jest OCP
  • podaj jakiś przykład w jaki zastosowałeś ostatnio OCP w praktyce (nie interesują mnie przykłady na poziomie tutoriali Dog/Animal)
  • opisz jakieś mechanizmy z frameworka w którym pracujesz, a które wykorzystują OCP

Tu znowu podając ten przykład spotkałem się z krytyką, że na przykład wymagam znajomości kodu frameworka... Dla mnie zupełnie bez sensu stwierdzenie. Raz, że uważam, że trzeba znać narzędzie, w którym się pracuje a dwa, że przecież w ciemno można powiedzieć (bo praktycznie każdy framework to oferuje), że np. framework posiada eventy, które można subskrybować, posiada jakąś formę middleware, posiada konfigurację itp. Często widzę, że kandydat ma na początku problem ze wskazaniem to naprowadzam go np. podając jeden element.

Inny przykład pytania to scenki sytuacyjne, które zaczynam od prostego pytania i potem drążę. Np. wybobraź sobie, że jesteś na spotkaniu technicznym, gdzie pracujecie nad problemem z API. W pewnym momencie kolega z zespołu proponuję aby w zapytaniu typu GET dane przesłać przez body.

  • pytanie 1 - czy w zapytaniu GET można przesyłać dane w body
  • pytanie 2 - co byś odpowiedział na taką propozycję kolegi - uważasz, że to sensowne rozwiązanie?
  • pytanie 3 - jakie problemy mogą wystąpić jeśli skorzystamy z tego rozwiązania

Ogólnie pytania staram się osadzać w jakimś kontekście, tak aby trzeba połączyć wiedzę teoretyczna z jakimiś konrketymi sytuacjami. Równie mocno patrzę na odpowiedzi jak i na proces dochodzenia do nich przez kandydata/sposób myślenia.

podsumowanie

Tutaj daję przestrzeń na zadanie pytań + daję feedback z rozmowy i o nim chwilę dyskutujemy.

Chętnie dowiem się od osób prowadzących rekrutacje jakie są ich patenty, a od osób rekrutowanych jak wg nich powinna wyglądać dobra rekrutacja. Zwróćcie proszę tylko uwagę, że wiele rzeczy, może się wydawać bez sensu (np. te proste pytania), ale maja one uzasadnienie np. w procedurze rekrutacyjnej czy doświadczeniu rekrutujacego na większej próbie przeprowadzonych rozmów.

tefu
  • Rejestracja:prawie 2 lata
  • Ostatnio:około 22 godziny
  • Postów:463
15

Tu wiele osób zrzyma się, że część pytań jest za prosta i na przykład nie ma sensu pytać o SOLID osób z 5 letnim doświadczeniem i studiami. Sam pytam o SOLID bo:

Tylko co Ci po tym SOLIDzie. Każdy rekruter techniczny niby zna. Każdy niby Mid-Senior też niby zna. Potem idziesz do projektu i widziesz, że tam nic nie jest wg zasad SOLID i nawet jakbyś chciał wprowadzić jakieś sensowne punkty to się okazuje, że klient za takie rzeczy nie płaci, nie ma czasu, nie ma budżetu, a tam jest pożar do gaszenia bo wywaliło PRODa xD

Rekrutacja powinna być adekwatna do projektu.
Jeśli projekt faktycznie wymaga pracy z algorytmami to jest jak najbardziej sens robić jakieś zadanka codility itd.
Jeśli budujesz faktycznie nowe API, implementujesz kafki i inne cuda, to może i zasande jest by dać jakieś zadanie do domu, ale równie dobrze można to zrobić w kilkanaście minut na rozmowie.

Ja jestem przeciwny zadaniom, bo praca to nie olimpiada informatyczna czy jakiś hackton, żeby nad tym ślęczeć wieczorami i się przygotowywać jak student do egzaminu na studia.
Na koniec zawsze się okazuje, że turbo ciekawy nowatorski projekt nie wystartował i dalej lepimy i łatamy monolit legacy z kulek goowna, trzeba debbugować by naprawić buga, trzeba zrobić update wersji frameworka, trzeba na szybko wysłać patcha bo jest jakaś luka w bibliotece, omawiać z klientem coś tam, wymyślać scenariusze testowe bo nie ma sensownych testerów (bo po co? przecież developer może zrobić to samo) i tyle z tego technicznego maglowania.

To czego nie robiłeś przez ostatnie 6 miesięcy i tak pewnie zbyt dobrze nie pamiętasz i musisz sobie przypomnieć, wygooglać, dopytać Chat GPT etc.
Na rozmowie widać czy ktoś kumaty i wporzo czy ściemniacz i kombinator czy jakiś wariat, który podpali biurko by przetestować system przeciwpożarowy w biurze.

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

Jakby sie na tym zastanowic to nie da sie dobrze przeprowadzic rekrutacji technicznej. Stad przy seniorach niektorzy z tego rezygnuja xD, ale nie mówię, że to idealne rozwiązanie, bo sporo oszustów i zasiedziałych wysyła CV.

Wszystko zalezy od stopnia stanowiska i projektu. Imo idealna rekrutacja powinna sprawdzać czy kandydat ma wiedzę, aby móc bez przeszkód zrozumieć i pracować w projekcie do którego trafi. Pytanie o juzles teorie jak SOLID, przeładowanie operatorów dodawania, albo co robi funkcja "x" z dokumentacji to troche bullshit. Jak praca z starym softem i głównie debugging to dajecie kawałek projektu i niech pokaze jak sobie radzi z kodem.
Generalnie największa patologia IT to rekrutacje oderwane od rzeczywistości i pytanie o rzeczy całkowicie nieprzydatne. Jak juz macie to robic to pytajcie o leetcody, bo ciekawsze i mniej bezużytecznej wiedzy trzeba sie nauczyć.

No i równie ważna rzecz to jak jakiś kandydat spełni wasze wymagania to bierzcie go od razu a nie, że wypytujecie następne 20 i tracicie wszystkim czas. W mojej obecnej firmie to byłem jednym z pierwszych i jak spasowałem to oferta i koniec. Mam wrażenie, że niektóre firmy sztucznie zawyżają trudność rekrutacji licząc, że znajdą nie wiadomo kogo. Imo to kiepskie podejście i marnotrastwo czasu. Zwłaszca, że wymatacz i tak ucieknie prędzej czy później.

edytowany 2x, ostatnio: Czitels
Miang
a przeładowanie operatora dodawania to akurat ma sens
HA
  • Rejestracja:około 6 lat
  • Ostatnio:około 17 godzin
  • Postów:1005
2

Ogólnie ciekawa post ale z jedną cześcią się nie zgodzę

tefu napisał(a):

Tylko co Ci po tym SOLIDzie. Każdy rekruter techniczny niby zna. Każdy niby Mid-Senior też niby zna. Potem idziesz do projektu i widziesz, że tam nic nie jest wg zasad SOLID i nawet jakbyś chciał wprowadzić jakieś sensowne punkty to się okazuje, że klient za takie rzeczy nie płaci

Dla mnie SOLID to taka trochę matrioszka/cebula. Pokrywa zarówno rzeczy duże jak cała architektura systemu, ale i zwykłe kodowanie na poziomie zlepienia kilku klas. Jak developer rozumie te zasady (a nie tylko klepie formułki) to jest szansa, że przynajmniej na poziomie wytwarzanego kodu będzie starał się je stosować, a to już i tak sporo znaczy. U devów najbardziej cenię, że potrafią łączyć kropki i wiedzę teoretyczną umieją odnieść do narzędzi w których pracują. Wbrew pozoro nie jest z tym aż tak różowo i np. SOLID wielu developerów rozumie tylko na bardzo uproszczonym poziomie w stylu pytasz o SRP to słyszysz coś w stylu "klasa musi być krótka i robić 1 rzecz", ale jak już wsadzisz to w kontekst i zadasz często nawet tak trywialne pytanie jak czy "2 metody publiczne oznaczają, że klasa łamie SRP" to się zaczynają schody i wychodzi zupełny brak zrozumienia istoty/pokazania, że się myśli przy kodowaniu.

Czitels napisał(a):

Jakby sie na tym zastanowic to nie da sie dobrze przeprowadzic rekrutacji technicznej.

Oj to prawda - trudno dogodzić wszystkim bo jedni uważają, że pytania są zbyt trudne inni, że proste pytanie ich obrażają. Live coding/zadania są złe/dobre. Chyba HR by musiał robić ankietę jaką rekrutację chce dany kandydat przejść aby wszystkim dogodzić ;-)

Co do tego, że kandydat spełni wszystkie wymagania to rzadko się zdarza aby taki się trafił. Na rozmowie (także technicznej) ocenia się nie tylko skill techniczny, ale też "fit do zespołu", sposób w jaki kandydat radzi sobie z wskazaniem błędu. Bo co z tego, że trafisz super ogarniacza, który potem twardo stoi przy każdym swoim rozwiązaniu i zawsze wie najlepiej przez co rozsadza zespół od środka. Kasa też jest dość istotna bo czasami masz kandydata, który spełnia dość dobrze wymagania (powiedzmy fit na 80%), ale chce górnych widełek, a w kolejce masz osoby podobnie rokujące, ale z mniejszymi wymaganiami. Odnosząc to do kupna auta - jak trafisz fajne auto ale na granicy Twojego budżetu to też pójdziesz do innego salonu zbadać opcje. Zresztą decyzja o zatrudnieniu nie zapada na rozmowie technicznej - w większości osoba ją prowadząca daje tylko feedback do HR, HR to wszystko owija w papierek i daje rekomendację do osoby decyzyjnej. Ja często nawet nie dostaję info o stawce jako chce kandydat a nawet na jaki level aplikuje, żeby sobie nie wyrabiać opinii przed spotkaniem.

Miang
dwie metody publiczne: getter i setter ;)
HA
Nie za bardzo rozumiem do czego pijesz tym przykładem. Nigdzie nie napisałem, że taka klasa z 2 metodami publicznymi nie jest SRP...
loza_prowizoryczna
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 20 godzin
  • Postów:1583
2

Dobra rekrutacja techniczna - obiektywna opinia

Cheap + good enough + easygoing


Przetrzyma wszystko
tefu
  • Rejestracja:prawie 2 lata
  • Ostatnio:około 22 godziny
  • Postów:463
3
hadwao napisał(a):

Dla mnie SOLID to taka trochę matrioszka/cebula. Pokrywa zarówno rzeczy duże jak cała architektura systemu, ale i zwykłe kodowanie na poziomie zlepienia kilku klas. Jak developer rozumie te zasady (a nie tylko klepie formułki) to jest szansa, że przynajmniej na poziomie wytwarzanego kodu będzie starał się je stosować, a to już i tak sporo znaczy. U devów najbardziej cenię, że potrafią łączyć kropki i wiedzę teoretyczną umieją odnieść do narzędzi w których pracują. Wbrew pozoro nie jest z tym aż tak różowo i np. SOLID wielu developerów rozumie tylko na bardzo uproszczonym poziomie w stylu pytasz o SRP to słyszysz coś w stylu "klasa musi być krótka i robić 1 rzecz", ale jak już wsadzisz to w kontekst i zadasz często nawet tak trywialne pytanie jak czy "2 metody publiczne oznaczają, że klasa łamie SRP" to się zaczynają schody i wychodzi zupełny brak zrozumienia istoty/pokazania, że się myśli przy kodowaniu.

Ale takie dyskusje jak np o wspomnianym SRP i tych metodach publicznych to rozważania quasi-filozoficzne. Można sobie o tym gdybać ale nie oparłbym decyzji o zatrudnieniu kandydata na podstawie takich rozważań techniczno-filozoficznych.
Bo to się sprowadza do tego czy masz do czynienia z bucem/zarozumialcem, który będzie foroswać swoje rozwiązanie czy z kimś, kto Ci przyzna rację lub nie i to bez spiny uargumentuje.
Krótko mówiąc, wszystko się sprowadza do tego czy można się z kimś dogadać.

edytowany 2x, ostatnio: tefu
HA
W sumie w dużej mierze jest jak piszesz - jak ktoś potrafi się dogadać i z przebiegu rozmowy wydaje się rozumieć pewne koncepty i przełożyć je na praktyczną pracę to jest OK. Na pewno bym nie zatrudnił mocnej osoby z którą się trudno dogadać - przy takich zawsze daję rokomendację aby odrzucić. Ale też z doświadczenia widzę, że mocne osoby zazwyczaj są przy okazji dość otwarte na dyskusję bo pewność swojej wiedzy pozwala im być otwartym na inne rozwiązania. Miałem już na rozmowie osoby, które były lepsze technicznie ode mnie i fajnie się z nimi rozmawiało.
KE
  • Rejestracja:około 6 lat
  • Ostatnio:około 4 godziny
  • Postów:658
0
hadwao napisał(a):

Inny przykład pytania to scenki sytuacyjne, które zaczynam od prostego pytania i potem drążę. Np. wybobraź sobie, że jesteś na spotkaniu technicznym, gdzie pracujecie nad problemem z API. W pewnym momencie kolega z zespołu proponuję aby w zapytaniu typu GET dane przesłać przez body.

  • pytanie 1 - czy w zapytaniu GET można przesyłać dane w body
  • pytanie 2 - co byś odpowiedział na taką propozycję kolegi - uważasz, że to sensowne rozwiązanie?
  • pytanie 3 - jakie problemy mogą wystąpić jeśli skorzystamy z tego rozwiązania

Ogólnie pytanie ujdzie (choć przyznam, że nieoczywiste - podejrzewam, że niewielu się na to nacięło, ja bym pewnie nie wiedział, przypadkiem o tym poczytałem dawno temu jak ktoś z zespołu chciał lepsze wyszukiwanie w aplikacji zrobić).
Ale gdzie tu historyjka? Cały kontekst to "kolega pyta na spotkaniu technicznym". Nic się tutaj nie dzieje, prościej by było, jakbyś po prostu zadał to pytanie :P

Natomiast ogólnie zamysł historyjki mi się podoba. Tak jak na przykład są pytania na certach z AWS.

HA
Historyjka zazwyczaj jest trochę bardziej rozbudowana - np. podaję argumentację kolegi i chcę zobaczyć jak kandydat sobie z tym radzi. Jak nie zna odpowiedzi na 1. pytanie to mu mówię jak jest (faktycznie nie jest to oczywiste) i patrzę co zrobi z tą wiedzą odpowiadając na pytanie 2 i 3. Nawet jak popełni błędy to sam tok rozumowania i to czy kandydat w ogóle podejmuje rękawicę sporo mówi. Tak samo jak powie, że się z tym nie spotkał ale czytał X bo to znaczy, że np. faktycznie czyta jakieś artykuły/blogi.
DE
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 20 godzin
  • Postów:563
16

Mam wrażenie że w innych branżach ludzie rozumieją że uczymy się niektórych rzeczy do egzaminu i zapominamy, a później mamy zdolność szybszego przypomnienia sobie zagadnień. W IT panuje założenie że każdy ma autystyczną zdolność memoryzowania i przypominania sobie wszystkiego co w życiu przeczytał i jak nie potrafi odpowiedzieć na pytanie to znaczy że nie ma o temacie pojęcia.

Zobacz pozostałe 4 komentarze
loza_prowizoryczna
@tefu: Nigdzie nie masz zer i jedynek głąbie! Widać żeś IT widział chyba z wykładów na UJ. Masz tylko różnice potencjałów - to już od krzemu zależy co z tymi ma zrobić. Tak samo jak od igieł w maszynie perforowanej zależało czy wgłębienie zinterpretować jako perforację. Co za dzieciarnia tutaj :/
tefu
@loza_prowizoryczna: koledze potrzebny widać jakiś nerwosol czy ziołowa herbatka na uspokojenie.
loza_prowizoryczna
@tefu: A ty tak znosisz gwałty na rozumie obojętnie?
Miang
na studiach jest jak 9 Polecam wszystkim książkę Ho... i potem niektórzy "rekruterzy" hahaha doktor a tego nie wiedział, uwaliłem go. a doktor zdążył zapomnieć więcej niż ten rekruter kiedykolwiek widział
HA
  • Rejestracja:około 6 lat
  • Ostatnio:około 17 godzin
  • Postów:1005
2
debugariusz napisał(a):

Mam wrażenie że w innych branżach ludzie rozumieją że uczymy się niektórych rzeczy do egzaminu i zapominamy, a później mamy zdolność szybszego przypomnienia sobie zagadnień. W IT panuje założenie że każdy ma autystyczną zdolność memoryzowania i przypominania sobie wszystkiego co w życiu przeczytał i jak nie potrafi odpowiedzieć na pytanie to znaczy że nie ma o temacie pojęcia.

Zupełnie się z tym nie zgadzam niestety. Oba moje pytania są wg mnie dość praktyczne. Pierwsze pokazuje czy kandydat ma jakieś przemyślenie co do SOLIDa, widzi jakieś jego zastosowanie w swojej codziennej pracy etc. Myślę, że istnieje ryzyko, że silny teoretycznie kandydat nie radzi sobie z praktyką, ale moje doświadczenie jest też takie, że słaby teoretycznie kandydat nadaje się tylko do pisania CRUD'ów. Na wiele problemów są już gotowe rozwiązania - jeśli kandydat zna je teoretycznie to jest jakaś nadzieja, że zastosuje w praktyce. Jak nie zna teorii to trudno aby stosował ją w praktyce. Zgodzę się, że jak ktoś klepie proste CRUDy to może to nie ma znaczenia, ale w większych aplikacjach dużo się dzieje i mix teorii z doświadczeniem mocno procentuje.

W innym wątku, gdzie dyskutowaliśmy podałem jako przykład pytanie o "dual write problem", które uznałeś, że jest zbyt teoretyczne i byś nie odpowiedział. Dla mnie fajne pytanie bo:

  • to dość popularny problem w kontekście niektórych architektur - jak ktoś się z nim nigdy nie spotkał, to znaczy, że nie pracował z takimi aplikacjami
  • najgorzej jak deklaruje, że pracował w takich architekturach, gdzie problem może wystąpić a się z nim nie spotkał i nawet po wyjaśnieniu nadal nic nie dzwoni
  • jeśli kandydat nie zna tego problemu to można opowiedzieć na czym problem polega i zobaczyć czy kandydatowi w ogóle zwoje zaczną stykać może mieć konsekwencje
  • jeśli się z nim w praktyce nie spotkał, to można poprosić o wymyślenie jak taki problem by rozwiązał i obserwować jak dochodzi do rozwiązania, trochę naprowadzać etc.

To pytanie byłoby teoretyczne gdybym spytał co to jest i kandydat by nie odpowiedział a ja bym nie drążył- wtedy pełna zgoda, bo mógł np. nie znać terminologii, ale z problemem się spotkać. Ale jeśli prowadzisz z kandydatem dyskusję to nawet z jego błędnych odpowiedzi można wyciągnąć wiele wniosków i to często pozytywnych. Zauważ, że w kodowaniu dokładnie takie coś ma miejsce - spotykasz się z nowym problemem, musisz zrozumieć czemu coś jest problemem, zrobić analogię z innymi rzeczami, których doświadczyłeś i na tej podstawie wymyślić rozwiązanie, więc dokładnie to sprawdzam w takim procesie pytań pomocniczych i dochodzenia do rozwiązania. Dla seniorów często wplatam takie edge casy, których sam doświadczyłem i jest spora szansa, ze oni się z tym nie zetknęli właśnie po to aby zobaczyć jak "wybrną".

Obserwuję karierę osób, których rozmowy prowadziłem (często z nimi potem pracuję) i moim zdaniem jest silna korelacja między wiedzą teoretyczną, a jakością pracy developera. Developerzy z grubsza dzielą się na dwie grupy. Pierwsza to klepacze, a druga zajawkowicze, którzy sporo czytają, analizują, szukają lepszych rozwiązań. Ci drudzy są dla mnie znacznie bardziej wartościowi bo nie boję się ich potem samych z projektem zostawić.

DE
Mój komentarz w innym wątku dotyczył pytań o OCP na które nie umiałbym odpowiedzieć mimo znajomości zagadnienia. Co to dual write problem to raczej o nim nie słyszałem
HA
Ok to drugie pytanie to "jakie rozwiązania w frameworku, w którym pracujesz są przejawem stosowania OCP". Rozumiem, że w stresie rozmowy można się pogubić/pytanie jest niejasne, więc widząc to podpowiadam kandydatowi np. "Twój framework używam middlewarów, dzięki czemu możesz się wpiąć w wiele miejsc i rozszerzyć logikę bez dotykania kodu frameworka" i proszę o wymienienie jeszcze innych rozwiązań per analogia. Jeśli po takim wprowadzeniu kandydat nie potrafił dodać 3-4 kolejnych rzeczy do listy to zakładam, że OCP to pusta regułka dla niego.
HA
I tu oczywiście nie zakładam, że nie stosuję innych rozwiązań typu sybskrybowanie eventów, tylko że robi to odtwórczo bo ktoś mu powiedział, że tak trzeba (zresztą często takie coś pada, że np. "TL tego wymagał"). Z taką osobą nie chcę pracować - wolę z kimś, kto ma przemyślenia i próbuje krytycznie oceniać różne rozwiązania i mody.
SA
@hadwao: aż mi się przypomnial pewien wątek w dziale C++, gdzie senior nad seniorami przekonywał, że w OCP chodzi o oznaczanie wszystkich metod jako virtual, żeby dało się je nadpisywać <3
HA
Na rekrutacjach można się dużo ciekawych teorii nasłuchać. Najgorsze są od ludzi, którzy pracują ~10 lat, są takim typem rzemieślnika co z 5 różnych miejsc pracy zebrał różne nawyki, nigdy ich nie przemyślał i ulepił z tego mentalnego potworka. Jak jeszcze miał szczęście trafić na ogarniętych TL'ów to nawet standardowe problemy dobrze zakoduje bo robi to odtwórczo ale w miarę poprawnie. Jak trafił na jakichś dziwnych ludzi to się robi (nie)ciekawie, a w zespołach potem problem bo stare nawyki trudno zmienić i nikt nie chce z takimi ludźmi pracować.
Miang
@hadwao: i potem taki zadaje pytania na rekrutacji spodziewając się odpowiedzi zgodnej z tymi jego nawykami
SA
@Miang: ale to przecież dobrze? Jeśli widzę, że osoba oczekuje złych odpowiedzi to jest informacja dla kandydata. Dzięki temu wiem jakie będą oczekiwania i czy jestem w stanie pogodzić się z tym, że ktoś (a pewnie przełożony/lead) będzie pieprzył głupoty.
KO
@hadwao: skąd u ciebie ta pewność, że to ty może nie jesteś tym typem "rzemieślnika", którego opisujesz? Skąd mam pewność przy rozmowie o pracę z tobą, że to ty nie jesteś typem dziwnego TLa, który narzuca innym swoje wymagania (bo trochę właśnie tak brzmisz)
HA
@korokczan: Rozmowa jest też dla kandydata - jeśli takie wrażenie odniesiesz to nie kontynuujesz procesu, bo przecież potem z tą osobą będziesz pracował. Co do mojego poziomu, to nie uważam się za wymiatacza - znam sporo lepszych osób od siebie, więc na rozmowach jak ktoś dobrze uargumentuje swoje stanowisko to jest dla mnie OK nawet jak jest inne od mojego.
ccwrc
  • Rejestracja:prawie 9 lat
  • Ostatnio:35 minut
  • Postów:371
0
hadwao napisał(a):
  • pytanie 1 - czy w zapytaniu GET można przesyłać dane w body

Temat ciekawy, później sobie popiszę a w międzyczasie: https://tinyurl.com/lipna-loza-prowizoryczna

edytowany 1x, ostatnio: ccwrc
loza_prowizoryczna
Przyjacielu, skróć ten link bo źle wygląda. Trochę estetyki :/
loza_prowizoryczna
@ccwrc: Dzięki, teraz przynajmniej link odpowiada zawartości :)
ccwrc
do usług : )
KO
  • Rejestracja:prawie 2 lata
  • Ostatnio:około 23 godziny
  • Postów:139
2

SOLID srolid, może w Javie albo C# ma sens, bo to języki typowo obiektowe, ale nie widzę sensu tego typu rozważań w innych językach. Jak już bym miał podawać jakieś przykłady wg mnie dobrych pytań na rozmowie, to byłoby to coś w tym stylu (ogólnie coś bardziej praktycznego, co sprawdzi czy kandydat miał z tym styczność):

  • kiedy graphql będzie lepszym zastosowaniem niż rest api
  • coś z baz danych, np kiedy lepiej zastosować sql a kiedy no-sql
  • ktoś miał styczność z live streamami, to pytanie o kafkę/sqs/cokolwiek podobnego
  • może jakiś prosty system design (byle nie coś w stylu zrób nam klona instagrama/tiktoka itp)
  • no i sprawdzenie, czy kandydat wydaje się być ogarniętym człowiekiem a nie toksykiem bucem mitomanem
edytowany 1x, ostatnio: korokczan
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
2

Dobra rekrutacja techniczna == krótki skan (HR) => zadanie domowe => "live coding" (ultra prosty, ew kontynuacja zadania) => dyskusja techniczna.

To doświadczenie z dwóch stron stołu.

Są ludzie, którzy ładnie przechodzą rozmowy, a potem potykają się o własne ręce -> nie chcę takich zatrudniać, jak się zatrudniam to nie chcę z takimi pracować.

A SOLID srolid - zgadzam się.

hadwao napisał(a):

Inny przykład pytania to scenki sytuacyjne, które zaczynam od prostego pytania i potem drążę. Np. wybobraź sobie, że jesteś na spotkaniu technicznym, gdzie pracujecie nad problemem z API. W pewnym momencie kolega z zespołu proponuję aby w zapytaniu typu GET dane przesłać przez body.

  • pytanie 1 - czy w zapytaniu GET można przesyłać dane w body
  • pytanie 2 - co byś odpowiedział na taką propozycję kolegi - uważasz, że to sensowne rozwiązanie?
  • pytanie 3 - jakie problemy mogą wystąpić jeśli skorzystamy z tego rozwiązania

Bardzo dobry przykład - dokładnie to ostatnio miałem w pracy. Pracuje ponad 20 lat robiąć serwisy web, api. Bez patrzenia w internet nie potrafiłem powiedzieć co zrobić :-) Mimo, że jestem pewny, że już ze 3 razy w karierze dokładnie ten problem rozkminiałem.
Po prostu tak rzadzki przypadek, że jak się nad tym ostatnio nie siedziało to mało kto (IMO) jest pewny co powiedzieć.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
Zobacz pozostałe 6 komentarzy
tefu
niech zapłacą za zadanie domowe wtedy będzie sprawiedliwie właśnie miałem wstępny call z PM do jakiegoś projektu. Nie wiadomo czy klient daje zadania domowe. Raz tak raz nie. Mówili, że mogą mi za to zadanie zapłacić. Powiedziałem, że nie. Bo gdybym wiedział na jakim poziomie to zadanie i jakie wynagrodzenie to można pomyśleć. A tak to są dwie niewiadome. Szkoda zachodu.
Miang
no to możesz odmówić w momencie jak już da to zadanie
tefu
No właśnie pośrednik tak nie chce xD bo boją się otwierać proces z klientem jeśli nie mają pewności czy się zgodzę na zadanie. Nie chcą abym w połowie procesu się wycofał bo z ich punktu widzenia to zmarnowany czas.
Miang
to ma jakąś nazwę w negocjacjach, że masz się zadeklarować a potem jak będzie kiepsko to się nie wycofasz
tefu
A widzisz, to nie dałem się wciągnać pułapkę.
loza_prowizoryczna
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 20 godzin
  • Postów:1583
1
korokczan napisał(a):
  • no i sprawdzenie, czy kandydat wydaje się być ogarniętym człowiekiem a nie toksykiem bucem mitomanem

Mamy jakiś standard ISO do tego?


Przetrzyma wszystko
Zobacz pozostałe 2 komentarze
KO
ale o co ci chodzi? Przez ~2h godziny rozmowy można wyczuć, czy ktoś jest bucem, czy można z nim normalnie pogadać
loza_prowizoryczna
Przez ~2h godziny rozmowy można wyczuć, czy ktoś jest bucem, czy można z nim normalnie pogadać - wychodzi na to że speed-dating byłby idealnym sposobem na dobrane związki.
KE
Gorzej jak rekrutujący jest bucem, to wtedy wynik może być zafałszowany.
loza_prowizoryczna
Minus z minusem daje plus.
DC
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 godziny
  • Postów:407
4

Ja już się nauczyłem że w tym zawodzie rekrutacja to jest w ogóle jakis kompletnie odrębny skill niezwiązany jakkolwiek z tym co robię od lat dzień w dzień ;)

I na odwrót, są typy co na rekrutacji wypadają wzorowo ale po miesiącu sie okazuje że sie z tymi ludzmi absolutnie nie da pracować.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8397
3
hadwao napisał(a):

Temat dowolny - zazwyczaj rozmowa o doświadczeniu kandydata. Tu wiele osób powie "przecież to jest w CV". Odpowiem, że robię to bo wielu kandydatów się stresuje i źle wypada w rozmowie. Jak zaczniemy od neutralnego tematu to kandydat ma szansę "wejść w rozmowę" na luzie. Dla mnie też jest istotne co kandydat robił, jakiej skali projekty ogarnial itp.

Opowiadanie o doświadczeniu to nie jest neutralny temat, ponieważ trzeba dokonać filtracji. Jeśli się ma różnorodne doświadczenie, robiło się rzeczy z działki X, Y czy Z, to trzeba ostrożnie podchodzić, żeby wybrać takie doświadczenia, które będą pasować do profilu firmy, a resztą pominąć.

A jeśli się szuka pracy w różnych firmach (bez jakiejś konkretnej preferencji), to jest to męczące. Firmie produktowej trzeba podkreślać zaangażowanie długofalowo w produkty, software house'owi trzeba podkreślać umiejętność wchodzenia szybko w kolejne projekty pod presją czasową; firmie międzynarodowej, że się pracowało w międzynarodowym środowisku itp.

I jak człowiek używał przez lata różnych technologii, to też trzeba na rozmowie podkreślać tylko te technologie, które są używane w firmie. A jak powiesz, że technologię X znasz dobrze i się zajmowałeś nią kilka lat, jednak ostatni raz rok temu, to cię uwalą, bo szukają kogoś "ze świeżym doświadczeniem". Więc trzeba mocno lawirować, bo jedno nieuważne zdanie i potem czytasz w rejection letter, że firma wybrała kogoś z większym doświadczeniem w X 🤡

Czyli jeśli zadajesz pytania o doświadczeniu kandydata, bo wielu kandydatów się stresuje i źle wypada w rozmowie., to możesz osiągnąć skutek przeciwny do zamierzonego. Przecież to najbardziej stresująca część rozmowy, bo trzeba się domyśleć, czego ktoś oczekuje i tak przefiltrować swoje doświadczenia, żeby wyszło na to, że się nadajemy idealnie.

Dla mnie też jest istotne co kandydat robił, jakiej skali projekty ogarnial itp.

A nie lepiej odwrócić sytuację? Zamiast męczyć kandydata na temat tego, co robił (co i tak nie będzie miarodajne, ludzie też się mogą nauczyć mówić to, co ktoś chce usłyszeć), to opowiedzieć mu o tym, co wy robicie, pogadać o architekturze waszego projektu, o rozwiązaniach itp. a potem zapytać kandydata co o tym sądzi i jakie ma przemyślenia albo pytania? Albo pokazywać niezbyt udane kawałki kodu z produkcji i pytać, co tu można zrobić, jak można polepszyć? Czyli potraktować jak potencjalnego kolegę do zespołu, bo przecież na tym to ma polegać.

Zakładając, że to firma produktowa i ma własny produkt, którym może się chwalić. Bo jak to kontraktornia, to może być gorzej. Ale wtedy można by pogadać o ogólnych praktykach, podejściu jakie ma firma do projektów, tworzenia softu, pisania kodu itp.


edytowany 4x, ostatnio: LukeJL
Miang
no i wtedy uczciwi by odpowiadali uczciwie, a nieuczciwie dalej lecieli formułkami po czym można by ich łatwo rozpoznać
DE
no co Ty, to by było zbyt proste
AN
  • Rejestracja:prawie 11 lat
  • Ostatnio:40 minut
  • Postów:973
3

Czyli Twoim zdaniem trzeba znać formułki typu SOLID żeby być dobrym? Ja nawet nie pamiętam rozwinięcia skrótu. Ale ja jestem jakiś dziwny i nie potrzebuję znać teorii żadnych żeby wiedzieć, że fajnie mieć czytelny kod a nie np. 100 stopni zagnieżdżeń (zgodnych z SOLID o zgrozo!)


Zdalna praca dla Senior Python Developerów --> PW
Zobacz pozostałe 2 komentarze
CZ
Imo wystarczy znać złotą zasadę "Composition over inheritance" i więcej nie potrzeba. Żadnych wzorców, zadnego SOLIDA i wszystko sam wymyślisz.
kimikini
teraz jak nie znasz tego od a do z to odpadasz nawet jakbys mial 20lat expa
somekind
Jak osiągnąć 100 stopni zagnieżdżeń i być jednocześnie zgodnym z SOLID?
RA
@somekind: Odwrócę pytanie. Który z założeń SOLID ogranicza cyclomatic complexity?
somekind
Wydaje mi się, że pierwsza reguła. Ale tego się nie da stwierdzić bez spojrzenia w konkretny kod.
tefu
  • Rejestracja:prawie 2 lata
  • Ostatnio:około 22 godziny
  • Postów:463
0
LukeJL napisał(a):

A nie lepiej odwrócić sytuację? Zamiast męczyć kandydata na temat tego, co robił (co i tak nie będzie miarodajne, ludzie też się mogą nauczyć mówić to, co ktoś chce usłyszeć), to opowiedzieć mu o tym, co wy robicie, pogadać o architekturze waszego projektu, o rozwiązaniach itp. a potem zapytać kandydata co o tym sądzi i jakie ma przemyślenia albo pytania? Albo pokazywać niezbyt udane kawałki kodu z produkcji i pytać, co tu można zrobić, jak można polepszyć? Czyli potraktować jak potencjalnego kolegę do zespołu, bo przecież na tym to ma polegać.

O tak! Jak najbardziej.

AL
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 2 miesiące
  • Postów:14
0

A nie lepiej odwrócić sytuację? Zamiast męczyć kandydata na temat tego, co robił (co i tak nie będzie miarodajne, ludzie też się mogą nauczyć mówić to, co ktoś chce usłyszeć), to opowiedzieć mu o tym, co wy robicie, pogadać o architekturze waszego projektu, o rozwiązaniach itp. a potem zapytać kandydata co o tym sądzi i jakie ma przemyślenia albo pytania? Albo pokazywać niezbyt udane kawałki kodu z produkcji i pytać, co tu można zrobić, jak można polepszyć? Czyli potraktować jak potencjalnego kolegę do zespołu, bo przecież na tym to ma polegać.

Tak, google podobno ostatnio zaczął kandydatom pokazywać kod do zdebuggowania, zamiast tylko na leetcodzie się opierać, i są zadowoleni z efektów tego podejścia.

CZ
Czasem dają klasę i uzupełniasz, ale to i tak nisza z tego co obserwuję na leetcode discuss/reddicie.
S9
  • Rejestracja:prawie 11 lat
  • Ostatnio:5 minut
  • Postów:123
1

U mnie SOLID i regułki pojawiają się tylko na rozmowie z entry level, czyli osobą poniżej 6 miesięcy doświadczenia. Powyżej tego, odnośnie do SOLIDa, padają dwa pytania: jak byś zasadę pojedynczej odpowiedzialności wytłumaczył juniorowi (Sam nie znam dobrej odpowiedźi) oraz jak w swoich projektach praktycznie wykorzystywali zasadę Open-Closed. Po bloku pytań o dobre praktyki kandydat dostaje zadanie w stylu code review/dyskusji na temat zastanego kodu legacy, który trzeba zmodyfikować, ponieważ "klient będzie mocno rozwijał ten obszar". W 100% osoby, które uciekają z odpowiedźią do regułek lub błyszczą teorią, na tym zadaniu się wykładają. Natomiast mnie nie interesują regułki na rekrutacji, nie ma też idealnych rozwiązań, ani konkretnych odpowiedź które chce usłyszeć, tylko kategorie problemów, z którymi kandydaci się mierzyli w poprzednich projektach. Plus wyczucie, czy gościu nie jest dobry sprzedażowcem tylko spoko kolegą, z którym chciałbym pracować w jednym zespole.

edytowany 1x, ostatnio: sharper_99
Zobacz pozostałe 2 komentarze
S9
@Czitels: @LukeJL Wiekszość devów potrafiła podać praktyczny przykład bez żadnych problemów, głównie rekurtowałem regularów w .NET, akurat na starcie staram się wprowadzać dosyć luźne tematy, dzięki czemu poziom stresu ich nie paraliżuje a pomaga. Po to jest rekurter by wprowadzić odpowiednią atmosferę na rozmowie, w innym wypadku nie jestem w stanie ocenić potencjału danej osoby, gdy stres paraliżuje.
Miang
.NET hehehe a jakby podał przykład czegoś robił z dziedziczeniem w C++ z wielu klas ?;)
CZ
Niech zgadnę, klasa dziedziczy po 8 innych, które dziedziczą po następnych 8 każda i tak kilka razy? :)
Miang
no i tutaj @Czitels właśnie pokazał jak jest traktowany kandydat który maja inną wiedzę/doświadczenie niż rekruter dopuszcza. złośliwościami i sprowadzaniem do absurdu :(
CZ
Co jest według Ciebie absurdem? Taki projekt miałem w pierwszej firmie. Podalem doslowna liczbe dziedziczeń i zagniezdzen, a wszystko dzialalo dzieki "dziedziczeniu wirtualnemu" :D Ludzie tam nie wiedzieli co to 'unordered_map" ale nikt ich nie zwalnial bo jedyni znali projekt.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8397
0
sharper_99 napisał(a):

oraz jak w swoich projektach praktycznie wykorzystywali zasadę Open-Closed.

To więcej miałoby sensu, jakby była to odpowiedź w postaci pisemnej jako zadanie domowe (napisz co najmniej 100 słów o tym, jak w swoim projekcie praktycznie wykorzystywałeś zasadę Open-Closed). Bo jak pada na żywo, to mało czasu jest na przypominanie sobie ciekawych konkretnych przykładów i zastanowienie się, co to znaczy "praktycznie wykorzystywałeś". Open-Closed to jest część zasad pomagających pisanie utrzymywalnego kodu, ale to nie znaczy, że za każdym razem, jak tworzymy klasę wg zasady Open-Closed, to zyskujemy jakiś cudowny bonus. A tak zadane pytanie sugeruje, że pytający chce, żeby pokazać mu jakiś konkretny zysk z konkretnej implementacji, która korzystała z zasady OpenClosed. Czyli znowu - zabawa w głuchy telefon i zgadywanie, jakiej odpowiedzi oczekuje rozmówca i jednoczesne przypominanie sobie kodu, który się pisało i czy pasuje do odpowiedzi. Do takich odpowiedzi trzeba się przygotować i przećwiczyć sobie na pamięć, co mówić ew. improwizować i coś zmyślić, ubarwić.


edytowany 1x, ostatnio: LukeJL
S9
@LukeJL: Zadanie domowe w postaci wpisania prompta w chata gpt :)
LukeJL
@sharper_99: to może inaczej. Zamiast pytać znienacka o jakieś rzeczy, to rekruter mógłby poprosić kandydata o linka do projektu na Githubie i samemu przed rekrutacją się zapoznać z nim, a potem na rekrutacji zapytać np. "zauważyłem, że napisałeś klasę w ten sposób, czemu?". Dzięki temu kandydat mógłby wyjaśnić swoje własne decyzje na konkretnym wiadomym z góry przykladzie, a nie wymyślać na poczekaniu.
S9
To działa w drugą stronę, jeżeli kandydat chce się pochwalić, to zamieszcza linka do "githuba" w cv. Z doświadczenia wiem, że 1% ludzi zazwyczaj ma sensowne projekty na githubie a wiekszość ludzi powyżej 2 lata expa nie podaja żadnego "githuba" w cv..
Miang
naprawdę Wam się wydaje ze rekruter umie ze zrozumieniem cudzy kod oceniać? jak to jest junior oderwany od kompa? ;)
wiewiorek
  • Rejestracja:prawie 17 lat
  • Ostatnio:2 dni
2

Dobra rekrutacja to taka gdzie dostajesz na żywo do zrobienia code review kodu, w którym celowo są popełnione błędy, np. użycie IEnumerable zamiast IQueryable (w przypadku c#).

SA
  • Rejestracja:około 12 lat
  • Ostatnio:około 5 godzin
  • Postów:1426
3
wiewiorek napisał(a):

Dobra rekrutacja to taka gdzie dostajesz na żywo do zrobienia code review kodu, w którym celowo są popełnione błędy, np. użycie IEnumerable zamiast IQueryable (w przypadku c#).

Wg mnie meh, szczególnie, że problemy w kodzie zazwyczaj leżą na dużo wyższym poziomie (niepasujące abstrakcje, overengineering), w ten sposób można sprawdzać wyczulenie na jakieś chamskie Selecty w pętli czy == vs equals. Ale to pasuje do CR, ludzie zazwyczaj przywalają się do stylu czy wcięć bracketów, a to czy kod działa czy nie to drugorzędna kwestia.

Jednym z fajniejszych zadań technicznych jakie robiłem był live debugging, dostałem zdalny dostęp do maszyny na której był VisualStudio i projekt, który nie działał jak należy, celem było znalezienie i poprawa błędu. Wg mnie tego typu zadanie daje wiele możliwości sprawdzenia kandydata - w jaki sposób porusza się po IDE, w jaki sposób myśli, czy wie w ogóle gdzie zacząć, a nawet czy umie breakpointy stawiać, mnie już nie dziwi, że nawet seniorzy potrafią polegać tylko na dupa debugging.

edytowany 1x, ostatnio: Saalin
KE
To jest imo najtrudniejsze w rekrutacji: próbujemy spakować kilka lat potencjalnej współpracy do formy góra dwugodzinnej rozmowy. Nie da się wszystkiego sprawdzić, trzeba wybrać to, co najważniejsze w projekcie. Live debugging wydaje mi się spoko pomysłem, jeśli mówimy o rozwoju/utrzymaniu istniejącego kodu - fajnie.
Mbappe_koksik
  • Rejestracja:2 miesiące
  • Ostatnio:około godziny
  • Postów:63
0

2 zadania z Leetcode Medium do rozwiązania plus rozmowa z frameworkow np. o Apache Kafka

edytowany 1x, ostatnio: Mbappe_koksik
Pyxis
Uczciwie zrobiłbyś to zadanie w 30 minut? https://leetcode.com/problems/number-of-subsequences-that-satisfy-the-given-sum-condition, bo ja po 10 min. zorientowałem się, że wejściowe dane mogą nie być posortowane. A gdzie czas, by obsłużyć jakieś efekty brzegowe?
DC
+ stresik, + ten edytor widzę że nie ma podpowiadania składni więc xd
Mbappe_koksik
@Pyxis: @dbCooper Zrobiłbym bo robię regularnie codziennie Leetcode po pracy myślę że tak od półtorej roku od kiedy koniunktura w IT się pogorszyła
HA
  • Rejestracja:około 6 lat
  • Ostatnio:około 17 godzin
  • Postów:1005
2

To jest imo najtrudniejsze w rekrutacji: próbujemy spakować kilka lat potencjalnej współpracy do formy góra dwugodzinnej rozmowy. Nie da się wszystkiego sprawdzić, trzeba wybrać to, co najważniejsze w projekcie. Live debugging wydaje mi się spoko pomysłem, jeśli mówimy o rozwoju/utrzymaniu istniejącego kodu - fajnie.

Dokładnie to jest sedno problemu. To co (w mojej opinii) jest ważne, to że zadania tak na prawdę (nie są/nie powinny) być celem samym w sobie, tylko powinny być czymś co pozwala na obserwację kandydata i wyciąganie wniosków z jego zachowania, sposobu podchodzenia do problemów itp. Kiedyś w jednym serialu widziałem fajną rekrutację, gdzie chirurgowi w czasie rozmowy rekrutacyjnej kazano jednocześnie wykonać zadanie manualne, z którym sobie nie radził. Na końcu dowiedział się, że zadanie było niewykonalne, a chcieli po prostu zobaczyć jak reaguje w sytuacji stresowej na niepowodzenie i czy umie zachować chłodną głowę. Live debugging zaproponowany przez @Saalin ma trochę więcej sensu niż CR i w sumie ciekawy pomysł, bo sprawdza umiejętności praktyczne. Pewnie jako połowa rozmowy ma sens - całej rozmowy na pewno bym na to nie poświęcił, bo debugowanie to jednak tylko jedna z ważnych umiejętności, natomiast pełna zgoda, że przy okazji od razu widać wiele innych rzeczy jak ogólny exp czy korzystanie z narzędzi. Z drugiej strony w dzisiejszych czasach ludzie używają różnych rzeczy i wystarczy, że ktoś np. używa jakichś ciekawych pluginów w IDE czy standalone narzędzi i już będzie miał problem aby dostosować się do tego co dajemy mu na rozmowie. Niemniej pomysł fajny i ciekawy jako dodatek do rekru.

edytowany 1x, ostatnio: hadwao
SA
Ja proponowałem live debugging, nie @wiewiorek :) Akurat w .NET korzystanie z VisualStudio jest pewnym standardem, poza tym można zawsze dawać wybór - albo środowisko przez RDP albo tu masz projekt na GH, pobierz i odpal lokalnie. To już są szczegóły.
SA
Poza tym w trakcie można też dyskutować na temat kodu, np. ja pamiętam, że jednym z pytań przy okazji debugowania było "a co gdybyśmy chcieli odpalać wiele instancji tej aplikacji". Bardzo elastyczna forma, jak się ma dobrych rozmówców to przyjemna (tak w alternatywie do suchego odpytywania).
HA
Faktycznie - przepraszam za pomyłkę, poprawiłem. Co do IDE i ogólnie pomysłu to się zgadzam, że można na tym budować i myślę, że fajna rekrutacja by z tego wyszła, gdyby się udało w te 2h zrobić sesję z kodem + rozszerzyć o trochę teorii.
Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:minuta
  • Postów:1658
2
hadwao napisał(a):

Nawet jak kandydat nie zostanie zatrudniony na stanowisko to przez X miesięcy taki wpis leży sobie w systemi HR i osoby w firmie, które mają potrzebę "na zasób" zamiast rozpisywać rekrutację mogą przejrzeć osoby, które się przewinęły i ewentualnie odświeżyć kontakt. Sam HR też co jakiś czas wraca do kandydatów, którzy dobrze wypadli w rozmowach, ale np. nie przyjęli oferty i ich co 6-12 miesięcy pinguje, aby odświeżyć kontakt.

a tak, HRówy mają wywalone na niezaznaczenie checkboxa ze pozwalamy na przechowywanie swoich danych i je sobie trzymają niezależnie od tego czy mają zgodę ewentualnego kandydata czy nie

Temat dowolny - zazwyczaj rozmowa o doświadczeniu kandydata. Tu wiele osób powie "przecież to jest w CV". Odpowiem, że robię to bo wielu kandydatów się stresuje i źle wypada w rozmowie. Jak zaczniemy od neutralnego tematu to kandydat ma szansę "wejść w rozmowę" na luzie. Dla mnie też jest istotne co kandydat robił, jakiej skali projekty ogarnial itp

tak, wqrwienie kandydata tym że się nie przeczytało jego cv to jest oczywiście dla dobra tego kandydata ;)
.

podsumowanie

Tutaj daję przestrzeń na zadanie pytań + daję feedback z rozmowy i o nim chwilę dyskutujemy.

Chętnie dowiem się od osób prowadzących rekrutacje jakie są ich patenty, a od osób rekrutowanych jak wg nich powinna wyglądać dobra rekrutacja. Zwróćcie proszę tylko uwagę, że wiele rzeczy, może się wydawać bez sensu (np. te proste pytania), ale maja one uzasadnienie np. w procedurze rekrutacyjnej czy doświadczeniu rekrutujacego na większej próbie przeprowadzonych rozmów.

bo rekrutujący z założenia ma doświadczenie ;)

Czego się spodziewa rekrutujący na rozmowie? Ano takiego zachowania kandydata jak w słynnym cytacie " Podwładny powinien przed obliczem przełożonego mieć wygląd lichy i durnowaty, tak by swoim pojmowaniem istoty sprawy nie peszyć przełożonego"
Myślisz inaczej niż rekrutujący, co z tego że poprawnie - skreślamy.
I potem jest zespół klonów, które podczas dyskusji na temat projektu nie wniosą nic nowego, bo ich zbiorowa wiedza jest wiedzą jednego osobnika tak naprawdę
Dobra rozmowa techniczna to jest rozmowa , nie przesłuchanie, ale trzeba by rekrutującego który chce się czegoś dowiedzieć naprawdę a nie tylko połechtać swoje ego


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
tefu
  • Rejestracja:prawie 2 lata
  • Ostatnio:około 22 godziny
  • Postów:463
2
Miang napisał(a):

Dobra rozmowa techniczna to jest rozmowa , nie przesłuchanie, ale trzeba by rekrutującego który chce się czegoś dowiedzieć naprawdę a nie tylko połechtać swoje ego

W punkt.

DE
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 20 godzin
  • Postów:563
2
Miang napisał(a):

a tak, HRówy mają wywalone na niezaznaczenie checkboxa ze pozwalamy na przechowywanie swoich danych i je sobie trzymają niezależnie od tego czy mają zgodę ewentualnego kandydata czy nie

Zawsze się zastanawiam czy warto to zaznaczać, bo jak źle wypadnę to będę w systemie jako słaby kandydat, a jak nie zaznaczę to chyba mam czysta kartę?

KE
Zażądaj usunięcia twoich danych ze względu na RODO, również z mózgów rekrutujących.
HA
Czy firmy respektują to się nigdy nie dowiesz niestety. Z mojego doświadczenia to małe firmy/kontraktownie to mają w nosie - oni nawet potrafią sobie przekazywać dane osób między sobą aby np. wykluczyć czy nie rekrutujesz się 2x z różnych kanałów. Kontraktownie też przechowują Twoje dane aby np. pobrać prowizję jakbyś się w ciągu roku zatrudnił bezpośrednio do firmy, gdzie wcześniej starałeś się przez nich. Większe firmy natomiast mają procesy wdrożone i faktycznie usuwają, więc po roku można założyć, że nikt tam już Ciebie nie pamięta.
CZ
Nie wysyłać hindusom, ale poza tym to że twoje CV będzie krążyć gdzieś po polskiej agencji to za dużo się nie stanie. Może do Ciebie zadzwonią raz na pół roku.
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)