Pytanie:
Czy pisanie żądania ściągnięcia dla firmy, z którą rozmawiałem, było naprawdę niewłaściwe?
user90809
2019-03-06 09:51:24 UTC
view on stackexchange narkive permalink

Zdarzyło mi się to w zeszłym roku, kiedy rozmawiałem z firmą o stanowisko, którego nie dostałem. Obecnie jestem zatrudniony gdzie indziej, ale chciałbym wiedzieć o przyszłych aplikacjach.

Według nich miałem doskonały test telefoniczny - powiedzieli, że jestem silnym kandydatem, a pierwsza rozmowa techniczna z jednym inżynier poszedł bardzo dobrze. Pomiędzy tym drugim a ostatnim wywiadem okazało się, że ich oprogramowanie miało otwarte oprogramowanie API na GitHub, napisane w Pythonie. Patrzyłem na to przez chwilę i znalazłem znacznie prostszy i przyszłościowy sposób na napisanie jednej funkcji i otworzyłem PR ze zmianą, nie wspominając, że obecnie prowadzę rozmowę kwalifikacyjną.

Kiedy zaczęliśmy moją trzecią wywiad z dwoma inżynierami, jeden z nich wspomniał, że widział moją prośbę o ściągnięcie i otwieranie go było niewłaściwe. Powiedział, że jako świeżo upieczony absolwent college'u wiem więcej niż oni i nie zastanawiałem się, dlaczego tak to zakodowali. Nie dostałem tej pracy.

Czy to było naprawdę niewłaściwe?

Co dokładnie mówiły twoje komentarze wraz z prośbą o ściągnięcie?Mogli urazić nie samo żądanie ściągnięcia lub zawarty w nim kod, ale to, co o nim powiedziałeś.
Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/90833/discussion-on-question-by-pasclerasc-was-it-really-inrespect-to-write-a-pull).
Trzynaście odpowiedzi:
Charles E. Grant
2019-03-06 10:11:31 UTC
view on stackexchange narkive permalink

Najwyraźniej nie był to dobry wybór taktyczny dla tej firmy, ale dość głupie jest zadawanie sobie trudu zakładania publicznego repozytorium, a następnie lekceważenie ludzi za to, że mają bezczelność do przesyłania żądań ściągnięcia. Powiedzenie „Nie” żądaniu ściągnięcia nie jest ciężarem. Do licha, mogli to po prostu zignorować.

Gdybym był ankieterem, dałbym ci dodatkowe punkty za wykazanie prawdziwego zainteresowania firmą i pokazanie, że wiesz, jak pracować z open source projekt w repozytorium publicznym. Byłoby to prawdą, nawet jeśli przesłany kod byłby naiwny co do rozwiązania problemu.

Ponieważ w wierszu znajduje się oferta pracy, należy upewnić się, że przesłany kod jest wysokiej jakości (poproś kogoś innego przejrzyj to) i utrzymuj wszelkie komentarze w kodzie lub w żądaniu ściągnięcia w sposób pokorny i uprzejmy.

