
W zeszłym roku ostatnie kilka miesięcy poświęciłem na przygotowanie do rozmowy kwalifikacyjnej na staż w Google (Google Internship). Poszło dobrze: zdobyłem pracę i cenne doświadczenie.
Teraz, dwa miesiące po stażu, chcę podzielić się dokumentem, który wykorzystałem do przygotowań do rozmów kwalifikacyjnych. Było to dla mnie coś w rodzaju ściągi przed egzaminem. Proces tworzenia dokumentu oraz jego ciągłe sprawdzanie krok po kroku pomogły mi zapamiętać to, co najważniejsze.
Jestem przekonany, że każdy może z powodzeniem przejść rozmowę kwalifikacyjną w dużych firmach technologicznych, wystarczy poświęcić trochę czasu na zrozumienie, jak te rozmowy są prowadzone i się do nich przygotować.
Moja ściąga wystarczy, aby przygotować się do każdej technicznej rozmowy kwalifikacyjnej, niezależnie od tego, czy to Google, startup, czy pierwsza staż. Pomoże poczuć się pewniej zarówno podczas przygotowań, jak i w trakcie rozmowy.
Zalecamy darmowe intensywne kursy programowania dla początkujących:
— 8–10 sierpnia;
— 12–14 sierpnia;
— 15–17 sierpnia
Ściąga do technicznego wywiadu
Strony
Na tym portalu możesz praktykować przeprowadzanie rozmów kwalifikacyjnych. Uczestnicy na zmianę przeprowadzają wywiady i mogą korzystać ze wspólnego edytora kodu. Na początku takich rozmów może być ci trudno i będziesz czuć się niezręcznie. Jednak im więcej będziesz ćwiczyć, tym pewniej je przejdziesz, a prawdziwa rozmowa kwalifikacyjna wyda ci się prosta.
Dobre pytania z prawdziwych rozmów kwalifikacyjnych w Facebook, Google, Microsoft itd. Polecam korzystać z tej strony wspólnie z zasobami do praktyki kodowania, w tym nauką złożoności algorytmicznej.
Książki
”. Sam jednak wybiórczo czytałem jedynie niektóre jej części. Warto jednak zaznaczyć, że w swoich szkolnych latach rozwiązywałem wiele algorytmicznych zadań. Osobom, które nie miały takiego doświadczenia, i tak warto przynajmniej przejrzeć tę książkę.
Moje ulubione części: Tabela przygotowania do wywiadu (str. 32), sekcja poświęcona zachowaniu na rozmowie kwalifikacyjnej, a także Pytania do wywiadu: Struktury danych (str. 88–107). Jeśli wcześniej nie spotkałeś się z terminem „złożoność algorytmiczna”, to teraz jest najlepszy czas, książka doskonale wprowadza w tematykę.
A co robić na rozmowie kwalifikacyjnej?
- Nie wyłączaj się z komunikacji i odpowiadaj szczerze. Kiedy zastanawiasz się nad pytaniem, myśl głośno, opisuj tok swoich myśli.
- Dodaj odrobinę humoru do komunikacji, nie bój się żartować. Spróbuj czerpać przyjemność z rozmowy.
- Zapisuj ważne informacje.
- Zadawaj pytania i staraj się wykorzystać to, co dowiedziałeś się od rozmówcy.
Rozmowa kwalifikacyjna krok po kroku
Oto lista kontrolna do przygotowania odpowiedzi na rozmowę kwalifikacyjną. Nie musisz korzystać ze wszystkich punktów, pomiń te, które wydają ci się zbędne. Najważniejsze, aby kierować się zdrowym rozsądkiem. Nawet jeśli nie dotrzesz do samego końca listy, nic złego się nie stanie.
- Przeczytaj pytanie.
- Przeanalizuj wszystkie dane, zarówno wejściowe, jak i wyjściowe, i zwróć uwagę na efekty uboczne.
- Wyjaśnij istotę zadania i przedstaw swoje przypuszczenia, aby rozmówca zrozumiał tok twojego myślenia. Na przykład, jakie będą ilości danych i kto będzie użytkownikiem.
- Zdobądź przykład i przedstaw go rozmówcy, aby upewnić się, że dobrze rozumiesz zadanie. Nie bój się poświęcić czasu na zrozumienie warunków zadania. Im lepiej je pojmiesz, tym szybciej znajdziesz optymalne rozwiązanie.
- Opracuj algorytm. Postaraj się rozwiązać podobne, ale mniej skomplikowane zadanie. Zapisuj myśli, analizuj w szkicu przykłady.
- Przejdź przez swój algorytm z przykładami, aby upewnić się, że kod działa poprawnie. Sprawdź wszystkie krytyczne i graniczne przypadki.
- Oceń złożoność algorytmu zarówno pod względem czasowym, jak i pamięciowym.
- Jeśli udało ci się wymyślić bardziej efektywne rozwiązanie problemu, wróć do punktu 4.
- Napisz rozwiązanie, używając wybranego algorytmu. Podziel problem na kilka metod, jeśli to możliwe w danym przypadku.
- Sprawdź kod pod kątem błędów.
- Pomyśl, jak implementacja algorytmu radzi sobie z krytycznymi i granicznymi przypadkami.
- Sprawdź implementację na przykładzie, przeglądając kod pod kątem błędów.
- Gdy upewnisz się, że kod działa poprawnie, sprawdź jego czystość i styl.
To wszystko!
Źródło: habr.com
