Kawałek kodu na rozmowie o pracę

„Ma Pan jeszcze jakieś pytania?”
„Nie.”
„W takim razie dziękuję za rozmowę, skontaktujemy się z Panem.”

Wyszedłem. Dopiero na zewnątrz pomyślałem: nie poprosili mnie o napisanie kawałka kodu! Egzaminowali mnie przez telefon, pytali czym się różni getattr od getattribute, a kiedy przyszedłem, nie chcieli zobaczyć jak programuję.

Kiedy sam rekrutowałem, byłem w stanie ocenić kandydata w trzydzieści sekund, sadzając go przed komputerem i prosząc o napisanie programu który wypisuje liczby od 1 do 10. Mimo że napisanie takiego programu (razem z otworzeniem edytora) mogło potrwać dłużej niż 30 sekund, z samego ułożenia dłoni na klawiaturze widziałem, jak wygląda połączenie pomiędzy jego mózgiem a komputerem. Każdy kandydat który nie przedstawia pianistycznej biegłości, który musi patrzeć na klawiaturę zamiast na monitor – jest z góry skreślony.

Obsługa klawiatury jest najbardziej podstawową umiejętnością programisty. Wąskie gardło w tym miejscu oznacza obniżoną wydajność. Jeżeli kandydat jest pod każdym innym względem rewelacyjnym, należy go wysłać na kurs maszynopisania.

Drugą kwestię świetnie opisuje jeden z moich ulubionych autorów, Joel Spolsky:

Czy zatrudniłbyś czarnoksiężnika, nie prosząc go o zaprezentowanie przynajmniej kilku magicznych sztuczek? Nie, to chyba oczywiste.

Tak… pytają natomiast, ile chcę zarabiać. Podobno na Zachodzie firmy podają proponowane zarobki już w ogłoszeniach. Firma chyba sama wie lepiej, ile ma pieniędzy zabudżetowanych na pracownika. Jeżeli nie chce powiedzieć, ile to jest, oznacza to że liczy na to że pracownik któremu zależy na pracy, powie bardzo małą kwotę, byle by tylko go przyjęli. Najczęściej też przyjmują takiego właśnie pracownika, co kończy się tym że na miesiąc przed oddaniem projektu zatrudnia się kolejną, tym razem kompetentną osobę, która ma uratować projekt. Wiem to z własnego doświadczenia. Tajność tych negocjacji powoduje ogromne rozpiętości w zarobkach (przy osobach o podobnych kwalifikacjach), co nie może być dobre.

Czy więc następnym razem powinienem…

„Ma Pan jeszcze jakieś pytania?”
„Tak. Dlaczego nie poprosił mnie Pan o napisanie kawałka kodu?”

A może nie powinienem? Takie pytanie jest wtrącaniem się w kompetencje osoby egzaminującej mnie. Może to być odczytane jako bezczelność, lub gorzej. Być może jest to cecha dyskwalifikująca pracownika.

Być może jest to kwestia sposobu powiedzenia tego. Na przykład „Myślałem że podczas rozmowy kwalifikacyjnej zostanę poproszony o napisanie kawałka kodu”. A może nie ma dobrego sposobu zapytania o to. Może powinienem zachować dla siebie myśl, że powinni byli to zrobić?

A Wy, jak uważacie?