Pamiętaj, że oceniając Cię potencjalny pracodawca, powinieneś również oceniać tego potencjalnego pracodawcę.Udało ci się uniknąć pracy z rzekomo starszym programistą, który nawet nie wie, do czego służy repozytorium publiczne.
Nie wspominając o tym, że takie repozytorium potraktowałbym dokładnie jako etap z dodatkowymi punktami, na którym możesz pokazać a) jesteś zainteresowany firmą b) możesz przeczytać kod c) możesz to ocenić d) możesz to ulepszyć.
„wszelkie komentarze w kodzie lub w żądaniu ściągnięcia powinny być pokorne i uprzejme”.dodaj Professional i to zdanie jest dobrą zasadą, według której zawsze należy pracować.
@A.I.Breveleri - fakt, że repozytorium jest publiczne, nie oznacza, że jest przeznaczone do przyjmowania * niezamówionych * wkładów.Wiele repozytoriów github, zwłaszcza od firm, jest efektywnie dostępnych tylko do publikacji, inne są wygodnym odzwierciedleniem projektów, w których rzeczywisty przepływ rozwoju i zgłaszanie zmian ma miejsce gdzie indziej - a ponieważ ** github nie ma żadnej funkcji wyłączania żądań ściągnięcia ** fakt, że możnaprzesłanie jednego nie oznacza nic na temat celu repozytorium ani zasad projektu.
@ChrisStratton, ale ta sama logika dotyczy również osoby przesyłającej.O ile w pliku README projektu lub w polityce dotacji nie ma jakiegoś tragicznego ostrzeżenia wydrukowanego pogrubioną czcionką, przesłanie żądania ściągnięcia może być bezcelowe, ale raczej nie jest niewłaściwe.
@CharlesE.Grant - potencjalny przesyłający może łatwo zbadać żądanie pull projektu i zatwierdzić historię autora.Podczas gdy rozmowa kwalifikacyjna jest wzajemną oceną, na * nowej * stronie spoczywa obowiązek włożenia wysiłku w zrozumienie * istniejącej * sytuacji.Ktoś, kto impulsywnie wprowadza zmiany, nie myśląc najpierw o zapoznaniu się z pozornymi normami rzeczy, które chcą zmienić, może być postrzegany jako potencjalnie irytujący współpracownik, który potrzebuje dużo wskazówek, a nie osoba, która może szybko dopasować się i rozwiązać rzeczywisteproblemy w sposób, który można łatwo uwzględnić.
@ChrisStratton Oczywiście, sensowne jest, aby firma przejrzała historię kandydata i przyjęła wszelkie publiczne żądania przyciągnięcia - zwłaszcza dotyczące własnego projektu - jako sposób oceny umiejętności kandydata.Jednak to coś innego niż stwierdzenie, że coś jest nie tak z czynnością otwierania żądania.
Jeśli wygląda to na złą ocenę ze strony wnioskodawcy, wygląda na złą ocenę ... * subiektywną *, jakkolwiek ta ocena może być, nikt nie chce pracować z kimś, kto dokonuje tego, co uważa za złą ocenę, robiąc coś bez zastanawiania się, czyjest to przydatne, ale tylko na uzasadnieniu, że nie ma technicznych mechanizmów blokujących ich próbę.
@A.I.Breveleri Oprócz tego, co powiedział @ ChrisStratton, myślenie, że publiczne repozytorium oznacza, że możesz przesłać żądanie ściągnięcia, może być niebezpieczne.Licencja może nie zezwalać na pracę pochodną (którą zasadniczo jest pull request).Nawet klonowanie repozytorium - co afaik musisz zrobić dla PR - może być uznane za nielicencjonowaną redystrybucję (TOS Github wyraźnie na to zezwala, ale podobne usługi mogą tego nie robić).
Myślę, że gdybym przeprowadzał wywiad, PR byłby przydatnym punktem do rozmowy.Jako ankieter możesz poprosić rozmówcę o wyjaśnienie powodów stojących za PR i zakwestionować to, a następnie zobaczyć, jak reaguje.Jeśli taka osoba jest w stanie przekazać swoje rozumowanie i zrozumieć, w jaki sposób mogła się pomylić i przedyskutować różne podejścia, to jest to dobry znak.
@kapex To rodzaj winy właściciela repozytorium, prawda?Jeśli klonowanie repozytorium nie jest dozwolone, repozytorium nie powinno znajdować się na publicznym githubie.
@Wowfunhappy tak, dla Githuba to prawda.Chodziło mi raczej o to, że inne usługi hostingowe Git prawdopodobnie nie pozwalają na to wprost.
@ChrisStratton Możesz skorzystać z narzędzia strony trzeciej, takiego jak [No Pull Requests] (http://nopullrequests.com/), aby automatycznie odrzucać i zamykać PR.Lub po prostu uczyń to prywatnym.Lub na początek utwórz prywatne repozytorium.Jeśli nie cenisz wkładu innego dewelopera, zachowaj go dla siebie.Może również sprawić, że repozytorium będzie „tylko do odczytu”, ale to również uniemożliwi popełnienie błędu przez własnych deweloperów.
Zach Lipton
2019-03-06 14:40:43 UTC
view on stackexchange narkive permalink

Część, która daje mi najwięcej czasu na przerwę, to „znacznie prostszy i przyszłościowy sposób napisania jednej funkcji”. Nie widziałem twojego kodu i nie rozumiem kontekstu twojej zmiany, ale nie wygląda na to, że naprawiłeś błąd, dodałeś funkcję, poprawiłeś wydajność lub w inny sposób zrobiłeś coś, co opiekunowie projektu uznali za znaczące. Widzę, że przesłanie żądania ściągnięcia dla niezamówionej zmiany tego rodzaju mogło nie wywrzeć najlepszego wrażenia.

Wiele projektów open source (i często także projektów programistycznych o zamkniętym kodzie źródłowym) nie działa jak artykuły w Wikipedii gdzie każdy jest zachęcany do ciągłego dokonywania drobnych zmian. Każda zmiana wiąże się z niezerowym kosztem: czas na przejrzenie, przetestowanie i zatwierdzenie, ryzyko zepsucia czegoś (nawet z solidnym zestawem testów), stworzenie czegoś, co zrozumie mniej członków zespołu itp. w rezultacie wiele projektów nie jest specjalnie przeznaczonych do zmiany rzeczy tylko dlatego; istnieje nieskończona liczba sposobów pisania dowolnej funkcji i nic by się nie udało, gdyby każdy regularnie zmieniał istniejący działający kod, aby spełnić swoją osobistą definicję „najlepszego”. Kiedy nadejdzie czas na refaktoryzację, jest to bardziej prawdopodobne, że zaangażuje się opiekun projektu, a nie pierwszy współtwórca, i zwykle ma to jakieś uzasadnienie. Są to normy i podobnie jak wszystkie normy, są one różne i generalnie są to rzeczy, których oczekuje się raczej poprzez osmozę niż nauczanie. Jeśli byłeś niedawnym absolwentem, prawdopodobnie nic z tego nie było wtedy szczególnie widoczne.

Większość żądań ściągnięcia dotyczy bardziej oczywistej potrzeby: naprawy błędu lub dodania funkcji. I nawet w takich przypadkach często lepiej jest najpierw omówić zadanie z opiekunem, ponieważ może on mieć kontekst i preferencje, których nie jesteś świadomy.

Dlatego nie uważam, że wysyłanie żądania ściągnięcia podczas rozmowy kwalifikacyjnej nie jest z natury niewłaściwe (z pewnością świadczy to o zainteresowaniu i entuzjazmie), ale z ich perspektywy mogli postrzegać Cię jako kogoś, kto prawdopodobnie przepisał działający kod bez większego uzasadnienia, a potem niestety zareagowali na ciebie negatywnie i protekcjonalnie. Co, pomocne, wiele mówi o nich i jak by to było pracować z nimi.

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/90703/discussion-on-answer-by-zach-lipton-was-it-really-inrespect-to-write-a-Ciągnąć).
Zgadzam się, ale fragment „Powiedział, że jako świeżo upieczony absolwent college'u wydało mi się, że wiem więcej niż oni”, sprawia, że myślę, że nie mieli tak logicznego powodu, by tak reagować.
Kluczową kwestią było to, że przed napisaniem kodu przypuszczalnie spędzasz dużo czasu na zastanawianiu się, co to jest, co rozwiązujesz.Po prostu wykonanie żądania ściągnięcia, a następnie zmiana kodu jest w najlepszym przypadku działaniem bez informacji.Nie dziwię się, że wyszło tak arogancko.A co jeśli „kosmetyczne” zmiany całkowicie zepsuły testy automatyczne?W jaki sposób OP poznałby w ogóle szczegóły wymagań ** bez rozmowy z nimi **?
Zgadzam się z wnioskiem, ale jako opiekun projektów open source nie zgadzam się z resztą twojej odpowiedzi.Cenię każdy wkład, bez względu na to, jak mały, o ile jest to ulepszenie, jest uzasadnione i wykazuje zrozumienie projektu jako całości.Nawet jeśli tak nie jest, nie przychodzi mi do głowy ani jeden powód, aby zareagować negatywnie - nawet jeśli kod jest obiektywnie zły, po prostu dziękujesz autorowi i dajesz mu znać, że nie scalisz jego kodu.Negatywne reagowanie na osobę, która poświęciła swój czas i podjęła autentyczny wysiłek, aby ulepszyć Twój kod, jest oznaką słabej kultury firmy.
@Egor +1: To prośba o przyciągnięcie *, dobry Boże.Oferta.(Poza tym pokazuje entuzjazm i, miejmy nadzieję, umiejętności. Reagowałbym negatywnie tylko wtedy, gdyby tak się nie stało).
@PeterA.Schneider, pull request nie jest ofertą, to dodatkowa praca - przegląd, omówienie itp. + Dodatkowe długoterminowe koszty utrzymania dla głównego programisty (-ów).Czasami ta dodatkowa praca jest warta wprowadzenia potrzebnych zmian, ale nigdy nie jest to natychmiastowa wygrana i dlatego ich reakcja może być zrozumiała.Pewien mądry człowiek powiedział kiedyś: „Kiedy ktoś daje ci kod w prezencie, najczęściej jest to ukryty ciężar” - https://blogs.msdn.microsoft.com/oldnewthing/20080225-00/?p=23343/
@this.lau_, ale na każdym kroku mogą go odrzucić.Nie muszą nawet sprawdzać tego, jeśli powoduje tak duży ból.
@user87779 Powiedziałbym nawet, że nie powinni byli go w pierwszej kolejności otwierać, jeśli czują, że przyjmowanie żądań ściągnięcia jest obciążeniem.
„Koszt, który wiąże się z każdą zmianą: ... ryzyko zepsucia czegoś (nawet z solidnym zestawem testów)” - IMO to może być najlepszy powód, dla którego należy wziąć pod uwagę małe zatwierdzenia przez kogokolwiek ** **: jeśli coś zepsująoznacza to, że zestaw testów nie jest jeszcze wystarczająco dobry.
@leftaroundabout pytanie brzmi, jaka jest cena, którą jesteś gotów zapłacić za ustalenie, czy coś zepsuje, czy nie?Posiadanie niekompletnego zestawu testów nie jest dobre, ale wiele udanych projektów kończy się sukcesem, ponieważ dostarczają działający kod, a nie dlatego, że mają w 100% kompletny zestaw testów (mam na myśli, że bardzo niewiele z nich ma ten drugi).
To świetna odpowiedź.Powinienem dodać, że prawdopodobnie przeprowadzałeś rozmowę kwalifikacyjną w kulturze „bez stażu pracy jesteś nikim i nic nie wiesz”, co zwykle poważnie ogranicza postęp w karierze, ponieważ jedynym sposobem na postęp jest poświęcenie wielu lat pracy na niższych szczeblach.Spróbuj znaleźć równowagę między kulturami merytokracji i starszeństwa, są one zazwyczaj najlepsze.
@Egor Może zrobiłem coś, co spełnia moje potrzeby (i / lub klienta) i podzieliłem się tym z resztą świata w nadziei, że przyda się to komuś innemu.Teraz skończyłem z tym;Muszę przejść do następnej rzeczy.Fakt, że zdecydowałem się go udostępnić, nie upoważnia nikogo do bezpłatnego wsparcia i / lub aktualizacji w nieskończoność.Ale hej - to open source, więc nie krępuj się go modyfikować, tworzyć wokół niego społeczność, robić cokolwiek.Cieszę się, że mogłem pomóc.
@AC Wyjaśnij w pliku README.md swojego projektu, że nie akceptujesz żądań ściągnięcia i nie będziesz dostarczać poprawek błędów ani wdrażać żądań funkcji.Upewnij się, że wybrana licencja ułatwia ludziom rozwidlanie, modyfikowanie i rozpowszechnianie Twojego projektu.Dobrze jest otworzyć kod źródłowy, którego nie chcesz utrzymywać, wystarczy, że ustawisz odpowiednie oczekiwania.
@Egor (o "A C" - ostatnia odpowiedź) -> jeszcze lepiej: zarchiwizuj, ustawia jako "tylko do odczytu", wyświetla żółty baner na górze repozytorium podczas przeglądania.Nie może być jaśniejsze dla osób, które tego szukają.Ale jestem bardziej za twoim wcześniejszym komentarzem: jeśli nie cenisz pomocy w kodzie z otwartym kodem źródłowym, uczyń ją prywatną.Nie tak, jak sugerował „A C”, aby podzielić się ze światem czymś nieobsługiwanym: wszyscy widzieliśmy, co się dzieje, gdy dzielisz się każdym drobiazgiem: dostajesz stos JS „code” _modules w swoich projektach, które nie mają sensu.* kaszel * pad-lewa * kaszel *
@rkeet Problem z ekosystemem JS nie polegał na tym, że istnieje wiele małych pakietów.Problem z ekosystemem JS polegał (lub nadal jest, nie wiem, czy go naprawili) polegał na tym, że zezwolili opiekunom pakietów na cofanie wkładów.Usługa hostingu pakietów powinna po prostu wymagać, aby współautorzy udzielili repozytorium nieodwołalnej licencji na hostowanie pakietu.
@this.lau_ jeśli nie chcesz zajmować się żądaniami ściągnięcia, Twój projekt nie powinien być otwarty na git.Radzenie sobie z żądaniami ściągnięcia - dobrymi lub złymi - jest częścią gry, gdy skonfigurujesz swój kod w ten sposób.
jeśli menedżer produktu nie uważa, że poprawa jakości kodu jest użyteczna, wtedy OP lepiej tam nie pracować.Wydaje mi się, że OP po prostu rani ludzkie ego, pisząc ładniejszy kod.
Jack Aidley
2019-03-06 17:55:28 UTC
view on stackexchange narkive permalink

