Chociaż jest to ogólnie problem, myślę, że problem nie istnieje z powodu konfiguracji.
Wnioskodawca przesłał ci kod źródłowy. Jak to się stało?
Oczywiście są tylko trzy możliwości:
- Powierzyłeś kandydatowi zadanie rozwiązania konkretnego (dobrze zdefiniowanego) problemu w celu oceny jego umiejętności.
- Skarżący chce pochwalić się czymś fajnym, co napisał.
- Skarżący jest palantem, szpiegiem lub inną złośliwą osobą i nie jest faktycznie zainteresowany zatrudnieniem. Ma tylko nadzieję, że jesteś na tyle głupi, by uruchomić jego kod.
Około 2) i 3)
Głównym ryzykiem jest rozróżnienie między 2) a 3). Szanse są duże, że jeśli cokolwiek pisał to warto przyjrzeć , to jest coś, co można albo dostać kodu źródłowego w Internecie (z „neutralnego” źródła), a może nawet znać już, czy jest to coś, co rzeczywiście don nie chcę patrzeć, ponieważ naruszyłbyś własność intelektualną konkurenta (byłego pracodawcy). To ostatnie oznaczałoby, że i tak nie chciałbyś zatrudnić tej osoby.
Jeśli możesz uzyskać źródło online, zrób to. Jeśli możesz zweryfikować udział wnioskodawcy w znanym oprogramowaniu (w tym oprogramowaniu chronionym prawem autorskim) według jego nazwiska gdzieś w napisach, zrób to.
W każdym innym przypadku po prostu zignoruj to, co ci wysłał. To nie jest warte patrzenia, nielegalne lub wysokiego ryzyka.
Około 1)
Skarżący wysłał ci coś, ponieważ powierzyłeś mu zadanie. Jeśli masz jakieś kompetencje (które, jak zakładam, masz!), To w przypadku typowego zadania programistycznego (... które sam wybrałeś!) Będziesz w stanie stwierdzić, czy jest to prawdopodobne rozwiązanie, które wygląda tak, jakby mogło zadziałać patrząc na kod źródłowy przez mniej niż 30 sekund (bardziej prawdopodobne 10 sekund).
Jeśli nie możesz powiedzieć, że program prawdopodobnie zadziała (lub co w ogóle robi) w ciągu 30 sekund, ten, który napisał go, nie jest osobą, którą chcesz zatrudnić, zatrzymaj się. Chcesz ludzi, którzy piszą kod, który inni ludzie mogą zrozumieć i zachować. Nie chcesz kogoś, kto próbuje się na ciebie sprytnie, ani kogoś, kto regularnie wygrywa zaciemniony konkurs C. Nie ma nawet znaczenia, czy program działa. Gdy tylko inna osoba nie zrozumie kodu, nigdy nie „działa”.
Jeśli program wygląda tak, jakby prawdopodobnie działał, ale znajdziesz coś, co wygląda „dziwnie” (powiedzmy, sekwencje specjalne Unicode Java, dosłowne ciągi znaków C ++, rzeczy, które wyglądają jak trójwymiarowe, cokolwiek), traktuj to zadanie jako „niepowodzenie”, przesuń do następnego wnioskodawcy. Nie jest konieczne dołączanie czegokolwiek podobnego do 99% wszystkich programów (i oczywiście nie w twoim zadaniu - mam nadzieję). Jeśli więc znajdziesz coś „dziwnego”, kandydat nie jest kimś, kogo chciałbyś zatrudnić.
Jeśli kod przejdzie tę pierwszą segregację, możesz poświęcić kolejne 2-3 minuty na dokładniejsze jej przeanalizowanie. Jeśli nadal jesteś zadowolony z tego, co zobaczysz później, możesz uruchomić go przez analizator statyczny i skompilować na maszynie wirtualnej na wysokim poziomie ostrzegania.
Powinno to wywołać problemy, które mogłeś przeoczyć podczas czytania źródła (takie jak wywołanie niezdefiniowanego zachowania lub zawężenie konwersji).
Kompilacja pokaże przede wszystkim, czy kandydat ma niezbędną staranność i dbałość o szczegóły, a nie tyle, czy ma umiejętności programowania. Podobnie jak w przypadku poprawnego wpisania nazwy pracodawcy w aplikacji i sprawdzania pisowni CV przed jej przekazaniem, najlepszą praktyką jest upewnienie się, że każdy przekazany kod źródłowy kompiluje się bez błędów (i najlepiej bez ostrzeżeń). Jeśli ktoś tego nie zrobi, nie chcesz go zatrudnić.
Ryzyko wystąpienia złych rzeczy w tym momencie (wykorzystanie kompilatora i wyłamanie się z maszyny wirtualnej) jest znikome, biorąc pod uwagę, jak już wykonałeś kontrolę wiarygodności kodu. Nie zdarzy się.