Właśnie zadzwoniłem do firmy na stanowisko absolwenta programisty i otrzymałem następujące pytania. Powinienem dodać, że zainteresowana firma nie jest sprzedawcą baz danych.
Jak działa optymalizator zapytań?
Jeśli baza danych działała źle, to jak wykorzystać dzienniki wydajności, aby znaleźć problem.
Zapytałem, czy zadają takie pytania wszystkim kandydującym programistom (absolwentom lub doświadczonym) podczas pierwszej rozmowy telefonicznej. Odpowiedzieli, że lubią testować wiedzę swoich kandydatów na temat tworzenia baz danych.
Chcę napisać do firmy, że te pytania są nierozsądne, aby zadać pytanie podczas wywiadu dla programisty i poprosić o zakończenie mojego wywiadu.
Chciałbym sprawdzić zasadność następujących założeń
a) Te pytania nie mogą być rzetelnie zaklasyfikowane jako pytania dotyczące rozwoju bazy danych.
b) Myślę, że pytania są odpowiednie dla wywiadu DBA, ale całkowicie nierozsądne w przypadku wywiadu dla programistów (doświadczonego lub nie).
c) Pierwsze pytanie dotyczy tylko dostawcy bazy danych.
d) Drugie pytanie jest niesprawiedliwe, ponieważ programiści zwykle nie zajmują się dziennikami wydajności bazy danych, ponieważ jest to zadanie DBA.
Być może niektórzy z was będą na tyle uprzejmi, aby skomentować moje założenia lub mieć inne sugestie, zanim napiszę do firmy.
Odpowiedzi:
Gdybym był ankieterem (którym czasami jestem) i otrzymał list od kandydata, który skarżył się, że pytania były niesprawiedliwe i chcieli przełączyć, dziękuję moim szczęśliwym gwiazdom, że uniknęliśmy tej kuli i natychmiast przenoszę aplikację do stos „odrzucenia”. Postępowanie w ten sposób pokazuje tylko, że jesteś osobą narzekającą, a nie posiadasz postawy „można zrobić”, której się szuka.
za. pytania były uzasadnione, aby zadać pytanie dotyczące rozwoju bazy danych.
b. fałszywe. Wszystko, co ma związek z tworzeniem oprogramowania, to uczciwa gra, o którą należy zapytać. Pamiętaj, że otrzymanie błędnej odpowiedzi nie dyskwalifikuje Cię automatycznie na stanowisko (lub inne stanowiska w firmie); może to po prostu pomóc w sklasyfikowaniu cię jako kogoś, kto nie byłby najlepiej przystosowany do pracy z bazą danych.
do. fałszywe.
re. fałszywe. Przede wszystkim może nie być dedykowanego DBA; po drugie, twórca oprogramowania musi zdawać sobie sprawę z szerokiej gamy problemów, które mogą mieć wpływ na wydajność (i dokładność), i mieć przynajmniej dobre zrozumienie zarządzania bazą danych.
Weź to jako lekcję, że są rzeczy, których jeszcze nie znasz. Teraz wiesz, co uczyć się następnym razem.
źródło
Myślę, że to uczciwe pytanie (i brzmi jak pytanie, które Google prawdopodobnie zadaje). :) Wydaje się, że sedno pytania NIE polega na prawdziwym przetestowaniu szczegółowej wiedzy na temat zapytań do bazy danych i tym podobnych, ale na sprawdzeniu, jak podejść i rozwiązać problem. Umiejętność wykonania zadania, które już wykonałeś, jest konieczna, ale umiejętność samodzielnego myślenia i podejścia do nowego problemu jest bardzo ważna.
Kiedy pojawia się takie pytanie, jeśli brakuje mi konkretnej wiedzy o danej bazie danych, myślę, że zaczyna się uczciwa odpowiedź: „Cóż, nie mam dużego doświadczenia z tą technologią, ale ogólnie przeglądałem dzienniki wydajności, aby znaleźć operacje, które są wykonywane najczęściej, i próbowałem uszeregować je według czasu przetwarzania. W ten sposób mogłem ocenić, które operacje są najdroższe i mogą być dobrymi kandydatami do optymalizacji ”.
Na powyższą odpowiedź nie potrzebujesz żadnej wiedzy technicznej, ale pokazuje to Twojemu ankieterowi, że jesteś gotowy rozwiązać nowy problem.
źródło
Jeśli nie jest to sprawiedliwe czy nie fair, zatrudniają, więc ustalają zasady i mogą pytać, co chcą (ok nie wszystko, ale prawie wszystko;))
A jeśli nadal chcesz tę pracę, nie sądzę, że zrobisz sobie przysługę, jeśli ją napiszesz.
źródło
Bardzo częstą strategią w rozmowach kwalifikacyjnych jest zadawanie pytań, które wykraczają poza stanowisko, na które przeprowadzane są rozmowy, i sprawdzanie, jak kandydat się zmienia. Na zadane pytania można oczekiwać, że odpowiesz na coś takiego:
Lub nawet:
Zasadniczo spodziewałbym się, że kandydaci na poziomie podstawowym będą mieli przynajmniej podstawową wiedzę na temat działania baz danych, a także postawy „nie wiem, ale spróbuję się nauczyć”.
Gdybyś podjął uczciwą próbę i natychmiast zakończył rozmowę telefoniczną, miałbyś prawdziwy powód, aby czuć się ciężko, ale to prawda, powiem, że powinieneś nauczyć się, jak wyglądać na pewnego siebie, przyznając, że nic nie wiesz.
źródło
Znam ankieterów, którzy nie uważają rozmowy za zakończoną, chyba że znajdą jakieś pytania techniczne, na które kandydat nie potrafi odpowiedzieć. Celem jest sprawdzenie, jak kandydat radzi sobie z tego rodzaju pytaniami.
Przyznajesz, że nie wiedzą? Dobrze. Tworzysz spin / BS na odpowiedź? Drzwi.
źródło
IMO, programista i role DBA nie są dobrze podzielone na kategorie w wielu firmach. Zasadniczo musisz wiedzieć przynajmniej niektóre części baz danych, jeśli jesteś programistą. Tak więc pytania wydają mi się sprawiedliwe, pod warunkiem, że nie są proszone o odświeżenie.
źródło
Myślę, że to jest sprawiedliwe. Nie pracuję u dostawcy bazy danych, ale wiedza na temat czytania planów zapytań (w mniejszym stopniu dzienników wydajności) jest BARDZO ważna. Dobrze jest także wiedzieć, jak działa optymalizator zapytań.
W odpowiedzi na twoje pociski:
a) tak ? Pewnie, że są one związane z tworzeniem baz danych, a jeśli piszesz kod, a Twój program musi wyszukiwać dane, to jest to istotne.
b) Niezupełnie. DBA lepiej zna odpowiedzi, ale dobry programista też powinien znać odpowiedź. Nie spodziewałbym się tak bardzo szczegółowej odpowiedzi jak od DBA, ale oczekiwałbym czegoś. A jeśli programista nie wie, mogę po prostu przyjąć jako odpowiedź „Poprosiłbym DBA, żeby mnie nauczył”, jeśli programista byłby stosunkowo nowy w pracy z bazami danych.
c) Nie, nie jest. Jest to istotne dla każdego, kto jest zaniepokojony wydajnością zapytań do bazy danych. Jeśli nie zależy ci na szybkości uruchamiania zapytań, możesz to zignorować. Z drugiej strony Twoi klienci, którzy mają coraz gorszą wydajność na swoich stronach internetowych, mogą się nie zgadzać.
d) Może Nie wszyscy programiści widzą dzienniki wydajności, ale jeśli wystąpi problem, możesz spodziewać się, że DBA prześle Ci odpowiednie części i wyjaśni problem, jeśli nie wiesz, jak go interpretować. Przynajmniej programista powinien być w stanie spojrzeć na plan zapytań i zobaczyć podstawowe problemy (pełne skanowanie tabeli => złe, szybkie skanowanie indeksu => dobre).
Ponieważ jesteś świeżo po szkole i być może nie omawiałeś tego w swoich klasach, możesz odpowiedzieć mówiąc: „Porozmawiam z bardziej zaawansowanym deweloperem lub DBA i poproszę o pomoc w zrozumieniu tego”. Ankieterzy mogą to zaakceptować, ponieważ pokazuje to przynajmniej, że jesteś gotów uczyć się nowych rzeczy, ponieważ nie masz jeszcze doświadczenia, aby je znaleźć. Inną opcją jest samodzielne nauczenie się ich.
Powodzenia w kolejnym wywiadzie!
źródło
Są całkowicie uprawnieni do pytania, czego chcą. Być może nie zajmowałeś się tymi tematami w swoim programie nauczania, ale to nie znaczy, że inni rozmówcy nie mieli lub nie mieli wystarczającego zainteresowania tym tematem, aby wyjść poza program nauczania. Szukają najlepszych. Mam nadzieję, że przynajmniej próbowałeś odpowiedzieć na pytania i nie dostałeś całej obrony. Gdybym był nimi i dostał od ciebie grubiański list, znalazłbyś się na czarnej liście.
źródło
Tworzenie oprogramowania to zawód interdyscyplinarny. Nie sądzę, żebyś miał jakikolwiek przebieg z prośbą o zmianę twojego wywiadu. „Rozsądne” w tym kontekście jest to, czy dana firma wyeliminuje Cię z rozważań tylko na podstawie twojego braku umiejętności DBA. Zadanie pytania jest całkowicie uzasadnione.
Im dalsze postępy w karierze, tym więcej musisz wiedzieć. Jeśli zastanawiasz się, dlaczego programista powinien dbać o optymalizację zapytań, rozważ projekt aplikacji. Nowe projekty często wymagają dyskusji na temat modelowania danych. Doprowadzi to do dyskusji na temat normalizacji, które doprowadzą do prac nad projektowaniem baz danych. Dobre zasady projektowania sprowadzają się do wdrożenia. Złe / nieskuteczne projekty na poziomie architektonicznym mają konsekwencje, które często są drogie do naprawienia.
źródło
Pojęcie „sprawiedliwego” nie ma tutaj znaczenia. To rozmowa kwalifikacyjna.
Nie mogą cię odrzucić na podstawie koloru skóry, religii, pochodzenia etnicznego lub kilku innych podobnych rzeczy. Ale mogą cię odrzucić z jakiegokolwiek innego powodu, równie głupiego jak kolor butów, które nosiłeś na rozmowę. I możesz nigdy nie poznać prawdziwego powodu.
Ważne jest, aby być elastycznym podczas rozmowy kwalifikacyjnej. Rozumiem skłonność do nadmiernej analizy i dość często to robiłem. Ale najlepiej jest zaakceptować to, że życie nie jest sprawiedliwe, i przygotować wystarczająco dużo wywiadów, abyś nie musiał pokładać w nich żadnej nadziei.
źródło
Jak powiedzieli inni, pytania są całkowicie aktualne. Byłoby jednak dziwne, gdyby ankieter zdecydował, czy zatrudnić cię całkowicie na podstawie tych pytań. Może chcieli usłyszeć twój powód na temat przedmiotu, którego możesz nie znać, a to jest ważna technika wywiadu.
Jeśli I został zatrudniania, nie wyklucza cię, jeśli powiedział: „Przykro mi, nie wiem zbyt wiele o optymalizujące zapytania, ale mogę się nauczyć”. I byłoby wykluczyć cię, jeśli zaczął narzekać na pytania, choć.
źródło
Koleś, powiem ci wprost: nie ma mowy o bazach danych jako programista. Każdy projekt, w który do tej pory byłem zaangażowany, zajmował co najmniej połowę czasu na rozwój. Projektowanie DB jest integralną częścią rozwoju oprogramowania i im więcej wiesz, tym lepiej możesz rozwiązać problem. Nie denerwuj się też rodzajem pytań i jego kontekstem jest zbyt wiele. Przez większość czasu pracodawcy chcą tylko sprawdzić, czy jesteś w stanie samodzielnie myśleć o rozwiązaniu problemu lub czy masz pewność, że przynajmniej powiesz coś sensownego na ten temat. Ponieważ jesteś absolwentem, zdają sobie sprawę, że i tak będą musieli spędzać czas na nauczaniu cię tych wszystkich rzeczy, ale chcą wiedzieć, czy będziesz wart tego czasu i wysiłku. Bądź ostry i skromny!
źródło
Jak myślisz, co się stanie, jeśli wyślesz ten list? Czy wyobrażasz sobie, że powie „Hmm, ten kandydat ma rację. Powinniśmy go odzyskać i zadać mu łatwiejsze pytania”? Gwarantuję ci, że nie. W rzeczywistości będą obchodzić list i śmiać się.
Przekrocz swoje poczucie uprawnień. Wychodzisz w prawdziwym świecie.
Jak uważasz, że pytania dotyczące baz danych są niesprawiedliwe? Myślisz, że programiści nie muszą znać baz danych, ale ta firma najwyraźniej wie. Dlatego zadają pytania! Ankieterzy nie zadają pytań po prostu do cholery. Zadają pytania, aby dowiedzieć się, czy znasz rzeczy, których potrzebują. Jeśli nie wiesz, czego potrzebują, to nie jesteś odpowiednią osobą do pracy.
Jeśli nie chcesz się uczyć o bazach danych, to dobrze, ale nie jęcz, jeśli jakaś firma nie chce cię zatrudnić. Nie jesteś winien pracy.
źródło
Jak te niesprawiedliwe pytania? Programiści pracują z bazami danych. Czy nie sądzisz, że powinni oni przynajmniej znać czynniki wpływające na sprawność i szybkość zapytań do bazy danych? Nie każda firma ma wewnętrzne DBA ... a nawet jeśli tak, to nie bierze odpowiedzialności za pisanie skutecznych zapytań od dewelopera.
źródło
Jeśli zadają pytania wszystkim kandydatom, są uczciwi i skończeni.
Nie ważne czy ty że pytania są odpowiednie dla stanowiska, ważne jest tylko to, czy potencjalny pracodawca uważa je za odpowiednie - i jeśli zapytają, to prawdopodobnie tak jest (albo dlatego, że odzwierciedlają wymagane umiejętności, albo dlatego, że znaleźli odpowiedzi, które otrzymują, mówią im ciekawe rzeczy na temat rozmówcy).
Wreszcie wydaje się, że masz jakieś dziwne pomysły na temat granic kompetencji dewelopera - nigdy (o ile pamiętam w 25-letniej karierze) nie pracowałem z dedykowanym DBA ...
źródło
Patrząc na pytania, myślę, że to może być moja firma - zadajemy tego typu pytania KAŻDEMU kandydatowi w ramach rozmowy telefonicznej. Zawsze. Daje nam standard do pracy.
Większość powyższych odpowiedzi podsumowuje to całkiem dobrze ...
a) Chcemy ludzi z dużym doświadczeniem, a nie ludzi, którzy mogą zrobić tylko kilka rzeczy.
b) Pytania są po to, aby pomóc nam zbadać twoją wiedzę, możesz nie znać odpowiedzi w pełni (lub wcale) pytania są punktem wyjścia do poszerzenia wiedzy i doświadczenia.
c) Pamiętaj, że wywiad jest dla naszej korzyści I TWOICH ... z rodzajów pytań, które powinieneś wiedzieć o roli i firmie oraz czy pasujemy do ciebie, a ty do nas ...
d) to praca, jeśli nie przejdziesz rozmowy kwalifikacyjnej, dorośnij, przestań marudzić i spróbuj lepiej podczas następnej rozmowy.
źródło
Wygląda na to, że nie mają DBA, więc chcieli, abyś również wypełnił tę rolę. Jest to typowe dla małych firm.
źródło
Nie widzę w tym absolutnie nic złego. Dlaczego deweloper nie powinien, zwłaszcza jeśli kończy pracę w bazie danych, nie mieć dostępu do takich elementów?
Czy twórca oprogramowania nie powinien wiedzieć o oprogramowaniu optymalizacyjnym ani o dostępie do dzienników zdarzeń aplikacji w celu wykrycia problemu z wydajnością? Jeśli tak, dlaczego nie to samo dla kogoś, kto jest programistą baz danych? Dlaczego nie mogą być jednym w tym samym?
Jeśli przeprowadzałem wywiad z kimś na stanowisko programisty, które również zajmowało się tworzeniem baz danych, masz cholerną rację, upewnię się, że są świadomi nie tylko tego, co robią, ale że mogą zwiększyć wydajność swojego kodu lub istniejący kod jako baza danych może mieć ogromne znaczenie.
Zamiast rozwijać podejście, być może lepszym działaniem byłoby „Nie znam odpowiedzi, ale oto, co bym zrobił, aby ją znaleźć”.
źródło
Jak zauważyli inni, w wywiadzie prawie każde pytanie jest uczciwą grą, o ile nie dotyka jakiegoś obszaru prawnie chronionego (np. Wiek, rasa, seks itp.) I nie jest niczym niezwykłym, że ankieterzy rzucają pytania, aby zobaczyć, jak zareagujesz na pytanie i jak postaraj się znaleźć rozwiązanie tego pytania. Ponadto, ponieważ wydaje się, że jesteś absolwentem, są one nieco ograniczone, jeśli chodzi o to, czy możesz zapytać o twoje doświadczenie zawodowe i jakie problemy rozwiązałeś w środowisku produkcyjnym. Tak więc, jeśli firma wykonuje wiele prac zorientowanych na bazę danych, pytania, które zadają, mogą również odnosić się do tego, na czym stanowiłoby stanowisko, z którym rozmawiasz.
W odniesieniu do twoich założeń:
Może, może nie. Jeśli tworzysz bazę danych, będziesz używać optymalizatora zapytań i od czasu do czasu planujesz, aby upewnić się, że nie ma oczywistych problemów z zapytaniami. Jeśli firma ma administratorów baz danych lub ekspertów, którzy mogliby przejrzeć zapytania, mogliby nie mieć czasu na sprawdzenie wszystkiego, a także nie chcieliby patrzeć na każde źle zakodowane zapytanie. Podobnie, często zdarza się, że programiści są odpowiedzialni za utrzymanie środowiska programistycznego, dołączanie baz danych i zlecanie DBA obsługi strony produkcyjnej.
Prawdopodobnie byłyby odpowiednie na rozmowę z DBA; ale niezależnie od tego są to również tematy, które powinien znać programista, choćby na poziomie umiejętności rozpoznania problemu i samodzielnego wykonania podstawowych czynności rozwiązywania problemów. Jak wspomniałem wcześniej, jeśli firma ma ograniczone zasoby, będzie chciała się upewnić, że nie marnuje czasu ludzi na coś, co może być podstawowym problemem.
Określone szczegóły mogą być specyficzne dla dostawcy, ale ogólne koncepcje można zastosować w dowolnym miejscu, a czasem jest w stanie pokazać, że rozumiesz ogólne koncepcje, czego potrzebujesz. Jeśli nie chcesz zostać uwięziony w jednym stosie programistycznym (np. LAMP ), będziesz musiał być w stanie wykazać podczas wywiadów, że rozumiesz podstawowe koncepcje i swobodnie przechodzisz do różnych stosów programistycznych.
Zasadniczo jest to prawda, ale jeśli częścią twojego zadania jest pisanie oprogramowania dla danej bazy danych, która musi być bardzo responsywna, musisz upewnić się, że dołożyłeś wszelkich starań, aby napisać te zapytania, aby kolega, który jest ekspert w danym obszarze nie jest wciągany przez źle napisane zapytania. Chociaż może nie być konieczne zapoznanie się z dokładniejszymi szczegółami tego, co mówią Ci logi, być może będziesz w stanie zidentyfikować oczywiste problemy.
Mam nadzieję, że wszystko to pomaga!
źródło
To, że jesteś programistą, nie oznacza, że powinieneś znać tylko tematy związane z programistami. Posiadanie szerokiej gamy wiedzy, od zarządzania serwerami po technologie baz danych, jest w rzeczywistości bardzo przydatną umiejętnością jako programista. Nie miałbym problemów z zadawaniem tego rodzaju pytań kandydatom. Jeśli nie zrozumieją ich dobrze, dobrze, to nie wykreśla ich z listy (nie oczekuję, że wszystko wiedzą), ale jeśli potrafią odpowiedzieć, to pokazuje mi, że programista jest czymś więcej niż tylko typowy programista ustawiający umiejętności, a te są rzadką rasą.
źródło
Mam również podobny spór z potencjalnym pracodawcą, który zadał mi pytanie dotyczące pokrywy włazu. Pytam, co ma wspólnego kształt włazu z programowaniem!
źródło
Odpowiedzi formularza Cóż, nie jestem pewien, ale sprawdziłbym to, przechodząc do, i są również dobre. Nikt nie myśli, że wiesz wszystko, ale umiejętność wyszukiwania rzeczy to kluczowa umiejętność
źródło