Źle zrozumiałeś otrzymaną opinię i skupiłeś się na niewłaściwej części

Powiedział, że wydało mi się, że wiem więcej niż oni, jako świeżo upieczona uczelnia grad i że nie zastanawiałem się, dlaczego zakodowali to tak, jak to było.

Problem nie polega na tym, że wysłałeś żądanie ściągnięcia, ale że zrobiłeś to dla czegoś, co sprawiło, że sam wyglądać na aroganckiego, ignoranta i nieświadomego własnych ograniczeń. Opisujesz swoją zmianę jako uczynienie ich kodu „znacznie prostszym i przyszłościowym”; z cytowanej powyżej sekcji wydaje się oczywiste, że się nie zgadzają. Co więcej, ponieważ są bardziej doświadczeni od Ciebie i znają swój własny kod, jest bardzo prawdopodobne, że mają rację, a Ty się mylisz.

Często zdarza się, że absolwenci wychodzą z dyplomów mocno zawyżeni własne kompetencje. Nie byli zirytowani tym, że wydałeś polecenie ściągnięcia, ale dlatego, że zdawałeś się wykazać brak zrozumienia własnych ograniczeń i brak szacunku dla ich umiejętności w przedłożeniu, które złożyłeś. Prawdopodobnie potęgowałeś to wrażenie podczas rozmowy kwalifikacyjnej.

Wreszcie, nie czytaj zbyt wiele w żadnej konkretnej części rozmowy: może to nie mieć nic wspólnego z tym, że nie dostałeś pracy, a oni po prostu miał lepszego kandydata. Nie wiesz. Nie miej obsesji na punkcie tego niepowodzenia i zamiast tego skup się na następnej aplikacji. Powodzenia w poszukiwaniu pracy!

