Właśnie miałem całkiem niezły wywiad telefoniczny (na stanowisko związane z CakePHP, ale nie jest to szczególnie ważne w przypadku pytania). Osoba przeprowadzająca wywiad była pod wrażeniem mojego CV i osobowości. Na koniec jednak poprosił mnie o przesłanie do mnie e-maila z próbką kodu z mojego istniejącego projektu roboczego: „aby sprawdzić, czy nie jesteś potwornym programistą, ha ha!”
Nie martwię się zbytnio, że mój kod nie może stać na własnych nogach, ale jestem raczej programistą pośrednim niż ekspertem. Jakie oczywiste pułapki powinienem upewnić się, że próbka mojego kodu nie wpadnie, na wypadek, gdyby wykluczyli mnie na miejscu? Po drugie, i jest to prawdopodobnie trudniejsza część pytania, na jakie funkcje w przykładowym kodzie będą tak imponujące, że natychmiast sprawią, że będziesz o wiele bardziej przychylnie nastawiony do programisty?
Wszystkie pomysły i sugestie mile widziane!
źródło
Odpowiedzi:
Chciałbym zobaczyć czysty kod :
To znaczy:
i
chyba że jest to jedyna wartość przyrostowa. Nie używaj nonsensownych nazw zmiennych.Chcesz wysłać im coś wystarczająco złożonego, aby było interesujące, ale wystarczająco czyste, aby dobry programista niemal natychmiast zrozumiał, co robi.
Niektóre z powyższych komentarzy wydają się dotyczyć tego, jak łatwo można to sfałszować. * Jeśli chcesz się przed tym zabezpieczyć, prawdopodobnie wyślij krótki opis celu i historii kodu w wiadomości e-mail.
* Przynajmniej jeśli ankieter zapytałby z góry o wcześniejsze projekty, a następnie poprosił cię o próbkę z tego projektu i zapytał, co wymagało od ciebie napisania lub jak ewoluował, myślę, że proces byłby dość kłamliwy. Myślę, że większość kandydatów, którzy będą leżeć będą wykazywały problemy w innych dziedzinach, w każdym razie.
źródło
Kiedy szukałem pracy, rozwiązałem wiele pytań konkursowych dotyczących programowania ACM w kilku różnych językach i od tego czasu wykorzystuję je do próbek kodu. Myślę, że stworzyli dobre przykłady kodu, ponieważ:
Następnie tworzony kod powinien być przejrzysty, spójny, łatwy do odczytania i zrozumiały.
I wreszcie:
źródło
źródło
Cóż, gdybym przeprowadzał z tobą wywiad, chciałbym zobaczyć twój kod.
Czystość jest dobra, rozwiązywanie problemów jest dobre, ale prawdziwy kod jest lepszy. Dobry programista wie, kiedy został oszukany przez innego programistę, więc pewność siebie może spaść.
Czytanie kodu innej osoby jest jak
taniec podczasuprawiania seksu: wiesz, kiedy jest to prawdziwa rzecz, a jeśli druga osoba ją oszuka, w końcu nastąpi katastrofa. (właśnie zdałem sobie sprawę, że prawdziwi frajerzy nie umieją tańczyć)Zaufaj sobie i swoim umiejętnościom kodowania . Chyba że naprawdę znasz swojego ankietera, nie możesz przewidzieć, czego on oczekuje od twojego stylu / umiejętności kodowania.
źródło
Uważaj również, aby NIE był to kod twojego obecnego pracodawcy (są jego właścicielami, których nie posiadasz, i gwarantuję, że nie spodoba ci się to, że je udostępniasz). Weź coś, z czego jesteś dumny i przerób to na własną rękę, aby nie było specyficzne dla pracodawcy (pozbyć się odniesień do tabel baz danych lub nazw serwerów itp.). Cokolwiek robisz, nie przesyłaj kodu, który zawiera błędy lub jest słabą techniką dla tego typu kodu (prawdopodobnie odrzuciłbym osobę, która przesłała kursor, gdy operacja na zestawie byłaby prostsza i działałaby lepiej podczas przeglądania kodu SQL. Istnieją podobne techniki dla innych języków, które są w stanie rozwiązać jeden stosunkowo rzadki problem, którego można użyć w przypadku innych, bardziej powszechnych problemów, ale nie są najlepszym wyborem dla tych innych problemów. Czy to zdanie miało sens?)
źródło
Dodałbym drugi post z Renesis na temat czystego kodu, ale dodałbym do listy dostarczającej wysokiej jakości i dobrze udokumentowane testy jednostkowe do przesłanego kodu. Dobry programista powinien pisać testy jednostkowe dla swojego kodu.
źródło
Według jednej opinii osoby, która prosi o próbki kodu podczas oceny kandydatów, istnieje kilka funkcji wysokiego poziomu (treść kodu) i kilka funkcji niskiego poziomu (struktura kodu). Funkcje wysokiego poziomu:
Aspekty niskiego poziomu są prostsze:
Dla dobrego kandydata oczekuję, że próbka będzie: A) Kuloodporna, mała próbka lub B) Dobra część większego interesującego projektu (np. Moduł z osobistego repozytorium Github). Oczekuję, że będą to projekty osobiste lub akademickie. Jeśli wyślą jeden z płatnego projektu, spodziewam się, że otrzymali pozwolenie na jego użycie. Jeśli nie dostanę tej notatki, odetnę ich od kandydatów (słaby kandydat) lub zapytam o to podczas rozmowy kwalifikacyjnej (silny kandydat). Brak pozwolenia byłby wielką czerwoną flagą (prawdopodobnie nie do pokonania). Dla zaawansowanego kandydata spodziewam się wyłączenia odpowiedzialności, stwierdzając, że niektóre z ich najlepszych próbek źródłowych nie mogą zostać pokazane, ponieważ zostało to wykonane w ramach ich pracy. Spodziewam się jednak, że będą dumni z tego, dlaczego są dumni z tego nieukrywalnego projektu i jak kochają go jak dziecko.
Wreszcie, o ile niektórzy twierdzą, że „Och, ktoś może po prostu pobrać próbkę kodu z Internetu”, kontrargumentem jest to, że większość ludzi, którzy nie rozumieją kodu dobrej jakości produkcji, również go nie rozumie, kiedy go widzi. . Poza tym zawsze można Google wyróżnić linię do sprawdzenia kodu. Ponadto, w najlepszym wypadku, kradzież kodu spowoduje, że kandydat zostanie zaproszony na rozmowę, w której sami się zawstydzą („Więc dlaczego to zrobiłeś w ten sposób ...?”).
Ostatnia uwaga na temat kodu z wcześniejszego zatrudnienia: Po prostu nie. Z punktu widzenia HR prośba o kod z poprzedniego zatrudnienia jest nieodpowiednia i oznacza czerwoną flagę na temat firmy. Oboje ponosilibyście odpowiedzialność prawną (tj. Moglibyście być pozwani) i pokazuje, że nie mają pojęcia, co robią. Kod sporządzony dla poprzedniego pracodawcy nigdy nie powinien być podawany, chyba że kod jest już publicznie dostępny lub nie masz wyraźnej zgody tego pracodawcy. Co gorsza, w dużej firmie twój bezpośredni szef może nie być w stanie udzielić ci pozwolenia, więc baw się dobrze z działem prawnym w takim przypadku? Jestem pewien, że będą zadowoleni z ujawnienia swojego adresu IP dla wychodzącego pracownika.
źródło