EDYTOWAĆ
Po długim zastanowieniu i autorefleksji na ten temat zdałem sobie sprawę, że większość zagadnień poruszonych w tym pytaniu dotyczy wyłącznie osobistej, a nie zawodowej perspektywy. Dlatego moderatorzy odłożyli to pytanie ze względu na bardzo osobisty, subiektywny charakter problemu, o którym starałem się mówić. Myślałem o przeredagowaniu pytania, ale tak naprawdę nie mogłem znaleźć sposobu na wyrażenie tego w bardziej obiektywny sposób, aby mógł być przedmiotem dyskusji, w której odpowiedzi mogą być poparte dowodami lub referencjami.
Ze względu na tych, którzy są nadal zainteresowani, staram się przedstawić streszczenie dyskusji wynikającej z tego pytania:
- 4-godzinny wywiad wstępny, test programowania poza siedzibą nie jest zwykle, ale
- wiele osób zwróciło uwagę, że w przypadku niektórych firm przeprowadzacie wywiady znacznie dłużej niż wszystkie razem
- to jest nasza osobista decyzja, czy przeprowadzimy test, czy nie, i możemy to ocenić na podstawie naszych okoliczności i postrzeganych korzyści płynących z zatrudnienia w firmie
- wszystkie firmy są różne, podobnie jak ludzie, i może być całkowicie uzasadnione, aby firma zastosowała dłuższy test wstępny poza miejscem rozmowy, jeśli jest to zgodne z ich potrzebami lub okolicznościami
Chciałem, aby moje pierwotne pytanie dotyczyło tego, jak rozsądnie oczekiwać 4 godziny ode mnie i jak etycznie wydać problem, aby rozwiązanie (nie kod, ale projekt) mogło zostać wykorzystane w firmie. Jak teraz widzę, oba te pytania można (najlepiej) zbadać w dyskusji na forum, zamiast używać narzędzia społeczności typu pytanie-odpowiedź, takiego jak stackexchange.
Jednak wszystkie twoje odpowiedzi były dla mnie cenne i dziękuję za podzielenie się.
ORYGINALNY POCZTA
Przeprowadzam rozmowę kwalifikacyjną na kilka stanowisk, a większość z nich obejmuje fazę wstępnej kontroli, w której muszę przesłać test na kodowanie, zanim odbędzie się rozmowa telefoniczna lub rozmowa na miejscu. Przyzwyczaiłem się do tego pomysłu i uważam za rozsądne, że firmy oczekują, że to zrobię, aby mogły sprawdzić, jaki rodzaj pracy mogę wykonać samodzielnie.
Zasadniczo z mojego doświadczenia wynika, że tego rodzaju ćwiczenia kodujące to w większości małe zadania programistyczne. Zrób logikę, może zaimplementuj mały algorytm, otwórz plik i odczytaj / zapisz dane, i tak dalej. Nawet najprostsze zadanie można zrealizować za pomocą dobrego oddzielenia logiki, testowalnych komponentów itp., Aby zobaczyć, jak kandydat koduje, i ogólnie, jak dobrze jest przygotowany do rodzaju pracy, którą firma chce wypełnić.
Ostatnio natknąłem się na firmę, która wysłała mi test kodowania z opisem całej strony z całego ćwiczenia, prosząc mnie o rozwiązanie rzeczywistego problemu ich działalności (nie chcę mówić o szczegółach w celu ochrony firmy, ale test było mniej więcej o tym, co robią). Opisali dość skomplikowany system do wdrożenia, obejmowali rzeczywiste dane, a na koniec doszli do wniosku, że test kodowania nie powinien zająć więcej niż 4 godziny .
Czy rozsądne jest, aby firma spodziewała się, że spędzę 4 godziny pracując nad swoim imitacją w wolnym czasie, nawet zanim się ze mną przywitają? (osoba rekrutująca wysłała mi test kodowania)
Nie zrozum mnie źle, jestem zmotywowany do znalezienia nowej pracy i nowych wyzwań, ale większość firm oczekuje, że spędzę maksymalnie 1-2 godziny na takim zadaniu, a takie zadania zawsze były o wiele mniej skomplikowane.
Jako wniosek w tej firmie wymyśliłem, że:
1) Moja motywacja nie jest dobra i prawdopodobnie szukają kogoś innego
2) Nie szanują swoich przyszłych pracowników, którzy oczekują tak długich testów kodowania nawet bez przywitania się z nimi
3) Chcą po prostu ujawnić jeden z problemów, nad którymi pracują, i sprawdzić, czy istnieje entuzjastyczny młody facet, który rozwiązałby je za darmo (znowu, nie zrozumcie mnie źle, nie jestem teoretykiem spisku, ale mam słyszałem takie historie ...)
Jak myślisz, ile uzasadnione jest, aby firma spodziewała się, że kandydaci spędzą czas na testach kodowania fikcyjnego, nie rozmawiając z nimi? Jakie jest Twoje ogólne doświadczenie?
Odpowiedzi:
Pozwólcie mi na chwilę zająć się stroną firmy, ponieważ inne odpowiedzi jeszcze nie były. Stworzenie użytecznej bazy kodu z konglomeracji 4-godzinnych testów testowych kodowania od osób, których kwalifikacje są całkowicie nieznane, byłoby prawie niemożliwe. Utworzenie wystarczająco szczegółowej specyfikacji, sprawdzenie odpowiedzi i zintegrowanie jej z resztą kodu zajęłoby ponad 4 godziny. Nie wspominając o najbardziej przydatnych projektach oprogramowania na poziomie korporacyjnym, które wymagają tysięcy roboczogodzin. Myśl o zbudowaniu firmy poprzez podzielenie jej na 4-godzinne przyrosty z tygodniami czasu realizacji jest szczerze śmieszna.
Podanie rzeczywistego problemu biznesowego jest jednym z najlepszych sposobów ustalenia, czy ktoś będzie szokująco rozwiązywał rzeczywiste problemy biznesowe. Robię to często w wywiadach (chociaż proszę o ogólne zasady projektowania, a nie kod warty 4 godziny) i za każdym razem, gdy jest to problem, który już rozwiązałem. Gdybym tego jeszcze nie rozwiązał, test straciłby prawie całą wartość dowodową.
To, czy warto skorzystać z 4-godzinnego testu, jest osobistą decyzją. Zawsze uczono mnie traktować szukanie pracy w pełnym wymiarze godzin jako pracę na pełny etat. Gdy jesteś bezrobotny lub niedostatecznie zatrudniony i spędzasz 8 godzin dziennie na poszukiwaniu pracy, 4-godzinny test kodowania to nic. Spędziłem znacznie więcej czasu na zadaniach takich jak odświeżanie zardzewiałych języków, pisanie programów portfolio i dostosowywanie CV dla określonych pozycji.
Z drugiej strony niektórzy z najlepszych pracowników są już zatrudnieni zarobkowo i tylko od niechcenia szukają lepszych możliwości. Ludzie w takiej sytuacji raczej nie przejdą rygoru 4-godzinnego testu, chyba że nadarzy się okazja. Jednak to jest problem firmy, nie twój.
Jeśli chodzi o rozeznanie, co to znaczy w stosunku firmy do swoich pracowników, nie sądzę, że można tak naprawdę powiedzieć cokolwiek, poza tym, że prawdopodobnie mają już dość kontaktów z niewykwalifikowanymi kandydatami, do tego stopnia, że są gotowi rzucić niektóre dobre ze złymi.
źródło
Nie, nietypowe , dlaczego rozwiązujesz ich problemy za darmo? (4 godziny)
1 godzina jest typowa dla testu programowania. W przeszłości nasz test programowy składał się z 4 pytań. Pierwsze 3 pytania trwały 1/2 godziny, ostatnie 1/2 godziny. Przekazaliśmy również test istniejącym pracownikom w domu, aby upewnić się, że dotrzymywaliśmy oczekiwanych ram czasowych, a test był uczciwy i odpowiednio dostosowany.
Pierwsze kilka pytań brzmiało „Fizz Buzz”, aby wyeliminować osoby, które nie mogą programować. Stawały się coraz trudniejsze. Ostatnie pytanie było ćwiczeniem rozwiązywania problemów. Zasadniczo próbowaliśmy ograniczyć ilość napisanego kodu do około kilkuset wierszy (łącznie) i nie wymagaliśmy żadnych sprytnych sztuczek. Ocenialiśmy także ludzi pod względem obsługi błędów, stylu, składni, organizacji itp. Pytania nie były związane z naszą działalnością, ale raczej z umiejętnościami i technologią, w której napisano obecną platformę.
Zwykle wspaniali kandydaci ukończyli w krótszym czasie niż przydzielono. Czasami ludzie prosili o dodatkowy czas, który pozwalaliśmy na to ze względu na stres związany z rozwiązywaniem quizu, ale ograniczaliśmy wszystkich do pewnego limitu. Quiz był w obecnym środowisku programistycznym, a ludzie mieli dostęp do Internetu w celu uzyskania informacji. Przekroczyliśmy również oczekiwania quizu dla każdego kandydata.
Kiedyś rozmawialiśmy o włączeniu naszej bazy kodu (świata rzeczywistego) do quizu, ale ostatecznie odrzuciliśmy to ze względu na obawy, że kod został skopiowany / skradziony / itp. (Nasz szef był trochę paranoikiem). Ostatecznie wybraliśmy oddzielną
quiz.sln
maszynę do programowania.Wreszcie stwierdziliśmy, że trudno było wymyślić test, który byłby sprawiedliwy, ale ani zbyt trudny, ani zbyt łatwy. Zawsze pytaliśmy naszych kandydatów o quiz po ich wzięciu i gromadziliśmy ich opinie, aby udoskonalić go dla przyszłych kandydatów.
źródło
Uważam, że testy kodowe w wywiadzie to mnóstwo kłopotów. Nikt nie koduje niczego poza najprostszą rutyną pod presją bez zwykłego środowiska i narzędzi, więc wyniki, które otrzymujesz, są co najmniej wątpliwe.
To, co uważam za naprawdę dobre testy umiejętności programisty, to dać mu kod projektu i poprosić go o jego przejrzenie, działa to naprawdę dobrze, jeśli kod zawiera kilka oczywistych błędów, kilka oczywistych problemów z kodem i kilka wątpliwych praktyk. Dobry programista powie ci wszystko i zaangażuje się w dyskusję, dlaczego niektóre kody nie są „złe”, ale można to zrobić lepiej, aby ułatwić konserwację. Słaby programista znajdzie błąd i przestanie działać.
Każda praca, która wymaga wykonania testu trwającego ponad pół godziny, po prostu nie poświęciła aż tyle czasu na wypracowanie dobrego, ukierunkowanego testu, który zapewnia im więcej niż niejasne wyobrażenie o twoich umiejętnościach. (większość firm ma trudności z poświęceniem czasu na przygotowanie się do rozmowy wstępnej).
Gdybym dostał test tak jak ty, odpowiedziałbym pseudo-kodem. To powinno wystarczyć do wykazania mojej wiedzy na temat kodowania i projektowania, bez konieczności przechodzenia przez wszystkie fazy kompilacji, kompilacji i testowania, które można wykonać w przypadku normalnego projektu pracy.
źródło
Możesz nie mieć 4 godzin, ale ktoś bardziej zainteresowany ich firmą z pewnością to zrobi. Zostałem zasadniczo zatrudniony na podstawie podobnego zadania, które firma poprosiła mnie wcześniej o wykonanie samego zadania. Najwyraźniej pisanie czystego i zrozumiałego kodu, dokładnych przypadków testowych oraz zrozumiałej i spójnej dokumentacji projektowej jest nienormalne. Właściwie to widząc, jak ktoś to robi, zdmuchuje ludzi. W każdym razie wszyscy, z którymi rozmawiałem podczas wywiadu, chwalili mnie za to, co zrobiłem i czułem, że nie muszę nikomu robić wrażenia w wywiadzie, ponieważ już się zdecydowali. Chodziło po prostu o to, że nie dawałem im powodu do odmowy, robiąc coś głupiego.
Chociaż zgadzam się, że 4 godziny to dość duża inwestycja czasowa, oznacza to również, że zadanie jest wystarczająco duże, abyś miał okazję naprawdę pokazać, co potrafisz. Twoja praca bardzo dobrze mówi dużo więcej niż kiedykolwiek w rzeczywistej sytuacji podczas rozmowy kwalifikacyjnej.
Na marginesie: ostatnio próbowałem podobnej rzeczy, ale używając znacznie mniejszego problemu i nie byłem zadowolony z rezultatów. Małe problemy są zbyt trywialne, aby wykazać wystarczającą wiedzę danej osoby. Ponadto trywialne problemy zwykle wymagają od osoby rozpoznania pewnych sztuczek / szczegółów niezbędnych do rozwiązania problemu. Zatem istnieje pewna równowaga między pochłanianiem zbyt dużej ilości czasu osoby a nieużywaniem żadnych rzeczywistych korzyści, ponieważ zadanie jest trywialne. Sądzę, że 4-godzinne zadanie to prawdopodobnie odpowiednia ilość czasu, aby być wystarczająco złożonym, aby kandydaci mogli wykazać się swoimi umiejętnościami i nie trwać tak długo, aby nikt nie zawracał sobie głowy.
źródło
W pewnym momencie wziąłem 6-godzinny test kodowania. Kiedy przystąpiłem do tego testu, miałem dość dużą pewność, że zostanę zatrudniony - chociaż się spełniło, nie byłem aż tak zadowolony z dalszych działań.
Oczywiście posiadanie wielu pracodawców, z których każdy prosi o 4 godziny, jest nadmierne. Osoba, której szukałem w teście, który przeprowadziłem, to mój styl kodowania - zostałem zatrudniony, ponieważ mój był „najbliższy” jego. W tym kontekście spójrz na problem z tej perspektywy: po pierwsze, czy jest to interesujący problem, którego rozwiązanie jest dla ciebie warte w każdym razie? W końcu możesz nauczyć się czegoś cennego.
Po drugie, jeśli potrafisz „zaliczyć” test, czy to znaczy, że jesteś zatrudniony? Jeśli nie jest to dość oczywiste, musisz zdecydować, czy i tak istnieją inne powody.
Po trzecie, mogą oszacować, że zajmuje to „4 godziny”, ale możesz dowiedzieć się inaczej. Czy naprawdę wiedzą, jak długo to powinno potrwać? Najprawdopodobniej odpowiedź brzmi „nie”. Dlatego będą testować ludzi w 4-godzinnych terminach, dopóki nie zdadzą sobie sprawy, że nie zmieści się w ciągu czterech godzin. W takim przypadku marnujesz swój czas. Najlepszym podejściem jest wtedy agresja wobec menedżera ds. Rekrutacji i ustalenie, czy powinieneś przestać o czterech godzinach i dać im to, co masz, czy też kontynuować, dopóki się nie skończy i powiedz im, ile czasu to zajęło. Krótko mówiąc, może to obejmować test postaci, a próba zaakceptowania go na własnych warunkach może ujawnić brak doświadczenia.
źródło