Zgadzam się, że prawdopodobnie problemem nie jest samo żądanie ściągnięcia, ale jego postrzegana jakość.Postrzeganie firmy może być błędne, w takim przypadku OP i tak nie chciałby tam pracować;ot może być poprawna, w takim przypadku i tak nie chcieliby, aby OP tam działał.
Twój komentarz miałby sens, gdyby był ** prywatnym ** repozytorium
@RobertoTorres Jack nie mówi o samym PR, ale o tym, jak został przedstawiony: cytując Jacka odpowiedz „coś, co sprawiło, że wydawałeś się arogancki, ignorant i nieświadomy własnych ograniczeń”, w zasadzie kogoś toksycznego, którego nie chcą w zespole.
@Lesto, ponieważ znajdą juniora, który nie wyczerpuje zasobów i który nie potrzebuje wyjaśnień im.
Chociaż zgadzam się z sentymentem, aby nie czytać zbyt wiele w jednym konkretnym wywiadzie, nadal widzę sygnały ostrzegawcze w firmie.Jak już @Steve pisał sarkastycznie: jako świeżo upieczony student i tak będzie musiał poznać kulturę tej firmy, na początku będzie drenował, przeceni siebie.Coś musiało pójść nie tak z procesem rekrutacji, kiedy zapraszają świeżo upieczonych absolwentów, ale oczekują, że będą zachowywać się jak doświadczeni programiści.Mismatch HR: Engineers.
To zakłada wiele informacji, których nie mamy.To wszystko jest bardzo możliwe, ale nie ma powodu, aby to z góry zakładać.IMO jest równie prawdopodobne, że czyjeś ego zostało zranione przez nic.Gdyby zależało im na uwzględnieniu przez OP innych czynników, mogliby je po prostu wyjaśnić.
@Leonidas osobiście wolę programistę średniej jakości, który dobrze integruje się z zespołem niż jednego z najlepszych, ale „trudnych” programistów;moralny cios w firmie może zniszczyć produktywność znacznie bardziej niż to, co wnosi deweloper. Oczywiście nie mamy wystarczających informacji, aby to powiedzieć (lub na odwrót!), Ale jest to realna możliwość odmowy i warta omówienia. OP decyduje o udostępnieniu szczegółów osobie bezstronnej, aby to wyjaśnić.
Tak, dotyczy to wszystkich świeżo upieczonych absolwentów. Widziałem, jak kod przedłożony do doktoratu próbował użyć metody, która nie rozwiązała problemu i zawiera błędy składniowe, co oznacza, że nawet się nie skompilował.
@Leonidas: Jeśli prezentacja tej historii przez OP jest absolutnie dokładna i bezstronna, to tak, zawiera ona kilka ostrzeżeń dotyczących firmy.Ale słyszymy tylko jedną stronę tej historii;mogło się zdarzyć, że krytyka firmy była rzeczywiście skupiona na żądaniu pobrania zawartości, a OP potraktował to nieco bardziej osobiście, niż mu podano, i opisał to w sposób, który to odzwierciedla.Nie wiemy wystarczająco, aby powiedzieć, po której stronie są czerwone flagi.Jedyną radą, jaką możemy udzielić OP, jest ponowne przeczytanie opinii, zdawanie sobie sprawy z własnych uprzedzeń i próba sprawdzenia, jak wiele z nich było naprawdę opartych na treści.
Jeśli firma nie ceni wkładu z zewnątrz, powinna: a) nie upubliczniać rzeczy, b) hostować na prywatnych serwerach.Z drugiej strony „zrobiłeś to dla czegoś, co sprawiło, że wydawałeś się arogancki, ignorant i nieświadomy własnych ograniczeń” - czy Twoim zdaniem wkład w tworzenie kodu open source naprawdę to robi?To byłaby dziwna opinia.Świeży absolwent może mieć ograniczenia, ale chęć uczestnictwa nigdy nie powinna być traktowana jako to, co mówisz, chyba że faktycznie znasz tę osobę.
@rkeet: Możesz dosłownie przeczytać resztę zacytowanego zdania, aby uzyskać moją odpowiedź „** Problem nie polega na tym, że wysłałeś żądanie ściągnięcia, ale że ** zrobiłeś to dla czegoś, co sprawiło, że wyglądałeś na aroganckiego, ignoranta inieświadomy własnych ograniczeń ”.
@PascLeRasc: Tak, wiem.Sugeruję, że to zły pomysł.Nie możesz wyciągnąć znaczących wniosków z jednego doświadczenia, w którym masz bardzo ograniczony dostęp do uzasadnienia podjętej decyzji.
Myślę, że to zabawne, że przyjechałem tutaj, aby skomentować, że najlepszą możliwą radą podaną tutaj jest ostatni akapit, a PascLeRasc ma ukryty komentarz, który mówi, że to było najgorsze.Jako ktoś w branży od 20 lat to BARDZO dobra rada.Jestem częścią procesu rozmowy kwalifikacyjnej od 7 lat i mogę powiedzieć, że „nauka odpuszczania” to fantastyczna rada.Rady, które są naprawdę trudne do przyjęcia dla osób osiągających duże sukcesy, takich jak Ty.
Najbardziej uderza mnie to, że świeżo upieczony absolwent, który myśli, że „zabezpiecza przyszłość”, jest niemal z definicji absurdalny.Bardziej doświadczeni ludzie, którzy w rzeczywistości przeszli już kilka obrotów „przyszłości”, prawdopodobnie mają bardziej realistyczny pogląd na to, jak może wyglądać przyszłość, przynajmniej w dziedzinie technologii.
Chris Stratton
2019-03-06 10:09:52 UTC
view on stackexchange narkive permalink

„Niewłaściwe” może nie być najlepszym słowem, ale „nie strategiczne” prawdopodobnie byłoby trafne.

Ponieważ wydaje się, że jest to prawdopodobnie stosunkowo nowy pracownik w branży technicznej, jedną z pierwszych rzeczy musisz się nauczyć, że podejmowanie decyzji, jak coś zrobić i kiedy warto to zmienić, nie jest prostą sprawą. Biorąc pod uwagę, że masz bodziec, by zmienić coś, co już działało bez pytania, często zostaniesz oskarżony o „oddawanie czci nowemu i błyszczącemu” bez zrozumienia kosztów zmiany , złożone powody, dla których coś zostało zrobione tak, jak było lub pełen zakres nowych problemów, które wprowadziłby Twój pomysł .

A może to tylko małostkowi ludzie, dla których jesteś irytujący.

Rzecz w tym, że do pewnego stopnia nie ma znaczenia, co jest obiektywnie najlepsze, najważniejsze jest to, co jest subiektywnie najlepsze dla organizacji w danym momencie. Zmiana ma rzeczywisty koszt przełamania istniejącej świadomości, więc nowa metoda musi być znacznie lepsza w ważnych kwestiach , a nie tylko trochę lepsza w teorii lub trochę bardziej dopasowana do współczesnych trendów i sposobu myślenia.

Jeśli chcesz „zgłosić się na ochotnika” do czegoś bez pytania , prawdopodobnie uzyskasz lepszy odbiór, jeśli chodzi o rozwiązywanie wyjątkowych błędów, które mają wpływ na użytkowników niż odważne przepisywanie rzeczy, które już działały. Jeśli zrozumiesz nierozwiązany problem, zobacz, czy możesz dokonać zmiany, która jest tak mała i minimalna, jak to tylko możliwe, z komunikatem zatwierdzenia pierwszej klasy. Wyjaśnij, dlaczego ta jedna zmiana jest właściwym sposobem rozwiązania problemu, i spraw, aby była idealnie dopasowana do obecnego stylu i metodologii kodu. Daj im polecenie ściągnięcia, które jest łatwe do zatwierdzenia i nie wywołuje żadnych skomplikowanych kompromisów.

