Szukam pracy i aplikowałem na wiele stanowisk. Odpowiedział jeden pracodawca. Miałem dość długi wywiad telefoniczny (być może ponad godzinę), a następnie przygotowali mnie do testu programisty. Powiedziano mi, że szacuje się, że test potrwa od 6 do 8 godzin i że pod warunkiem, że wyniki zostaną zatwierdzone, otrzymam wynagrodzenie za moją pracę.
Dało mi to chwilę przerwy, ale starałem się. Test programisty odbył się na maszynie wirtualnej dostępnej za pośrednictwem RDP . Zadanie polegało na zaimplementowaniu strony wyszukiwania w projekcie internetowym, który żąda danych z serwera, wyświetla je na ekranie w tabeli, ma dość skomplikowany schemat filtrowania wyszukiwania (istnieje około 15 statusów i przy wysyłaniu wyszukiwania na serwer ty może wyszukiwać według tych statusów) oprócz wyszukiwania według ciągu / pola. Ponadto chcą, aby ikony SVG zmieniały kolor niektórych wartości danych, a niektóre dane reprezentowały inaczej niż ich struktura w bazie danych.
Krótko mówiąc, zajęło to dużo więcej niż 6-8 godzin. W dużej mierze było to spowodowane bardzo słabą maszyną wirtualną, na której działałem (Visual Studio 2013 załadowało 10 minut, a kolejne 15 minut otworzyło gigantyczne rozwiązanie o pojemności 3 GB).
Powiedziano mi, że po zakończeniu testu powinienem zatwierdzić zmiany w kontroli źródła ... Hmm, OK. Postępowałem zgodnie ze wskazówkami. Po zatwierdzeniu zmian otrzymałem wiadomość e-mail z odpowiedzią. Pliki SVG nie były odpowiednio zabarwione, w tym przypadku był błąd, czasami pojawiał się problem z tą inną rzeczą, której nigdy nie doświadczyłem itp. Więc mam teraz 13-14 godzin na to i muszę robić poprawki błędów. Robię je, a pracodawca wraca z kolejnymi żądaniami naprawy błędów.
Najwyraźniej cała moja praca dotyczy aplikacji produkcyjnej. Zauważyłem kilka anomalii w kodzie, w których wyglądało to tak, jakby inne kodowały wszystkie funkcje, ale niczego nie dotknęły.
Czy jestem po prostu wykorzystywany do taniej siły roboczej? Nawet jeśli zapłacą mi obiecane 50 dolarów za godzinę przez 6 godzin, poświęciłem na to teraz około 18 godzin. Jeśli naprawię błędy, które ciągle wymyślają, będę pracował co najmniej 16 godzin za darmo.
Podjąłem szereg testów programistycznych, ale nigdy nie wziąłem takiego, w którym pracowałem nad kodem przeznaczonym do produkcji. Nigdy nie podjąłem testu, w którym wdrożyłem funkcję, która była w przygotowaniu, i nigdy nie wziąłem takiej, która zajęła 4 rundy i łącznie ponad 20 godzin. Mam wrażenie, że używają testu programisty, by wypróbować niektóre funkcje na taniej.
Czy mam złe wrażenie? Czy ten protokół testowania jest odpowiedni?
Odpowiedzi:
Nigdy nie wziąłbym udziału w tego rodzaju teście kodu. Podjąłem wiele testów kodu i wykonałem wiele projektów kodu. Z pewnością nie pod żadnym pozorem nie sprawdzałbym kodu w czyimś repozytorium. Jeśli nie wiedzą, co powinni wiedzieć po 4-godzinnej próbce z niewielką korektą błędu w sesji programowania pary, nigdy się nie dowiedzą.
Przechodząc do testu, powinieneś wiedzieć i wyjaśnić kilka rzeczy z góry:
Firma, z którą przeprowadzasz wywiad, również udziela ci wywiadu. Jeśli tak traktują osobę, z którą przeprowadzają wywiady, czy jest to firma, dla której chcesz pracować? Rozumiem, że często ludzie potrzebują pracy i często ta potrzeba zastępuje niektóre koncepcje zdrowego rozsądku, ale zawsze powinno to być na pierwszym planie. Nie bój się wyjść. Jeśli to nie wydaje się właściwe, kieruj się instynktem i głosuj stopami.
źródło
Po wielu wywiadach następują testy. Testy te są potrzebne, aby upewnić się, że faktycznie posiadasz wymagane umiejętności, i aby lepiej zrozumieć kilka rzeczy, które trudno jest przetestować podczas samej rozmowy (np. Czy stosujesz reguły stylu do swojego kodu).
To powiedziawszy, test jest testem.
To nie musi być długie. Po ośmiu godzinach kodowania niewiele widać, czego nie można zobaczyć po trzydziestu minutach. Co ważniejsze, kod napisany podczas testu powinien następnie zostać przejrzany, wiersz po wierszu, co zajmuje dużo czasu . Nie jest niczym niezwykłym spędzanie więcej niż dwóch godzin na sprawdzeniu kodu testowego napisanego w ciągu pół godziny.
Nie powinien zajmować się istniejącą bazą kodu. Zrozumienie podstawy kodu produktu na średnią skalę może zająć dni lub tygodnie (lub miesiące lub lata w zależności od jakości kodu i długu technicznego). Problemem może być także własność intelektualna (chyba że kod źródłowy jest otwarty).
Gdy celem jest sprawdzenie, w jaki sposób kandydat jest w stanie utrzymać istniejącą bazę kodu, test można wykonać na małej (500-600 LOC) fikcyjnej podstawie kodu napisanej specjalnie dla testów.
Nie musi to być prośba o stworzenie prawdziwej aplikacji lub funkcji. Może to być całkowicie bezużyteczny fragment kodu, napisany wyłącznie w celu pokazania, że zrozumiałeś problem i znalazłeś elegancki sposób na jego rozwiązanie.
To nie musi być idealne. Są błędy? W porządku. Zanotuj je na kolejną rozmowę z kandydatem; może to być doskonała okazja, aby zobaczyć, jak kandydat reaguje w tej sytuacji.
Nie trzeba tego robić za pomocą RDC na maszynie wirtualnej, chyba że sam nie masz programu Visual Studio. Jeśli celem jest sprawdzenie umiejętności kodowania i rozwiązywania problemów, nie ma znaczenia, gdzie wykonujesz ćwiczenie.
Nie ma wątpliwości, że kod napisany podczas tego testu kończy się w kontroli wersji firmy. Dlaczego mieliby zanieczyszczać kontrolę wersji czymś napisanym przez kandydata?
Podsumowując, kiedy zostaniesz poproszony o kilkadziesiąt godzin na pisanie kodu produkcyjnego, rozwiązywanie problemów i oddawanie pracy kontroli wersji w firmie:
Albo wykorzystują cię do darmowego wdrażania funkcji,
Lub naprawdę nie rozumieją, jak przeprowadzić wywiad.
W obu przypadkach poszukaj lepszego miejsca do pracy.
źródło
Nie zamierzam pisać długiej odpowiedzi, ale jestem poważnie zdezorientowany, dlaczego nikt nie porusza kwestii praw autorskich?
O ile wiem, nigdy nie słyszałem o zawarciu umowy o przeniesieniu własności praw autorskich do kodu napisanego podczas testu programistycznego na drugą stronę. W takim przypadku możesz pozwać ich o naruszenie praw autorskich, a przyznane za to odszkodowanie może być całkiem miłe, szczególnie w Stanach Zjednoczonych na podstawie opowieści, które słyszałem. A jeśli chcą ugody (zaproponować to), możesz zażądać wygórowanej opłaty za naruszenie (po czym w zasadzie nadal nie będą mogli korzystać z twojej pracy, a nadal możesz im sprzedać swoją pracę, jeśli nadal będą zainteresowani) ).
źródło
Osoby z większym doświadczeniem zawodowym mogą być w stanie lepiej odpowiedzieć na to pytanie, ale osobiście nie czułbym się dobrze z ponad 20-godzinnym testem programistycznym. Wygląda na to, że wykorzystują rozmowę, aby ukończyć zadania.
Zakładam, że nie podpisałeś żadnych dokumentów prawnych dotyczących własności kodu. Poczekam więc, aż przejrzą kod i zaakceptują go lub odmówią. Gdyby to zaakceptowali, poprosiłbym o zapłatę za pełny etat, ponad 20 godzin. Nie jestem pewien, czy wziąłbym zapłatę tylko za sześć godzin, które pierwotnie zasugerowano. Jeśli to wejdzie do produkcji, będą musieli wyprostować własność kodu.
Przynajmniej omawianie płatności za kod powinno pomóc ci zdecydować, czy chcesz zaakceptować ofertę. Nie chciałbym zaakceptować oferty, gdyby uważali, że płacenie za sześć godzin jest sprawiedliwe.
źródło
Kiedy mogłem przeprowadzić wywiad z programistami, testy te były krótkie i po prostu „zdały lub nie zdały”, nie obejmując żadnych poprawek, nawet jeśli w kodzie było kilka drobnych błędów. To dlatego, że chciałem ocenić umiejętności kandydata, a nie uzyskać gotowe do produkcji oprogramowanie.
Sytuacja opisana w pytaniu wygląda tak, jakby ktoś próbował uzyskać coś przydatnego za darmo (lub tanio).
źródło
Nigdy nie przeprowadzałem testu dewelopera dłużej niż godzinę, a wszystkie te były „zagadkami”, pracą, aby sprawdzić, czy mogę rozwiązać problemy i osiągnąć wyznaczony cel w określonym terminie.
50 USD (lub dla mnie 25-30 GBP) to dość kiepska stawka dzienna, to tak, jakby poprosić hydraulika o naprawę toalety w zamian za napój.
Moja rada, bez wątpienia, jest blogowanie o twoich doświadczeniach, odnosząc się do nazwy firmy na wypadek, gdyby próbowali stworzyć całą aplikację za pomocą tej techniki (ludzie często google firm przed udaniem się na rozmowę kwalifikacyjną) i nie pozwalają to się powtórzyło. Następnym razem, gdy poprosą o naprawę błędu, podasz dzienną stawkę za doradztwo (co najmniej 5 razy więcej niż oferowali) i poinformujesz, że programiści nie będą pracować za darmo.
Oszukiwanie jest niestety częścią życia, ale nie musisz siedzieć i akceptować tego.
źródło
Dla porównania: rozmowa na temat mojej obecnej pracy trwała około godziny i mówiłem o tym, co zrobiłem do tej pory, o tym, co firma zamierza zrobić i jak się do tego zmierzę. Po tym tygodniu przez tydzień pracowaliśmy razem nad małym projektem wokół, chyba tylko po to, żeby zobaczyć, jak się dogadujemy. Zapłacili mi za to jako freelancer taką samą kwotę, jaką otrzymuję teraz jako ich pracownik, więc nigdy nie było pełnego dnia nieodpłatnej pracy, nie mówiąc już o 3 dniach.
Jeśli kod jest naprawdę używany w produkcji, wyślę mu rachunek za 24 godziny, które spędziłeś, a nie twoja wina, jeśli ich szacunki są błędne. Zakładając, że nie pozwolili ci oszacować, ile to zajmie.
źródło
Chociaż podobno otrzymujesz wynagrodzenie za (część) swojej pracy, nie brzmi to jak projekt próbny , to brzmi jak oszustwo, aby uzyskać od ciebie tanie / bezpłatne prace. Może się okazać, że jest to zostało przeznaczone do być projekt próbny, po prostu nie udało strukturze lub bardzo dobrze.
Ale zarządzanie, które jest tak złe, że brzmi jak oszustwo, jest zdecydowanie czymś, co należy wziąć pod uwagę przy podejmowaniu decyzji, czy podjąć pracę, czy nie.
Właściwy projekt próbny powinien to wyjaśnić
Warunki powinny być dla Ciebie akceptowalne bez względu na to, czy zostaniesz zatrudniony - jeśli warunki są akceptowalne tylko wtedy, gdy pochodzą z pracy w pełnym wymiarze godzin, tak naprawdę nie są akceptowane.
źródło
Nie sądzę, by faktycznie wykorzystali to, aby uzyskać tanią siłę roboczą.
Powód jest prosty. Po napisaniu tych testów ludzie muszą sprawdzić, co piszesz, tak, przeglądanie kodu jest znacznie łatwiejsze niż pisanie samego kodu, ale wciąż zajmuje dużo czasu.
A potem prawdopodobnie będą potrzebować ludzi do przeprowadzenia testów, wyjaśnienia ich itp.
Po prostu nie mogę sobie wyobrazić żadnej firmy informatycznej, która chciałaby zaoszczędzić mniej niż 100 USD, szczególnie firm w USA. Nigdy nie tak działa biznes.
źródło
Wierzę w testowanie kodu dla programistów przeprowadzających rozmowy kwalifikacyjne w sprawie pracy. Jednak to brzmi jak test kodu z piekła rodem ... Testy kodu nigdy nie powinny obejmować kodu produkcyjnego. Powinny być proste i powinny stwierdzać, że firma nie wykona żadnej z wykonanych prac.
Najwyraźniej twoja praca polegała na tworzeniu kodu produkcyjnego. Powinieneś otrzymywać wynagrodzenie za cały swój czas - co najmniej. Spróbuj porozmawiać z adwokatem i sprawdź, czy według niego warto pozwać ich. Wielu prawników oferuje bezpłatne wstępne konsultacje. Jeśli doszło do oszustwa, a w tym przypadku wygląda to w ten sposób, byłbyś uprawniony do czterokrotnego odszkodowania pieniężnego, a ponadto możesz być w stanie uzyskać kilka dobrych karnych odszkodowań.
Pozywając ich i wygrywając, pojawi się kilka nagłówków i zniechęcisz tę praktykę przez innych w przyszłości - co będzie korzystne dla wszystkich programistów poszukujących nowej pozycji.
źródło
Testy kodowania są niestety faktem. To powiedziawszy, przeszkadza mi to, że poproszę o wysadzenie czterech godzin w teście kodowania, co jest warunkiem otrzymania pierwszego screeningu telefonu. Niesprawiedliwe jest prosić kandydata, aby zainwestował tak dużo, gdy firma tak mało zainwestowała w związek.
Jestem starszym programistą i mogę przejść test kodowania. Ale nie będę marnować na to czasu, chyba że firma wykaże osobiste zainteresowanie mną. Zasadniczo nie wypełniam wniosku do żadnej firmy z dużym, źle napisanym formularzem aplikacji online, który prosi mnie o ponowne wpisanie mojego CV, aby ich źle napisany robot mógł przechwycić wyszukiwanie słowa kluczowego. Generalnie nie zgadzam się na ukończenie testu kodowania, chyba że jest on krótki lub nie oglądają go na żywo i rozmawiają ze mną.
Nawet jeśli nie wprowadzają kodu do produkcji, firma, która chce, abyś spędził mnóstwo czasu na pisaniu, zanim dowiesz się, czy jesteś w dobrym stanie, to firma, która czuje się dobrze, korzystając z Ciebie. Sygnalizują, jaki ma być ich związek; jesteś małpą kodową. Nazywają strzały. Ich proces wywiadu ma na celu znalezienie osób, które są zadowolone z tego związku.
Nie bądź małpą kodową. Odchodzić.
źródło