Po jakimś czasie znów rekrutujemy i sprawdzam testy dla programistów; niektóre z nich są trochę nieaktualne. Jakie są pytania typu FizzBuzz dla programistów stron internetowych i SQL? To nie jest zbyt trywialne, ale nadal można je rozwiązać za pomocą pióra i papieru w ciągu pięciu do dziesięciu minut bez Google?
Zazwyczaj eliminuję około dwóch trzecich lub więcej kandydatów na podstawie CV, a następnie wszystkich oprócz kilku naprawdę dobrych kandydatów podczas godzinnej rozmowy kwalifikacyjnej (która może być prowadzona przez telefon). W tym momencie kandydat pisze test osobowości i ma szansę napisać trochę kodu podobnego do FizzBuzz. Nie próbuję więc wyeliminować grupy kandydatów, ale staram się potwierdzić moją wstępną ocenę, czy kandydat jest zatrudniony i potrafi kodować.
Odpowiedzi:
Widzę FizzBuzz jako test sprawdzający, czy ludzie rzeczywiście wiedzą, co twierdzą w swoim CV. Nie użyłbym tego jako pytania innego niż pytanie, aby odrzucić kandydatów, którzy nie wiedzą o czym mówią.
Odpowiednim zamiennikiem SQL byłoby po prostu poproszenie kandydata o napisanie instrukcji SQL, na przykład wybranie pól Nazwa dwóch połączonych tabel, które zaczynają się na A. Jest to proste i pokazuje, że kandydat faktycznie ma pewną wiedzę na temat SQL.
Dla programistów internetowych po prostu zapytam ich o FizzBuzz. To, że programujesz dla Internetu, nie oznacza, że powinieneś nie mieć umiejętności wykonywania podstawowej logiki programowania
Jeśli szukasz rzeczywistych pytań do rozmowy kwalifikacyjnej, w Internecie znajdziesz wiele dobrych pytań, które można szybko znaleźć. Znalazłem więcej niż mi zależy na liście, biorąc 10 sekund z Google.
źródło
Oto odpowiedź, której udzieliłem na bardzo podobne (być może duplikat) pytanie, które zostało zamknięte na tej stronie.
Niezwykle łatwy poziom: Biorąc pod uwagę tabelę pracowników z kolumnami EmpID, Imię, Nazwisko, HireDate i TerminationDate: Napisz zapytanie, aby zwrócić wszystkich pracowników nadal pracujących dla firmy o nazwiskach zaczynających się od „Smith” posortowanych według nazwiska, a następnie imienia.
Łatwy poziom Biorąc pod uwagę powyższą tabelę pracowników oraz nową tabelę „Przegląd roczny” z kolumnami EmpID i Data przeglądu: Napisz zapytanie, aby zwrócić wszystkich pracowników, którzy nigdy nie mieli oceny posortowanej według HireDate.
Poziom średni
Biorąc pod uwagę powyższą tabelę pracowników, napisz zapytanie, aby obliczyć różnicę (w dniach) między najbardziej i najmniej zatrudnionym pracownikiem nadal pracującym dla firmy?
Poziom trudny Biorąc pod uwagę powyższą tabelę pracowników, napisz zapytanie, aby obliczyć najdłuższy okres (w dniach), jaki firma przeszła bez zatrudniania lub zwalniania z pracy.
Trudniejszy poziom
Ponownie, używając tych samych tabel, napisz zapytanie, które zwraca każdego pracownika, a dla każdego wiersza / pracownika należy podać największą liczbę pracowników, którzy pracowali dla firmy w dowolnym momencie ich kadencji oraz datę pierwszego osiągnięcia maksymalnego. Dodatkowe punkty za nieużywanie kursorów.
źródło
Co powiesz na sam fizzbuzz? Oto wersja Oracle:
źródło
Uważam, że ludzie mają z jakiegoś powodu wiele problemów z pracą z czasem, więc może to być dobre miejsce na przetestowanie.
Coś takiego:
Część 1: Utwórz funkcję, która obliczy N-ty lub ostatni dzień tygodnia w danym miesiącu - tj. pierwszy, trzeci, ostatni wtorek w przyszłym miesiącu.
Część 2 (w razie potrzeby): Tabele tabel do przechowywania wyrażeń czasowych dla zestawień cyklicznych. Harmonogramami może być dowolny z „N-tego dnia tygodnia jednego lub więcej miesięcy” lub „N-tego dnia jednego lub więcej miesięcy” lub „co N dni od daty”.
Przykład: 15 każdego miesiąca, ostatnia środa każdego marca, ostatni dzień każdego miesiąca, co 17 dni od 2 grudnia 2008 roku itp.
źródło