Wpis z mikrobloga

Background:

Około 3 lata temu szukaliśmy do projektu senior developera w C do driverów linuxa między innymi. Zgłosiło się kilku kandydatów - z CV widziałem już na wstępie, że raczej nic z tego. Na koniec wpłynęło do nas CV (Polaka, nie zagraniczniaka) przekozaka z eonem lat doświadczenia w C/C++, sporo projektów opensource i też miał własne. Szybki risercz i faktycznie wszystko w CV to prawda. Kandydat 1 na 10^6.


Tak czy siak decyzja TL i moja, że ryzykujemy bo pali się dupa i potrzebujemy ogarniętych ludzi. Najwyżej będzie kolo miał zakaz komunikacji z klientem, ja będę kontaktpointem. I tu dostałem zadanie: przygotowania rozmowy z nim - a właściwie głównie zadań bo ja tam nie wiele gadam na rozmowach. Wolę patrzeć jak delikwent rozwiązuje konkretne z życia wzięte zadania. Przygotowuję zawsze zadania pod konkretnego kandydata.

Pierwsze dwa biorą pod uwagę: ilość lat doświadczenia, poziom umiejętności, stanowisko - te są dla TL, żeby mógł jakoś gościa ocenić i zaproponować mu stawkę. To są raczej jakieś standardowe pytania i proste zadanka z podstaw języka.

Ostatnie trzecie zawsze jest to trudniejsze, a właściwie jest tak zrobione, że wg mnie kandydat nie powinien w 100% sobie z nim poradzić. Zadanie jest sformułowane celowo mało precyzyjnie, żeby zobaczyć jakie wątplikości i pytania będzie miał kandydat. Przy rozwiązywaniu zadania można zadawać pytania, korzystać ze wszystkiego co kandydat uważa, że mu się przyda np internetu.
Jak ktoś poradzi sobie w 50% to już skaczę pod sufit z radości że będę miał ogarniętego kolesia w zespole.

I teraz samo zadanie:

w dowolnie wybranym przez siebie języku programowania napisz program który:


Koleś rozpykał to zadanie kodując program w C (na żywo przed nami) od ziobra w prawie 100% w 15minut mając dostęp tylko do linuxowego man'a. Oczywiście były tam jakieś niedociągnięcia i trzeba było mu parę razy lekko pomagać bo się zestresował i zaciął na jakichś błahostkach, ale nie o to chodziło, żeby wytykać wszystkie cornercasey. Szczęka opadła TLowi. Ja siedziałem z kamienną twarzą kisnąc w środku ze szczęścia, że w reszcie będę miał kogoś od kogo to może ja czegoś się nauczę.

A teraz ostatni akt: koleś dostał popozycję, na którą się zgodził, ale ostatecznie, z powodów niezależnych finalizacja kontraktu z klientem się przeciągała. Po ok dwóch tygodniach gdzie się dopytywał co parę dni kiedy będzie zaczynał zwyzywał w mailu TL i wszystkich w naszej firmie od debili i kłamców.

Kurtyna!

A ty w ile czasu byś ropykał to zadanie na rozmowie? W komentarzu podziel się rozwiązaniem w swoim języku programowania i ile ci to zajęło. (σ ͜ʖσ)

#jezykc #cpp #cplusplus #programista15 #programista25k #rozmowakwalifikacyjna
  • 10
@BeginEnd: Proszę:

perl -MFile::Slurp -le'$dir="."; $,="\n"; print sort { read_file($a) cmp read_file($b) } glob("$dir/*.txt");'
Jeżeli ma być bez używania zewnętrznych bibliotek, to:

perl -le'$dir="."; sub r { open($h,"<",shift); return <$h>; } $,="\n"; print sort { r($a) cmp r($b) } glob("$dir/*.txt");'
Wiem, że brzydko, bez kontroli błędów, nie akceptuje parametru (bo to jednolinijkowiec) itd. Ale działa ¯\_(ツ)_/¯
@Nieszkodnik: To nie jest zarzutka. Chciałem się po prostu fajną historią podzielić bo kozacy na rekrutacji nie często się zdarzają.

@jalop: Nie moja decyzja. Ludzi z takimi skilami nie ma na rynku. Ja bym go wziął i nawet na ławkę posadził czy do innego projektu dał.

@314159: @cochese: Wszystko w tym zadaniu ma na celu sprawdzić czy człowiek jest na stanowisko senior dev C. Jak kandydujesz na stanowisko
@BeginEnd: "a czemu nie w c?" jest dość prostym pytaniem. bo po co? raczej tego typu rzeczy to narzędzia, które odpala się raz na ileś, więc nie ma potrzeby na nie wiadomo jaki performance, a napisanie i utrzymanie tych 3 linijek w kodzie to żadna robota. poza tym to, że aplikuję na c, bo umiem c, nie oznacza, że wszystko ma być przysłowiowym gwoździem. imo umiejętność doboru narzędzia (w tym wypadku
@BeginEnd: kiedyś też pracowałem z takim gościem, świetny technicznie, ale charakter, powiedzmy trudny. Mało kto z nim chciał pracować, bo jak to mówią - do tanga trzeba dwojga. Jeśli ma się kogoś takiego, to tak się ustawia mu zadania by kontakty ograniczyć do minimum, przygotować mu pracę i korzystać. Ja nie miałem problemu z pracą z nim, bo do tego też potrzeba pewnych umiejętności - empatii, wyczucia na co można sobie