Komentarze

  • pc (2006-08-24 17:45:32):

    nie liczy się czas klepania w klawisze, a jakość tworzonego oprogramowania. hindusi są szybcy i tani, zatrudniłbyś ich?

  • Automaciej (2006-08-24 18:02:16):

    @pc: Być może nie wyraziłem tego wystarczająco klarownie, że biegłość w obsłudze klawiatury jest warunkiem koniecznym, ale nie jest warunkiem dostatecznym. Poza tym, nie przejmuj się… tego naprawdę można się nauczyć w kilka dni, wystarczy chcieć.

    Ale odchodzimy od tematu. Robić potencjalnemu pracodawcy uwagę na temat pisania kodu, czy nie?

  • Jajcuś (2006-08-24 18:05:34):

    Chodzi o programowanie w Javie? Bo gdzie indziej jest tak istotna ilość wklepanego kodu na minutę? ;-)
    IMHO podczas programowania najwięcej pracuje głowa, nie klawisze. Nie wierzę, że są ludzie którzy bezbłędny i może jeszcze optymalny kod wymyślają tak szybko jak szybko można go wklepać po kursie maszynopisania. A jeżeli wymyślanie kodu jest dużo wolniejsze od jego wklepywania (ja tak uważam), to czemu zwracać uwagę na to drugie?
    No chyba, że przez "programowanie" rozumie się to, co moi koledzy z podstawówki – przepisywanie setek linii typu ‘10 DATA "aknf…."’ z Bajtka….

  • pc (2006-08-24 18:06:40):

    widocznie nie dla wszystkich jest koniecznym. sam zauwazyles, ze nie miałes nawet okazji zaprezentować swojej biegłości.

  • pc (2006-08-24 18:08:25):

    ja mam na myśli programowanie w javie ;)

  • Automaciej (2006-08-24 18:11:09):

    @Jajcuś: Masz rację, że głowa pracuje więcej. Jednak nie zatrudniłbym kulawego myśliwego, mimo że szukanie śladów zwierzyny może trwać dłużej niż maszerowanie.

    Znów odchodzimy od tematu. Robić potencjalnemu pracodawcy uwagę na temat pisania kawałka kodu, czy nie?

  • D4rky D:

    ja bym nie ryzykowal pytania, ale to bylo nieco nieprofesjonalne z ich strony

  • rzyjontko (2006-08-24 18:46:04):

    Jeśli masz pracować w firmie, którą z góry uznałeś za amatorską, bo nie zapytała Cię o to, albo tamto, to lepiej poszukaj czegoś innego.

    Rozmowy z kandydatami przeprowadza się na ogół w pomieszczeniach reprezentacyjnych, gdzie zwykle nie ma żadnego komputera. Powołujesz się na Joela, ale nie zwróciłeś uwagi, że on sam prosi o pisanie kodu na kartce papieru.

    Jeśli zaś chodzi o plotki na temat "Zachodu", to jak zwykle wystąpię w roli prostującego: jest tak samo jak w Polsce. Wejdź na http://jobpilot.de i sam się przekonaj, że AMD nie podaje zarobków z góry.

    Poza tym dałeś linka do niewłaściwego artykułu - s/73/43, if you know what I mean.

  • rzyjontko (2006-08-24 18:47:36):

    O…czywiście s/43/73. Łatwo się pomylić.

  • Automaciej (2006-08-24 18:57:44):

    @rzyjontko: podałem link do właściwego artykułu, czyli Testu Joela, ze wskazaniem na punkt jedenasty (nie ma tam nic o kartce papieru). Natomiast co do umiejętności posługiwania się klawiaturą, jest to moja osobista opinia, nie Joela, może nie dość wyraźnie oddzieliłem te dwie rzeczy od siebie.
    Firmy nie oceniam wcale tak surowo, każdy się rozwija, ja też…

  • rzyjontko (2006-08-24 19:00:56):

    Sorry, nie zauważyłem wskazania na punkt

    1. W takim razie polecam również 73 - poradnik rekrutującego. Tam jest m.in. o kartce.

  • wb (2006-08-24 19:20:51):

    Ja bym się zapytał, ale ja bywam bezczelnawy. Szczególnie, że byłbym ciekawy jak zareagują na takie pytanie. W końcu miałbym później pracować z tymi ludźmi.

    Ja na swojej ostatniej rozmowie zostałem poproszony napisanie kilku krótkich programów _nakartce. Należy wspomnieć, że rekrutujący byli bardziej zainteresowani tym, co powiem o rozwiązaniu problemu niż nim samym kodem.

    PS. Powodzenia!

  • DarkStar (2006-08-24 21:00:13):

    Ja ostatnio rozwiązywałem testy na papierze (pytania ogólne z inżynierii oprogramowania, później trzy testy tematyczne). Testy rozwiązałem bardzo dobrze, a później okazało się, że chcą mi dać 2/3 kwoty, na którą sam się wyceniłem, w dodatku mniej, niż zarabiam obecnie. To taka duża polska firma informatyczna na C i nie jest to Computerland. :D Ale słynie z zamiłowania do studentów i niskich zarobków, o czym sam się przekonałem. Niestety, stracili mój czas, gdyby przed spotkaniem podali proponowane zarobki, to bym nawet się nie fatygował.

  • DarkStar (2006-08-24 21:04:24):

    Aha - co do Twojego pytania postawionego w notce. Zależy jak podchodziłeś do tej rozmowy. Jeżeli Cię ciśnie i czujesz, że po prostu musisz zmienić pracę, a do tego podoba Ci się oferta tej konkretnej firmy, to lepiej nie pytać. Jeżeli nie musisz koniecznie tam pracować, to można zadać to pytanie. Ja bym potrafił.

  • DarkStar (2006-08-24 21:05:17):

    Spamu wątek trzeci - osobiście oceniam firmy w skali Joela. Posługuję się nią podczas rozmów. :D Taka ciekawostka.

  • pc (2006-08-25 11:01:02):

    @darkstar: zgadzam się, jakość oprogramowania w firmie na C. jest wprost proporcjonalna do zarobków.
    prezes C. oczywiście narzeka, ze w polsce jest za mało studentów informatyki….

  • Crash (2006-08-25 14:31:58):

    No ja na Twoim miejscu zapytałbym o możliwość zaprezentowania swoich umiejętności, ale to dlatego, że ja wolę działać, niż gadać. Niech sami zobaczą, ile jesteś wart. A pytanie o zarobki jest co najmniej niesmaczne.

  • hubert (2006-08-25 14:42:44):

    Jeśli uważasz że powinni Cię poprosić o napisanie kodu, lub przynajmniej masz wątpliwości, to zdecydowanie powinieneś zapytać. Pytanie nie jest ani bezczelne, ani obraźliwe. Jeśli miałoby być ono powodem odrzucenia Twojej oferty, to najprawdopodobniej Ty również nie chciałbyś w takiej firmie pracować. Może jednak istnieje jakiś sensowny powód dla którego Cię o to nie poproszono - wtedy dowiesz się przy okazji czegoś ciekawego.

    Co do obsługi klawiatury mam podobne zdanie jak Ty. I nie chodzi wcale o szybkość klepania kodu tylko umiejętność posługiwania się jednym z podstawowych narzędzi pracy. Jeśli komuś nie chciało się zainwestować trochę czasu w swój warsztat, to niech ktoś inny (jako pracodawca) martwi się tym, w czego jeszcze temu komuś nie będzie się chciało.

    @pc: Chodzą słuchy, że Hindusi są nie tylko szybcy i tani ale też bystrzy i wykształceni. Jeśli to prawda to zdecydowanie chciałbym ich zatrudniać.

  • pc (2006-08-25 14:52:28):

    nie miałem przyjemności z nimi pracować, ale z opowieści znajomego programisty z duzej firmy zagranicą, wiem ze b.cięzko zrozumiec "ich angielski", a poza tym w jakości ustępują polakom.
    hindus zrobi szybko, ale bedzie pozniej 2 razy poprawial.

    that’s, what i heard ;).

  • lemiel (2006-08-26 23:13:48):

    Zapytać. Potem już może nie być okazji. Nawet jak będziesz tam pracował. A kolejna informacja o sposobie oceniania potencjalnego kandydata na pracownika czyli Ciebie oczywiście jak najbardziej Ci się przyda.

    Uważasz, że bezwzrokowego pisania na klawiaturze można nauczyć się w tydzień?

  • Crash (2006-08-27 18:36:20):

    lemiel: można. Tylko trzeba bardzo chcieć.

  • antoszka (2006-08-28 20:42:52):

    @lemiel:

    > Uważasz, że bezwzrokowego pisania na klawiaturze można nauczyć się w tydzień?

    Uważam, że jeśli w tydzień, to nawet nie trzeba się zbytnio wysilać. Odrobina dyscypliny, sensowny program do nauki i tyle. Większość osób z którymi mamy do czynienia w opisywanych tu sytuacjach doskonale zna klawiaturę, tylko nie wysiliło się, żeby sobie tę, za przeproszeniem, dyscyplinę nałożyć. To jest naprawdę proste.

  • lemiel (2006-08-29 01:48:30):

    No to ciekawe, spróbuję. Zobaczymy co z tego wyjdzie.
    Z tego co pamiętam, to wszystkie pomoce do tych programów do nauki bezwzrokowego pisania i inne źródła mówią o 6 miesiącach treningu, i tym, że trzeba też przy okazji wyeliminować przyzwyczajenia z pisania wzrokowego.

  • mama T (2006-09-05 19:40:16):

    Co do negocjowania pieniędzy: pamietasz, opowiadałes mi kiedys o zespole negocjujacym honorarium za Sylwestra. To tak mi sie przypomniało, żeby Ci przypomnieć :-)

  • anonim (2007-06-03 03:21:05):

    Ja przez telefon ustaliłem, że przyniosę próbki swojego kodu, ale pracodawcy tak się spodobała inteligentna technologiczna rozmowa ze mną, że uznał, że już nie musi spoglądać w kod. Nie wiem, czy to by coś zmieniło. Po 6 miesiącach zostałem zwolniony mniej więcej za tempo moich prac nad „mercedesami”, kiedy klienci płacili firmie za „maluchy”.

  • DrLex (2007-07-18 08:25:43):

    Wróćmy jednakże to kwestii podawania widełek.
    Rzeczywiście w zachodnich ogłoszeniach jest to norma. Natomiast u nas mimo tego, że i tak widełki są sztywne w duży firmach ich się nie podaje. Prawie w każdej dużej polskiej firmie stanowisko specjalista ma widełki prawie takie same.

    Czy to wynika z jakiegoś kompleksu polskich firm; walki z konkurencją na każdym froncie; chęcią złapania do pracy frajerów pracujących za darmo (I will code HTML for food).

    A może po prostu kwestia, że w Polsce temat zarobków jest tematem tabu. Nawet wśród znajomych się o tym nie rozmawia, żeby nie popsuć sobie przyjaźni z powodu powstałej zawiści i innych dziwnych akcji.

    Jeżeli w takim razie firmy nie chcą podawać swoich widełek, to dobrym rozwiązaniem byłoby przynajmniej wysyłanie CV ze swoimi oczekiwaniami finansowymi.