Myślę, że nasza firma może tworzyć wyzwania mające na celu znalezienie kandydatów na inżynierów oprogramowania, którzy są:
- Dobry w rozwiązywaniu problemów, a nie w zachwycaniu rekrutów.
- Bardziej prawdopodobne jest, że boją się przyjść do nas na targach pracy.
- Bardziej prawdopodobne jest, że nie zostaną w pełni wykorzystane w obecnej pracy programistycznej, ale są zbyt introwertyczni, aby cokolwiek z tym zrobić.
Na przykład zobacz ten artykuł, w którym omawia Facebook ukrywanie adresu e-mail na obrazie za pomocą Piet .
Po prostu nie mogę znaleźć żadnych badań ani twardych danych na temat tego, czy to faktycznie działa, czy nie.
Odpowiedzi:
Jak każde narzędzie, mogą być niezwykle pomocne lub bardzo niebezpieczne. Wiertarka znacznie ułatwi ci życie - dopóki nie przekopiesz górnej części dłoni i nie wylądujesz w pogotowiu. To samo dotyczy wyzwań programistycznych w rekrutacji.
Dobro : może to być skuteczny sposób na wykrycie kogoś, kto na papierze może nie być aż tak przekonujący jako programista. Ten, który ma dyplom z czegoś, co ma niewiele wspólnego z tym, co ludzie zwykle uważają za dziedziny związane z „programowaniem” - biologia, nauki polityczne, historia sztuki ...
Jeśli przejdą przez twoje wyzwania, to świetnie. Nauczyli się jakoś programować i najwyraźniej utknęło. Jeśli utkną w martwym punkcie, ich zastosowanie może być po prostu czymś, co przeszło przez HR.
Złe : źle napisane wyzwanie programistyczne nie ocenia umiejętności programowania . Sprawdza rozwiązaniu zagadki za pomocą programowania umiejętności . Problem polega na tym, że później jest dwa zmienne pytanie - czy jesteś dobry w rozwiązywaniu łamigłówek i czy potrafisz rozwiązywać zagadki za pomocą kodu. Można mieć doskonale utalentowanego programistę, który kompletnie zawodzi w rozwiązywaniu zagadek.
Większość problemów programistycznych, które widziałem, również nie udaje się wykryć ludzi, którzy są blisko tego, czego chcesz, w zależności od tego, jak to napisano.
Są sposoby na złagodzenie obu z nich. W tym drugim przypadku rozważę zaakceptowanie „częściowego zaliczenia” w postaci rozwiązań, które wydają się nie do końca dostępne, „Oto jak bym to rozwiązał ...” itp., Jeśli naprawdę szukasz problemu solwery. W końcu bardzo niewiele osób koduje samotnie, a jeśli ich odpowiedź byłaby słuszna, gdyby mogli zapytać starszego kolegi „Hej Jim, czy znasz dobry sposób na wdrożenie X?”, To może być ktoś, kogo chcesz Twój zespół.
Ten pierwszy jest nieco trudniejszy, ponieważ spoczywa na nim ciężar. Wybierz puzzle / problemy / wyzwania, które mają znaczenie. Jeśli nikt w twojej grupie nigdy nie spotkał się z czymkolwiek, nawet w części przypominającym problem Traveling Salesman, nie rób sprytnych pomysłów na Traveling Salesman. W ten sposób, jeśli nie potrafią rozwiązać problemu polegającego na „rozwiązaniu problemu i zakodowaniu go”, to przynajmniej nie udaje im się coś, co rzeczywiście się pojawi, zamiast jakiejś arbitralnej sprytności, którą zespół spunął podczas lunchu.
źródło
Bardzo efektywny.
... o ile proces rekrutacji nie zawiera wyłącznie problemów programistycznych. A ja nienawidzę robić niepokoić i ocenie technicznej każdej rozmowie, to ma działać jako prosty miernik do odfiltrowania idiotów. A odfiltrowywanie idiotów stanowi sedno procesu rekrutacji, dzięki czemu możesz poświęcić więcej czasu tym, którzy nadają się do tej roli.
Podczas wywiadu uważam za bardzo ważne, aby zobaczyć, co ludzie mówią pod presją. Jeśli są skłonni wypluć kilka rażących bzdur, łatwo je zidentyfikować i będę wiedział, że ta osoba nie jest warta mojego czasu.
To nie jest złe. Jeśli twój potencjalny kandydat nie chce się założyć, że warto go tam zatrudnić, to czy naprawdę chcesz go zrekrutować?
źródło
Zakładam, że chcesz, aby ktoś pracował jako część zespołu - jako taki lepszy programista to osoba, która lepiej współpracuje z istniejącymi członkami zespołu. Chcesz zebrać grupę ludzi, którzy mogą skutecznie komunikować się ze sobą, którzy faktycznie dobrze się ze sobą dogadują (nie muszą być przyjaciółmi, ale potrzebują dobrego porozumienia i szacunku), którzy są gotowi się zgodzić i stosują wspólne standardy rozwoju (kod i proces), którzy chętnie pomagają swoim kolegom, gdy mają do czynienia z nowym problemem lub mają blokadę umysłową (teoria czterech oczu). Musisz także znaleźć mieszankę typów osobowości, więc jeśli masz zespół introwertyków, którzy rzadko rozmawiają, wówczas zaangażowanie bardziej rozmownego członka zespołu może znacznie poprawić dynamikę zespołu, co zwiększy jego produktywność. Z drugiej strony,
Po tym, jak dopasujesz osobę do tego miksu, zastanów się nad umiejętnościami technicznymi. Te też muszą się uzupełniać. Każdy ma inne obszary, w których są silni, inni są w porządku, a niektórzy nie mają pojęcia. Musisz więc zebrać zestaw mocnych stron odpowiednich dla danego projektu. Pamiętaj, że koder pośredni, który dobrze współpracuje z dobrym koderem, zwiększy poziom swojej pracy przez silniejszą osobę. Słabym ogniwem w łańcuchu są relacje, a nie umiejętności (pod warunkiem, że umiejętność należy do zespołu)
Powodzenia w łączeniu tego.
źródło