Pytanie:
Moja obecna praca jest zgodna z „najgorszymi praktykami”. Jak mogę opowiedzieć o swoim doświadczeniu podczas rozmowy kwalifikacyjnej bez wydawania czerwonych flag?
user107107
2019-07-22 08:49:27 UTC
view on stackexchange narkive permalink

W mojej pracy nie ma absolutnie żadnego przeglądu kodu, testowania, kontroli wersji, organizacji architektury oprogramowania, koncepcji „test vs serwery produkcyjne”, żadnego komentowania kodu. W rzeczywistości wszystko to jest wyraźnie zabronione i często mam „kłopoty” z pisaniem komentarzy lub korzystaniem z małych funkcji modułowych - mój premier mówi, że to nie jest warte miejsca na dysku.

Ilekroć przeprowadzam rozmowę w innym miejscu , Zazwyczaj jestem pytany o to, jak pracuję i jak podchodzę do testowania lub weryfikacji / walidacji. Czuję, że gdybym był ankieterą i kandydatem wychował, że nic takiego się nie dzieje, to byłaby wielka czerwona flaga i po prostu wyrzuciłbym ich podanie. Jak mam omawiać to w wywiadach?

@DarthFennec być może małe funkcje modułowe służą tylko do samodzielnej dokumentacji.(Kiedyś podzieliłem pętlę 1000 linii * while * na kilka mniejszych funkcji - dzięki Bóstwu była to era papierowych składanek z zielonym paskiem i mogłem wydrukować ją i rozłożyć na biurku w stołówce! - i nic z tegonowe funkcje zostały ponownie wykorzystane przez cokolwiek innego.
Z kim rozmawiasz?Ty czy firma?
W 1979 r. Napisaliśmy wiele komentarzy;znaczący komentarz na temat każdej linii asemblera został uznany za dobrą praktykę.
Czy możesz wyjaśnić, czy Twoje obecne zatrudnienie ma problemy z kodem?Pracowałem nad bazami kodu z ograniczonym wykorzystaniem najlepszych praktyk, które opisujesz, ale wszystko nadal działało.Tak, gdybyś musiał przejąć czyjś stary kod, było to duże obciążenie psychiczne, ale dało się to poradzić.Jedyne testy, które przeprowadziliśmy, dotyczyły testów systemu pudełkowego z sondami elektronicznymi i analizatorami sygnału w celu sprawdzenia naszych wyników.Czy nikt nigdy nie przeprowadza żadnych testów?Czy możesz podać więcej informacji na temat urządzenia docelowego?
@WesleyLong - Myślę, że ty i wszyscy inni błędnie interpretują tutaj znaczenie.Facet nie mówi, że miejsce na dysku jest drogie, mówi, że komentarze są bezwartościowe.Coś w stylu „ta książka nie jest warta papieru, na którym jest napisana”.To nie znaczy, że papier jest drogi, to znaczy, że książka jest gówna.
Powiązane: [Getting Things Done When You're Only a Grunt - Joel on Software] (https://www.joelonsoftware.com/2001/12/25/getting-things-done-when-youre-only-a-grunt/)
Jeśli nie ma procesu przeglądu kodu, skąd ktokolwiek w Twojej firmie wie, czy postępujesz zgodnie z pozostałymi ich złymi praktykami?
Pozwól nam [kontynuować tę dyskusję na czacie] (https://chat.stackexchange.com/rooms/96598/discussion-between-phresnel-and-aron).
Dziesięć odpowiedzi:
Jayce444
2019-07-22 09:03:43 UTC
view on stackexchange narkive permalink

Jeśli chodzi o przygotowanie się do rozmów kwalifikacyjnych, najlepiej jest samodzielnie zbadać te tematy i pracować nad własnymi projektami, w których są one wykorzystywane.

Na przykład moja pierwsza praca związana z oprogramowaniem była podobna, nie angażowaliśmy się w żadne dobre praktyki i były one trudne do wdrożenia. Pracowałem więc nad prywatnymi projektami, w których mogłem robić, co chcę i miałem czas. W tych projektach bym właściwie zaplanował wszystko, poprawnie skonfigurowałbym kontrolę src, przetestowałbym cały swój kod, skomentowałbym kod i postarał się, aby był zrozumiały, wielokrotnego użytku i skalowalny itp. Kiedy więc nadszedł czas, aby porozmawiać o tych najlepszych praktykach podczas rozmów kwalifikacyjnych, miałem w nich przyzwoitą wiedzę i doświadczenie, nawet jeśli nie miałem z nimi kontaktu w mojej rzeczywistej pracy.

Zwykle znajduję że ankieterzy nie chcą konkretnych przykładów tych praktyk z twojej obecnej pracy, chcą tylko wiedzieć, że jesteś ich świadomy i czego one dotyczą. Możesz mieć trudności z narażeniem się na ich działanie w pracy, ale nic nie stoi na przeszkodzie, abyś szukał ich i używał ich poza tymi godzinami. Na pewno będzie to warte czasu, jeśli chodzi o karierę. Osobiste projekty, które przedstawiają te najlepsze praktyki, świetnie nadają się do Twojego portfolio, nawet jeśli są małe.

Jeśli absolutnie naciskają bardzo mocno na aktualne przykłady pracy, to osobiście powiedziałbym, że twoja obecna praca tak naprawdę tego nie robi, więc podjąłeś wysiłek, aby się ich nauczyć / ćwiczyć samodzielnie. To pokazuje inicjatywę i może dostarczyć im dodatkowego kontekstu, dlaczego szukasz gdzie indziej.

Świetna odpowiedź.Ponadto spróbuję również znaleźć przykłady `` złych praktyk '', które były przestrzegane, i kroki, które podjąłem, aby je naprawić (np. Przełączyłem się na x, aby skrócić czas kompilacji współczynnik y, odnowiłem ramy automatyzacji testów itp.)
Może to wiązać się z pytaniem o „pokonywanie przeszkód”.„Przeszkodą w nauce tego w praktyce był szef w poprzedniej pracy. Podjąłem więc kroki, aby uczyć się samodzielnie i ćwiczyć przy moich osobistych projektach”.
Najlepsza odpowiedź.Chcę dodać, że powinieneś mieć co najmniej jeden lub dwa projekty pokazowe dostępne na gitlab, github, sourceforge lub w innym miejscu, które możesz wskazać ludziom, jeśli chcą bardziej szczegółowo sprawdzić, jak pracujesz.
Zwykle mówię, gdzie użyłem lub nauczyłem się czegoś, a nie gdzie nie.Jeśli ankieter zauważy, że obecne stanowisko nie jest wymieniane i zapyta dlaczego, po prostu stwierdź, że firma z niego nie korzysta i podkreśl swoje zainteresowanie współpracą z firmą, która to robi.To nie mówi źle o twoim pracodawcy, to stwierdzenie faktów.Wyrażanie opinii na temat tego, jak źle nie używa się czegoś, mówi źle o pracodawcy, więc trzymaj się faktów w sposób nieoceniający.
To jest odpowiedź, ale myślę, że ważne jest również, aby powiedzieć, że żaden rozsądny ankieter nie odrzuca kandydata tylko dlatego, że został zmuszony do przestrzegania złych praktyk.Jeśli potrafisz wyjaśnić, dlaczego dobre praktyki są dobre, nie zawiedziesz rozmowy kwalifikacyjnej za to.
Dobra odpowiedź.Aby to rozwinąć, nie zostawiaj tego „nic z tego nie robimy”, ale wykorzystaj to jako okazję do nazwania i krótkiego opisu kilku najlepszych praktyk, których Twoja firma nie przestrzega.
@computercarguy V miłe podejście / nastawienie.Czy przychodzi ci to łatwo?Trochę trudno mi jest pozostać obiektywnym, jeśli chodzi o kiepskie wcześniejsze pracodawcy / sytuacje: _ poradzę sobie_ raczej dobrze z pierwszym podejściem.Ale trudność pojawia się, gdy druga strona (ankieter lub w inny sposób) _ naciska_ na problem.Wtedy omijanie tematu zaczyna wydawać się niemal niegrzeczne.Ma wyższy poziom dyplomacji.
@javadba, nie, to nie przychodzi naturalnie.Trochę się potykam, a potem staję się świadomy tego potknięcia.Filtrowanie wstępne słów wymaga praktyki i nie zawsze to działa, ale z praktyką stało się to łatwiejsze.Prowadzący wywiad naciskający na ten temat sprawia, że jest to trudne.Czasami jest to wywiad dla niedoświadczonych osób, a czasami jest to test sprawdzający, czy kogoś nie okryjesz, co zwykle jest również negatywne dla osoby przeprowadzającej rozmowę.Spróbuj „pozostać na haju”, ale nie czuj się tak źle, jeśli się poślizgniesz, po prostu spróbuj zminimalizować wpływ, jaki ma to na pozostałą część rozmowy.
... i miałeś dobry przykładowy kod, którym pozwolono ci się legalnie udostępniać.
„Mój obecny pracodawca jest nieco staroświecki i nie używa X ani Y. Teraz uważam X, Y i Z za fascynujące, a ponieważ ukończyłem kurs, naprawdę chcę je robić. Twoja firma to robi, czylidlaczego chciałbym dla Ciebie pracować ”.
Szczerze mówiąc, ankieter nie ma prawa wiedzieć, jak działa obecny pracodawca;pytają, a OP, podając te informacje, może nawet wzrosnąć do poziomu szpiegostwa przemysłowego, w zależności od dostarczonego poziomu szczegółowości.Niezależnie od tego z pewnością są to zastrzeżone informacje, o które konkurent nie powinien prosić ani ich udzielać.Jest to więc kolejny powód, aby skupić się na tym, jak * ty * robisz rzeczy (w tym przypadku byłby to sposób pisania kodu, gdy masz kompletną agencję), a nie na tym, jak twoja * obecna firma * robi rzeczy.
Więc sugerujesz, aby odłożyć rozmowę kwalifikacyjną do czasu, gdy wykonają wystarczająco dużo osobistych projektów, aby zdobyć doświadczenie na rozmowę kwalifikacyjną?
FrenchFigaro
2019-07-22 12:54:26 UTC
view on stackexchange narkive permalink

Ostatnio byłem w takiej sytuacji. Podczas mojego poprzedniego występu pracowaliśmy na bardzo starej bazie kodu (część kodu zgodnego z Javą 1.2 / 1.3); kod był pełen magicznych liczb i magicznych ciągów używanych do uzyskania dostępu do referencji Object z Vector , które zostały następnie rzucone; żadnych testów jednostkowych, prawie żadnych testów integracyjnych, żaden z nich nie jest zautomatyzowany; mało czasu przeznaczonego na refaktoryzację starego kodu; brak przeglądu kodu; komentarze z natury ezoteryczne ...

Kiedy poczułem, że nadszedł czas, aby udać się na bardziej zielone pastwiska, zadano mi to samo pytanie, kontynuowałem o tym, jak chcę pracować i jak ten brak satysfakcji z mojej osobistej etyki pracy była jednym z powodów, dla których szukałem gdzie indziej.

Wyjaśniłem, jakie cechy mają dla mnie znaczenie dla jakości kodu (solidność dzięki dokładnym testom automatycznym, czytelność nazw zmiennych i funkcji, dzielenie kodu na tak małe, jak to możliwe funkcje zamiast bloków składających się z tysięcy wierszy powtarzającego się kodu itp.) i wylądowałem na moim obecnym koncercie.

Jak @Sascha wskazał w swojej odpowiedzi, nie ma potrzeby obwiniania twojego obecnego /Poprzedni pracodawca. Chodzi o sprzeczne postrzeganie najlepszych praktyk, które uniemożliwiają czerpanie satysfakcji z wykonywanej pracy.

To.Zawsze opisywałem moje obecne środowisko pracy jako takie, w którym nie robiliśmy [tych rzeczy] i jak to było coś, co chciałem zrobić, ponieważ mogłem zobaczyć pojawiające się problemy, takie jak błędy lub inne zmiany zagubione w wiadomości e-mail lub nieczytelnei niemożliwy do utrzymania kod lub przypadkowe awarie produkcji z błędem i jak spędziłem większą część 2 lat próbując wprowadzić lepsze praktyki.Nigdy nikogo nie winiłem tymi stwierdzeniami, były to faktyczne zdarzenia (z których część była moją winą!).
Java 1.2 / 1.3?20-letni kod brzmi ... prawie dobrze.Muszę regularnie utrzymywać kod mniej więcej w tym wieku i starszy.Czasami chcę mieć podobieństwo do jednego z tych starych programów wyrzeźbionych w marmurze i zamontowanych na cokole, z dyskretną mosiężną etykietą z napisem „In Memoriae Pre-ANSI C, 1972 - 1989: Lest We Forget” :-) (Albo opublikuj wiersz: "W zimnych piwnicach rosną maki / Wśród dysków, rząd po rzędzie ..." - Pracowałem kiedyś w firmie z podziałem czasu, która miała ogromne pokoje pełne tylko dysków mainframe wielkości pralkinieustannie warcząc ...)
@BobJarvis Tak, to wszystko na ten wiek.Chodzi o to, że przez cały czas, gdy tam pracowałem, działał na OpenJDK 8, więc można go było refaktoryzować, aby był zgodny z Javą 8 i czasami tak było.Ale ezoteryczna natura kodu i specyfikacji sprawiły, że była to długa praca i podczas gdy kierownictwo zawsze zastanawiało się, jak powinniśmy czuć się swobodnie, aby refaktoryzować, ilekroć wspomniałeś, że musisz zrobić jakąś refaktoryzację, byli nieugięci, że nie jest to konieczne i tamNie było czasu na zrobienie tego przed wysłaniem tej lub innej funkcji.
Kierownictwo @FrenchFigaro: nie chce być zdenerwowane.Denerwują się, kiedy im mówisz.Dlatego kierownictwo nie chce, aby im mówiono.
davnicwil
2019-07-23 00:44:22 UTC
view on stackexchange narkive permalink

Wrobisz to w niewłaściwy sposób i podchodzisz do tego w niewłaściwy sposób.

Fakt, że masz rzeczywiste doświadczenie ze złymi praktykami i szkodami, jakie wyrządzają, jest dobrą rzeczą . Widzieliście to, nauczyliście się na tym i wiecie, że lepiej nie pomijać tych wszystkich praktyk, które „ spowalniają Cię ” i „ powstrzymują Cię przed załatwianiem spraw ” .

Co więcej, w swoim czasie wyciągnąłeś rękę i przeczytałeś wszystko, co możesz o tych praktykach, wdrożyłeś je w pobocznych projektach i możesz rozmawiać, dopóki ludzie się nie znudzą, słuchając wszystkiego o korzyściach z nich wnosić do dowolnego projektu i czy wnosić do konkretnego projektu obecnego miejsca pracy - prawda?

Obecność wystawiona na złe praktyki (ważne - nie przestrzeganie ich - ponieważ nie jest to Twój wybór) jako doświadczenie oraz Twoja wiedza na temat lepszych praktyk i ich wartości jako czegoś, co dowiedziałem się z tego doświadczenia.

Nie tylko nie spowoduje to żadnych ostrzeżeń dla ankietera, ale prawdopodobnie będzie lepsze niż ktoś, kto miał tylko doświadczenie z dobrymi praktykami, ale po prostu wziął je za pewnik i może nie mieć nic szczególnie interesującego do powiedz o nich (Co, to? Jasne, tak właśnie robią wszyscy, prawda?).

Nie mogę się z tym bardziej zgodzić.Zawsze jestem pod wrażeniem kogoś, kto wie o właściwych praktykach, mimo że znajduje się w zniechęcającym środowisku.To pokazuje, że jest zmotywowany, ciekawy, pełen pasji.A tacy ludzie po prostu rozkwitają w zachęcającym środowisku.
Zgadzam się, jako ankieter uważam za pozytywne, jeśli kandydat mówi mi, że nie jest zadowolony ze sposobu, w jaki rzemiosło oprogramowania jest wykonywane w ich obecnej pracy.Musisz tylko upewnić się, że ludzie widzą twoją pasję do tego i nie powinno to wyglądać na wybredne lub nieuczciwe.
Tak, odpowiedź na każde takie pytanie brzmi: „jak mogę to sformułować w pozytywny sposób”?
user
2019-07-23 14:19:18 UTC
view on stackexchange narkive permalink

Byłem w takiej sytuacji i sformułowałem ją tak, że zasugerowałem wiele lepszych praktyk, ale nie pozwolono mi ich wdrożyć, co jest jednym z powodów, dla których chcę iść dalej.

To pokazuje zarówno świadomość problemu, jak i sposób jego rozwiązania, a także chęć pracy na wyższym poziomie.

+1, myślę, że to najlepiej podsumowuje.W ten sposób pokazujesz, że jesteś świadomy problemu, próbowałeś go naprawić, a teraz nie możesz go postrzegać jako przeszkody w skutecznym działaniu.
Zgadzam się, że to najlepsze podejście.
Sascha
2019-07-22 11:25:47 UTC
view on stackexchange narkive permalink

Niech odpowiedź brzmi „dlaczego uważam, że firma, z którą rozmawiam, jest świetna i lepsza niż moje obecne miejsce pracy?”.

Ilekroć rozmawiam w innym miejscu, zwykle pytany o to, jak pracuję i jak podchodzę do testowania lub weryfikacji / walidacji.

Zamiast „jak idę” odpowiedz „jak mam zamiar iść”. Stwierdź, że oczywiście tworzenie oprogramowania o rozsądnej jakości jest inwestycją w czas i szkolenia, które czasami nie są uważane za rozsądne ze względu na doświadczenie firmy i typy projektów, ale wolisz pracować w środowisku i nad projektami, w których wykonywane są rzeczy związane z profesjonalnym SW . Jeśli to prawda, powiedz, że taka jest reputacja firmy, z którą rozmawiasz.

Czuję, że gdybym był ankieterą i kandydatem wychowanym, że nic takiego się nie dzieje, byłaby to wielka czerwona flaga i po prostu wyrzuciłbym ich podanie. Jak mam się zabrać do omawiania tego podczas wywiadów?

  • Bez obwiniania poprzedniego pracodawcy lub współpracowników za coś, co poszło nie tak
  • Przedstaw oczekiwanie, że firma, do której aplikujesz, zajmuje się profesjonalnie rozwojem oprogramowania.
  • Gdy zostaniesz o to bezpośrednio poproszony, powiedz wprost i powiedz, że kierownik projektu uznał za rozsądne, aby nie wdrażać takich środków i że wykonałeś przydzielone zadania zgodnie z zapytaniem. Jeśli tak, możesz również powiedzieć, że poinformowałeś o tym PM.
Issel
2019-07-23 02:30:03 UTC
view on stackexchange narkive permalink

Nie wspominaj o swoim obecnym środowisku pracy. Nie ma to nic wspólnego z tym, że pracujesz w miejscu, w którym przeprowadzasz rozmowę kwalifikacyjną.

Kiedy ankieter zadaje te pytania, pyta o proces myślowy, że rozumiesz koncepcje i ćwiczyłeś to wcześniej . Powiedziałbym: „Normalnie lubię robić X, Y i Z” i NIE wspominać, że twoje obecne środowisko pracy nie robi tych rzeczy.

Jeśli osoba przeprowadzająca rozmowę NAPRAWDĘ naciska na to, jak działa Twoja praca, powiedziałbym: „Cóż, lubię to robić w ten sposób, ale moje obecne środowisko pracy nie korzysta z najlepszych praktyk. główne powody, dla których szukam nowej pracy. ”

„Preferuję ” to całkowicie rozsądny sposób na zakomunikowanie, że lubisz dobre praktyki.Jeśli nie zwrócisz na to uwagi (np. Podkreślając „preferencje”), ankieter prawdopodobnie przejdzie do następnego pytania.
Dmitry Grigoryev
2019-07-23 11:48:09 UTC
view on stackexchange narkive permalink

Zwykle jestem pytany o to, jak pracuję i jak podchodzę do testowania lub weryfikacji / walidacji

Opisanie twoich obecnych praktyk pracy rzeczywiście podniesie czerwoną flagę. Chodzi o to, że naprawdę brakuje ci umiejętności, których poszukuje większość firm. Czytanie o TDD / Git / Cokolwiek i budowanie projektu zabawki w wolnym czasie przy jego użyciu to jedno. Korzystanie z TDD / Git / Cokolwiek w twojej pracy przez ostatnie X lat to coś innego.

Realistycznie powinieneś spróbować znaleźć nową pracę w firmie z rozsądnymi praktykami pracy, która chciałaby, żebyś na pokładzie, zdobądź tam kilka lat doświadczenia, a następnie aplikuj do firmy, w której chciałbyś pracować .

Możesz spróbować rozwinąć pewne umiejętności w samodzielnie, wykonując projekty OSS w wolnym czasie, ale pamiętaj, że muszą one być naprawdę dobre. Wielu programistów stosuje w pracy dobre praktyki kodowania i ma teraz coś na Githubie, więc będziesz musiał konkurować z tymi ludźmi, kiedy aplikujesz.

WGroleau
2019-07-22 19:38:50 UTC
view on stackexchange narkive permalink

Spróbuj wyrazić zanim pojawi się takie pytanie, że chciałbyś przejść z ryzykownej sytuacji do firmy, która stosuje bardziej efektywne praktyki.

Możesz wyrazić zainteresowanie skuteczniejszym wykorzystaniem tych praktyk, nie dając się zwieść temu, jak źle wygląda sytuacja w obecnej organizacji.
Lawnmower Man
2019-07-25 08:06:11 UTC
view on stackexchange narkive permalink

Jeśli chcesz przećwiczyć zasady, które uważasz za lepsze, aby zdobyć z nimi doświadczenie, zdecydowanie polecam znalezienie interesującego Cię projektu Open Source i wniesienie wkładu. Nie tylko będziesz mógł ćwiczyć lepsze praktyki inżynierskie i na własne oczy być świadkiem ich wyższości, ale także będziesz mieć na coś do powiedzenia podczas rozmowy kwalifikacyjnej.

Oczywiście projekty prywatne również działają dobrze, ale brak korzyści z przebywania w zespole innych inżynierów, którzy przekazują opinie i przedstawiają różne perspektywy.

Smiling Shadow
2019-07-25 21:36:00 UTC
view on stackexchange narkive permalink

Szczera odpowiedź od faceta, który spędził 20 lat na projektowaniu i wdrażaniu przemysłowych systemów oprogramowania VLS z setkami tysięcy do milionów linii kodu, tysiącami stóp kwadratowych diagramów UML i dziesiątkami tysięcy stron dokumentacji, w tym przypadków testowych zgodnie ze ścisłymi wytycznymi FDA dla przemysłu farmaceutycznego dotyczącymi tworzenia systemu oprogramowania UHA (Ultra-High-Availability) 9 na 9 (oczekiwany niezawodny czas działania 99,9999999%)?

Chyba że ubiegasz się o zarządzanie projektem oprogramowania stanowisko - nic z tego nie ma znaczenia. Po prostu pokaż mi, że jesteś dobrym inżynierem oprogramowania, który potrafi napisać dobry działający kod i wystarczająco inteligentny, aby szybko nauczyć się NASZYCH „najlepszych praktyk” - i jesteś gotowy.

Prawdziwy talent do projektowania i pisania oprogramowania to coś naprawdę wyjątkowy - biurokracja i struktura korporacyjna (w tym standardy komunikacji i dokumentacji) różnią się w zależności od firmy i nie są tak trudne do nauczenia. Zwłaszcza, że ​​nie jesteś zatrudniony do implementacji lub kierowania tą strukturą, tylko po to, by ją śledzić.

Post Scriptum

Komentarze w nowoczesnym kodzie SĄ stratą czasu. Powinieneś napisać samokomentujący kod, taki jak

public CapsuleOrder GetOrderByPoNumber (String PoNumber) {}

Cała reszta powinna znajdować się w systemie dokumentacji ACTUAL.



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...