Jeśli naprawdę uważasz, że sekcja wymaga przepisania, zachowaj tę myśl, dopóki nie zostaniesz poproszony o wniesienie wkładu i będziesz świadomy priorytetów, historii i ogólnej natury kodu. Bądź przygotowany, aby zrozumieć, dlaczego zmiana, którą chcesz wprowadzić, nie jest zgodna z ich priorytetami i planem. Nieco sprzecznie z intuicją, im bardziej możesz wykazać zrozumienie obecnego kodu, wprowadzając poprawki, które bezproblemowo pasują do jego tradycji, tym większe jest prawdopodobieństwo, że zdobędziesz zaufanie i pójdziesz w nowym kierunku. Możesz też od niechcenia wprowadzić drastyczne zmiany w bardziej nieformalny sposób - „hej, myślałem, że moglibyśmy ulepszyć tę część, gdybyśmy ponownie napisali ją tak, by używała składania wrzeciona” i zmierzyć reakcję przed właściwie robi to.

do pewnego stopnia -> w jakimś stopniu?
To bardzo dobra odpowiedź, zwłaszcza czwarty akapit.Niewiele jest rzeczy tak frustrujących, jak ludzie, którzy chcą zmienić wszystko bez zrozumienia uzasadnienia obecnych procesów / systemów / zasad.(Piszę to jako osoba, która kocha zmiany i postrzega umiejętności krytycznego myślenia jako jedną z największych zalet, jakie każdy może mieć).
Mark K Cowan
2019-03-07 02:35:00 UTC
view on stackexchange narkive permalink

Mówiąc z drugiej strony biurka - na poziomie osobistym jestem bardzo zadowolony, gdy kandydat ma nawet repozytoria Github lub innego rodzaju portfolio i przeprowadził pewne badania na temat czym zajmuje się firma. To około 3-5% wszystkich kandydatów.

Kandydat, który potencjalnie demonstruje obie z nich bardzo bezpośrednio, naprawiając / ulepszając nasz kod? Prawdopodobnie przegapili świetne zatrudnienie, a na pewno uniknąłeś przyłączenia się do strasznej kultury.

Jestem ciekawy, jaka jest twoja rola?Widzę to z dwóch perspektyw - Kandydat jest przebojowy.Z HR, to jest złote, prawda?Z drugiej strony, jest dokładnie tak, jak powiedział rekruter (techniczny): OP sprawiał wrażenie, że jest TAKIM bólem nowego absolwenta, który nie rozumie granic i chce spróbować zmienić wszystko tak, jak powiedział ich profesor.być (lub gorzej, jak to ma dla nich sens).Ach, paradoks polegający na chęci zatrudniania aktywnych ludzi, którzy nie wtykają nosa tam, gdzie to nie pasuje ...
Niby przypomina mi to, co powiedział mój stary szef: „Nie jesteśmy odbiorcami zamówień, ale musimy robić to, co nam każą”
@Mars IMO „wrzód na tyłku”, który wcześnie wykrywa problemy, ale denerwuje ludzi, jest lepszy niż „profesjonalista”, który po prostu trzyma się własnych granic.Ale mój zespół liczy mniej niż 20 osób.Wyobrażam sobie, że takie podejście miałoby problemy ze skalowalnością w większych zespołach.Mój zespół często mnie poprawia, ponieważ każdy z nich zna swój obszar lepiej niż ja go znam i jest bardziej na bieżąco z narzędziami i procesami w swoim obszarze.
@MarkKCowan Z pewnością ból w tyłku, który wcześnie wykrywa problemy, jest wielki i wart swojej wagi w złocie.Ale sądząc po reakcji ankietera technicznego, OP nie znalazł problemu, zmarnowali swój czas (i czas recenzenta) na PR, który nie wniósł nic znaczącego.Nie chciałbym płacić pracownikowi, który wykorzystuje w ten sposób czas firmy!(Brzmi szorstko i jestem pewien, że nikt z nas nie był w 100% produktywny w naszej karierze, ale kiedy to twoje pierwsze wrażenie, prawdopodobnie nie będą o tobie dobrze myśleć)
@Mars Ale OP (nowy absolwent) nie był zatrudniony w firmie.Tak więc każdy czas stracony na (co jest potencjalnie) frywolnym PR jest wykonywany przez pracownika ** już zatrudnionego ** w firmie.W związku z tym każdy stracony czas został wykorzystany przez pracownika (prawdopodobnie 2, jeśli zaangażował jakiegoś pracownika działu HR na temat kandydata i odbył spotkanie / dyskusję na ten temat).To by mi powiedziało, że pracownicy firmy mają w zwyczaju dbać o to, by pozostali zatrudnieni, stosując [kod niemożliwy do utrzymania] (https://github.com/Droogans/unmaintainable-code).Kandydat uniknął wejścia do wulkanu.
@rkeet Skąd wiesz, że PR jest niepoważny bez patrzenia na niego?Recenzent nie tracił czasu, robił to, co prawdopodobnie mieściło się w zakresie swojej pracy.To nie ich wina, że PR, który musieli zrecenzować, był niepoważny.W oryginalnym poście nie było też nic, co sugerowałoby, że pracownicy posługują się kodem nie do utrzymania, stąd wybrana odpowiedź, że PR mógł być po prostu niepoważny.Uważaj, aby nie * wyświetlać * za dużo!
Edd
2019-03-06 21:40:03 UTC
view on stackexchange narkive permalink

Nie zrobiłeś nic złego. Jeśli pull request, który refaktoryzuje jedną funkcję kodu, wstrząsnął ich łodzią, nie pozostawia to dużo miejsca na bardziej złożone interakcje.

Rolą opiekuna projektu (lub recenzenta) jest rozwikłanie polityki (postrzegana arogancja, niekompetencja) z samego kodu i obiektywnie przejrzyj kod. Jeśli recenzent otrzyma pull request i tylko skupi się na polityce („Jak śmiesz podnosić ten PR?”) I nawet nie przejrzy kodu, jest bardzo nieefektywny w swojej roli.

Szczerze mówiąc, nie wygląda na to, że szukają kogoś twojego kalibru, ciesz się, że wkrótce dołączysz do lepszej firmy.

bob
2019-03-06 20:27:39 UTC
view on stackexchange narkive permalink

Jak powiedział @Kyralessa, mógł to być Twój komentarz , a nie Twój PR
Co wpisałeś jako komentarz do żądania ściągnięcia? To jest kluczowy brakujący element. Być może nieumyślnie zakomunikowałeś w swoim komentarzu, że pierwotni programiści byli idiotami i że byłeś znacznie lepszy. Kluczowym słowem jest tutaj „nieumyślnie”. Jako programista jest to bardzo łatwe do zrobienia. Nie mówię, że to zrobiłeś, ale jest to pewna możliwość.

... Albo boją się poradzić sobie z nową inicjatywą
Inna możliwość jak wspominali inni, jest to, że są nadopiekuńczy w stosunku do swojego kodu i być może nie chcą zajmować się mentoringiem świeżego absolwenta college'u z inicjatywą, który będzie potrzebował (jak w przypadku wszystkich innych na tej samej łodzi) znacznego mentoringu i nadzoru aby upewnić się, że nie popełniają wielkich błędów (mówię z doświadczenia, że ​​byłem jednym z nich lata temu).

... Albo nie wiedzą, jak przeprowadzić wywiad silny>
Mogą po prostu nie wiedzieć, jak przeprowadzić rozmowę kwalifikacyjną z kandydatem, którego chcą, i spartaczyli swoją stronę procesu rozmowy kwalifikacyjnej.

Hej, pokornie odradzam używanie w odpowiedzi nagłówków h1;zanieczyszcza twoją odpowiedź i całą stronę.
Dzięki za opinie.Osobiście pomagają mi w przeszukiwaniu i wydają się pomagać innym, ponieważ zauważyłem, że wydają się zwiększać prawdopodobieństwo otrzymania głosów (prawdopodobnie dlatego, że ludzie są bardziej skłonni to przeczytać).Ale rozumiem, dlaczego niektórym osobom mogą one przeszkadzać wizualnie.
Jasne.Skoro już o tym mowa, zauważ, że strona internetowa powinna mieć tylko jeden nagłówek poziomu 1 (w przypadku tej strony jest to tytuł pytania, który można zweryfikować w kodzie źródłowym).To powiedziawszy, nie widzę nic złego w używaniu nagłówków `h2` lub pogrubionego tekstu, jeśli jest to zrobione rozsądnie.
Przepraszam, zdałem sobie sprawę, że moja odpowiedź została zredagowana zgodnie z opisem w Twoim komentarzu - teraz rozumiem trochę lepiej.Jasne, że mogę trzymać się pogrubionego tekstu - myślę, że wygląda dobrze.
Na tej podstawie moja firma właśnie odrzuciła kandydata z powierzchownymi umiejętnościami.Wiemy, że jest sprytny, ale * ton *, który przyjął, aby zgłosić potrzebę lepszej wydajności gry, której używał, naprawdę nas wyłączył.Nie chcemy, żeby rozmawiał w ten sposób z kimkolwiek w firmie, a życie jest zbyt krótkie, abyśmy mogli ryzykować konieczność odpowiedniego wychowania go.
Dmitry Grigoryev
2019-03-07 18:29:52 UTC
view on stackexchange narkive permalink

W większości firm Twoje działania byłyby postrzegane pozytywnie, nawet jeśli istniałby dobry techniczny powód, aby w końcu odrzucić żądanie ściągnięcia:

  • W szczególności świadczy to o Twoim prawdziwym zainteresowaniu tym stanowiskiem
  • To dowód na to, że masz praktyczne doświadczenie w kodowaniu
  • Była to okazja, aby porozmawiać o prawdziwym kodzie podczas rozmowy kwalifikacyjnej, zamiast wymyślonych ćwiczeń z kodowania.

To znaczy, chyba że napisany przez Ciebie kod był kompletnym nonsensem, który przekonał ich, że nie masz takiego doświadczenia, jak zakładali, że miałeś z pierwszych wywiadów, lub w jakiś sposób udało ci się ich obrazić w komentarzu.

Inną możliwością jest to, że repozytorium miało oczywisty i utrzymywany dziennik problemów / funkcji, a OP zignorował to wszystko, aby nieco przepisać, który myślał, że mógłby się pochwalić, że nie ma problemów ani żądań funkcji.Co może faktycznie wskazywać na brak zainteresowania byciem użytecznym.
@J.Doe Dla mnie oznaczałoby to raczej brak doświadczenia z GitHubem, co (chyba że CV reklamuje OP jako eksperta GitHub) jest drobną irytacją, a nie powodem do odrzucenia kandydata.
Sigma Ori
2019-03-09 22:14:00 UTC
view on stackexchange narkive permalink

Powiedział, że jako świeżo upieczony absolwent college'u wiem więcej od nich i nie zastanawiałem się, dlaczego tak to zakodowali. Nie dostałem tej pracy.

Uważaj się za szczęściarza, że ​​nie dostałeś pracy , ponieważ sposób traktowania tego żądania ściągnięcia jest prawdopodobnie gustem o traktowaniu, które dostałbyś, gdybyś pracował w tej firmie i zaproponował tę (lub jakąkolwiek inną) zmianę.

Aby było jasne: Tak, wydaje mi się bardzo prawdopodobne, że Twój PR nie był t jest dla nich odpowiednie i że naprawdę mają dobry powód, by mieć swój kod tak, jak robią, a nie tak, jak proponujesz. Innymi słowy, bardzo wierzę, że twój kod był prawdopodobnie prostszy, ale gorszy.

Jednak , chyba że zamieściłeś niegrzeczny komentarz w PR , założenie seniora , że prosta sugestia jest „niewłaściwa”, że jest to arogancki sposób powiedzenia „Wiem więcej niż ty”, a kandydat z wykształceniem wyższym nie może w rzeczywistości wiem tyle co oni lub więcej, to potrójna czerwona flaga , ponieważ:

  • Budzi podejrzenia, że ​​jeśli tam pracowałeś, nawet Twoje dobre pomysły zostałyby odrzucone całkowicie na tej podstawie, że jesteś młodszy, tylko po to, aby seniorzy mogli uzasadnić swoją rolę i wypłatę .
  • To pokazuje, że mają poważne wątpliwości co do własnej wiedzy - i byłbym skłonny sądzić, że te niepewności mogą być uzasadnione .
  • Jeśli takiemu seniorowi brakuje formalna edukacja w zakresie oprogramowania, jest ad bodziec dla nich, by starali się bagatelizować znaczenie dyplomu i wiedzy, jaką z niego czerpie, aby ich menedżerowie w końcu nie zastąpili ich równie doświadczonymi programistami, którzy również mają certyfikaty.

    Żeby dać wam jakąś perspektywę, przeprowadziłam kiedyś gdzieś wywiady iw trakcie tego procesu przekazałam seniorom nieco radykalną sugestię dotyczącą systemu, który budowali. Nie tylko przyjęli to z zadowoleniem i rozważali, ale również wkrótce potem złożyli mi ofertę.

    Takie środowiska istnieją - nie wszystkie firmy zatrudniają jednokierunkowy model nauczyciela / ucznia gdzie wiedza płynie wyłącznie od seniorów do juniorów. (I pamiętaj, że jeśli ukończyłeś studia, to nie jesteś „studentem”, a wielu seniorów w tej branży nie jest w rzeczywistości „inżynierami”, niezależnie od tego, jak firma zdecyduje się ich nazwać).

Równie dobrze trzymałbym się z dala od miejsc, które realizują wszystko, co sugerujesz.Widziałem przypadki, w których każdy pomysł jest wdrażany i kończy się okropną bazą kodu, której nie można zmodyfikować.Chciałbym udać się w miejsce, w którym masz poligon, a kiedy już to osiągniesz, Twoje sugestie i opinie są jednakowo cenne dla wszystkich.Przynajmniej uszanowałbym menedżera ds. Rekrutacji, gdyby powiedział, że pomysł był dobry, ale nie mogą tego zrobić z powodów biznesowych, a następnie szczegółowo wyjaśnić, dlaczego OP zdecydował się to zrobić i zobaczyć jego proces myślenia.Nie kończ wywiadu wprost.
@Dan Nie mówię o tym, czy akceptują czy odrzucają którąkolwiek z twoich sugestii.Mówię konkretnie o tym, czy juniorowi nie wolno nawet * w zasadzie * niczego sugerować.Dla mnie to krzyczy, że zatrudnieni tam seniorzy prawdopodobnie są oszustami - a nawet jeśli tak nie jest, najlepiej, aby młodszy pracownik udał się do innej firmy, gdzie nie zostanie zniszczony entuzjazm.
Harper - Reinstate Monica
2019-03-07 23:07:46 UTC
view on stackexchange narkive permalink

Problem w tym, że twoja „poprawa” była naiwna i sztuczna, i wiem to ze względu na to, o ile krótszy byłeś w stanie to zrobić.

To zdarza mi się cały czas. Buduję złożony system, aby dane mogły służyć wielu użytkownikom. A potem ktoś podchodzi i mówi: „Nie potrzebujemy całej tej głupoty! Sprawiasz, że prosty problem jest zbyt skomplikowany”. Hakują i tną i redukują to do prostego systemu , który dobrze im służy i dają sobie złotą gwiazdę.

Tyle że nie są jedynymi użytkownikami. A modyfikacje po prostu zepsuły to dla wszystkich innych użytkowników tych danych. Więc musi być coś ... spotkania, reedukacja, zgorzknienie, wycofywanie się, wszystko to było niepotrzebne.

Kodowanie to łatwa część. Najtrudniejsze jest zrozumienie i wyrażenie problemu. Skręciłeś trudną część, aby ułatwić łatwiejszą część.

Gdyby uczono cię, że kodowanie jest królem, cóż, nie do końca. Po drugiej stronie są pieniądze: możliwość napisania specyfikacji, która jest kodowalna i obsługuje wszystkich użytkowników / potrzeby. (na drugim końcu skali można również zaprojektować rozwiązania, które są śpiewające / tańczące, ale niepisane, dlatego aby projektować, trzeba znać kodowanie).

To był sedno tego. Nie do końca zrozumiałeś problem, który kod próbował rozwiązać.

I pokazałeś im to w spektakularny sposób.

W grach „nowicjusz” to zwykły nowicjusz. „Noob” to nowicjusz, którego arogancja uniemożliwia mu naukę lub ogólnie szanowanie doświadczeń innych lub starszych. Wygląda na to, że ta druga opcja jest bardziej odpowiednia dla Ciebie, ponieważ tak łatwo byłeś w stanie skrócić ten kod o wiele krócej, i nie przyszło ci do głowy, że to było zbyt łatwe . musiał być powód, dla którego napisali to tak skomplikowane .

+1, udało ci się.Myślę, że wiele osób na tej tablicy ma wrażenie, że umiejętność kodowania jest kluczem do sukcesu w tworzeniu oprogramowania, a tak nie jest.To nawet nie jest najważniejsza umiejętność.Zrozumienie problemu i tego, jakie problemy faktycznie wymagają rozwiązania, jest o wiele ważniejsze.OP nie zademonstrował tego swoim PR.
W grach noob to to samo, co nowicjusz.Noob po prostu pisze mniej czasu.Nawet jeśli nie rozumiał problemu, w tej chwili nie jest nawet nowym pracownikiem.Po prostu potraktuj zainteresowanie jako plus i odrzuć prośbę.
@Harper - w swojej odpowiedzi poczynisz wiele założeń.Ponadto, jeśli twój kod jest tak złożony, prawdopodobnie powinien zostać oddzielony / refaktoryzowany / przemyślany nieco bardziej niż jest.Złożony niekoniecznie oznacza skomplikowany.I przepracowałem sporo kodu, napisanego przez ludzi, którzy upchnęli to wszystko w jednym miejscu, który był znacznie łatwiejszy do skalowania, utrzymania i zrozumienia po tym, jak został wypatroszony, uproszczony i złożony z powrotem.
@Harper - tyle spekulacji tutaj.Znalazłem PR i umieściłem go (zaciemniony) w odpowiedzi i jest całkiem jasne, że wcale nie pasuje do wielu przyjętych założeń.
Dan
2019-03-07 23:41:29 UTC
view on stackexchange narkive permalink

i nie zastanawiałem się, dlaczego zakodowali to tak, jak to było.

Tak, prawda. W niektórych przypadkach kod jest napisany w celu obsługi określonej funkcji biznesowej lub reguły, której programiści nie mogą kontrolować.

Patrzyłem na to przez chwilę i znalazłem znacznie prostszy i przyszłościowy sposób na napisanie jednej funkcji i otworzyłem PR ze zmianą, nie wspominając, że obecnie prowadzę rozmowę kwalifikacyjną.

Jako młodzi ludzie lubimy myśleć, że jesteśmy sprytni. Że wszystko wymyśliliśmy. Prawda jest taka, że ​​gdybyś o tym pomyślał, mógł to zrobić ktoś inny, ponieważ najwyraźniej „znalazłeś” lepszy sposób, szukając w Google tego, co zrobili inni ludzie. Ilekroć myślisz o czymś tak rażąco oczywistym, powinieneś najpierw zatrzymać się i zapytać o to, aby upewnić się, co jest obecnie osiągane. Bill Gates nie wygooglował swojego sposobu budowania systemu Windows, pomyślał o tym i zaimplementował go. Jeśli nie jesteś w stanie zrobić tego samego, nie znalazłeś „lepszego sposobu”. Po prostu wygooglowałeś lepiej niż ostatnia osoba.

Czy było to dla mnie niewłaściwe?

Jako PR dla ich pana, tak to było trochę niewłaściwe. Być może własny oddział, którym możesz się podzielić podczas rozmowy kwalifikacyjnej. „Widziałem, jak zrobiłeś X, a po zbadaniu znalazłem Y, które pozwala na przyszłe zmiany i łatwiejsze modyfikacje. Wiem, że napisaliście to z jakiegoś powodu, ale byłem ciekawy, aby zademonstrować koncepcję opartą na Twoim kodzie.” Wiem, że w git możesz używać symboli @, a nawet otwierać łańcuch dyskusji. Być może następnym razem będzie najlepiej skomentować sekcję, którą zmodyfikowałeś za pomocą,

@ użytkownik Zauważyłem, że robicie tutaj X, ale wstawiłem Y . Chciałem pokazać, że potrafię czytać Twój kod i wprowadzać modyfikacje itp.

Robiąc PR swojemu mistrzowi, to w zasadzie to samo, co w wiadomościach o człowieku, który chciał zostać hydraulikiem, ale nie mógł znaleźć pracy, więc postanowił „naprawić” wyciek gazu w swojej okolicy. Możesz sobie wyobrazić efekt końcowy, który się wydarzył.

-1 dla ostatniego akapitu.Amatorski „naprawianie” rury gazowej może spowodować niezliczone spustoszenia, ale żądanie ściągnięcia nie wprowadza żadnych zmian w kodzie, na którym jest oparty, dopóki nie zostanie zaakceptowane.To bardziej przypomina zadzwonienie do firmy gazowniczej i powiedzenie „masz wyciek, ponieważ korzenie drzewa zgniotły rurę; możesz przełożyć rurę przez mój ogród, aby ominąć drzewo, jeśli chcesz”
@RichardWard PR miał realne konsekwencje ... nie udało mu się przeprowadzić wywiadu, ponieważ obraził programistę.Nie było to jego zamiarem, ponieważ chciał pochwalić się swoimi umiejętnościami, ale miało to efekt uboczny, którego nie zamierzał.Oprócz tego jego PR został prawdopodobnie odrzucony.
Czy to nie jest bardziej jak firma gazownicza, która mówi: „Nie chcemy twojego ogrodu, a tak naprawdę, ponieważ zaoferowałeś to, odetniemy gaz w twoim domu”?
Petr
2019-03-07 14:22:43 UTC
view on stackexchange narkive permalink

Aby dodać do innych odpowiedzi,

czy jesteś pewien, że Twój kod jest rzeczywiście poprawny i przydatny w tej konkretnej bazie kodu?

Może się wydawać, że poprawione poprawki są dużo prostsze i solidniejsze; jednak łatwo może się zdarzyć, że stary kod został napisany w taki sposób, w jaki został napisany celowo.

Prawdopodobnie twoje żądanie ściągnięcia zmieniło niektóre aspekty zachowania (możesz nawet pomyśleć, że naprawiłeś błąd), ale istnieje jakiś odległy kod, który opierał się na tym błędzie.

Prawdopodobnie Ty nie uwzględnił tego, w jaki sposób kod został użyty, dlatego kod jest gorszy w tej konkretnej sytuacji. Na przykład Twój kod może nie działać w środowisku wielowątkowym lub dane, którymi zajmuje się kod, mogą mieć pewne nieoczywiste właściwości, które sprawiają, że stary kod działa lepiej i szybciej.

Z tego, co wiemy, możesz mieć przeoczyłeś jakiś głupi powód (błąd w twoim kodzie lub fakt, że twój kod działa wolniej itp.), który powinien być oczywisty dla doświadczonego programisty.

Być może przeoczyłeś coś innego. W końcu pracują z tym kodem od dawna i prawdopodobnie powinni wiedzieć znacznie lepiej, jak to działa. Fakt, że powiedzieli „że [ty] nie zastanawiałeś się, dlaczego zakodowali to tak, jak to było” sugeruje to.


To powiedziawszy, zgadzam się z innymi ludźmi, którzy twierdzą, że otwarcie PR to nic złego. Jednak, jak w przypadku każdego nowego kodu, często lepiej jest omówić go z opiekunami. Biorąc pod uwagę, że byłeś w trakcie rozmów kwalifikacyjnych, mógłbyś po prostu zadać to pytanie podczas rozmowy kwalifikacyjnej.

jeśli błąd został celowo pozostawiony nie naprawiony, czy nie byłoby stosowne komentowanie w stylu „wiemy, że 1 + 1 nie powinno równać się 3, ale łamiemy xiy, jeśli tak nie jest”?Tylko po to, żeby uniknąć tej dokładnej sytuacji, w której ktoś niezaznajomiony z bazą kodu „naprawia” to?
@Atheist, w idealnym świecie - tak.W rzeczywistości - zdecydowanie nie zawsze
Richard Flamsholt
2019-03-14 06:49:14 UTC
view on stackexchange narkive permalink

Trudno jest zrozumieć, dlaczego pisanie PR dla czyjegoś projektu open source mogłoby być wewnętrznie niewłaściwe.

Dlatego musi sprowadzać się do szczegółów, z których wiem bardzo mało. Czy był naiwny czy arogancki w kodzie lub postawie? Czy było to pomocne i przyjazne? Nie wiedząc więcej, trudno jest ocenić stosowność.

Ciekawość wzięła górę. Znalazłem twój PR. I zrobiło to na mnie takie wrażenie, że postanowiłem się nim tutaj podzielić. Nie była to łatwa decyzja, ponieważ nie chcę zdradzić poufności ani Ciebie, ani firmy, ale czułem, że wniesie ona istotny kontekst do dyskusji w akceptowalny sposób. Brak konkretnych szczegółów z pewnością doprowadził do wielu bezpodstawnych spekulacji

Całkowicie zanonimizowałem i zaciemniłem PR, zmieniając wszystkie niestandardowe zmienne, ciągi znaków, metody i komentarze. Tutaj jest w całości:

  # jeśli to jest wywołane z argumentem, użyj tego dla target- target = 'jadaskjafjldfsfsasf' if len (sys.argv) > 1: arg = sys .argv [1] if arg == '...': print '...' else: target = arg-- match = some_lookup (target) + match = some_lookup (target) if match: print "..." 

Kod zainicjuje target do zakodowanego na stałe losowego ciągu. (Uwaga, tylko przetasowałem znaki łańcucha, aby zaciemnić tę część). Jeśli argument nie zostanie podany, some_lookup (target) nie zwróci dopasowania, ponieważ prawdopodobnie nie będzie mógł wyszukać celowo domyślnego ciągu wacko.

Jest to wyraźnie zgodne z projektem. Ale jest to również obiektywnie złe kodowanie.

Twoja poprawka wydaje się być ulepszona. Sam bez wahania odniosę się do tego w przeglądzie kodu. I z łatwością mogłem zobaczyć siebie, jak piszę dokładnie tę samą przyjazną, niekonfrontacyjną wiadomość o zatwierdzeniu składającą się z 25 słów, którą napisałeś.

Dlatego ten konkretny PR nie wydaje mi się niewłaściwy. Pod warunkiem, że jest to zrobione w profesjonalny, pełen szacunku sposób i w dobrej wierze, PR nigdy nie byłby niewłaściwy , w tym podczas rozmowy kwalifikacyjnej.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...