Pytania na rozmowie kwalifikacyjnej z Pythona

Autor: Aaron Cao · Zaktualizowano

Spodziewaj się trzech warstw: mechaniki języka, takiej jak mutowalność, generatory i dekoratory; zachowania w czasie działania, takiego jak GIL; oraz zastosowanego programowania na strukturach danych. Większość odrzuceń wynika z powierzchownego wyjaśnienia dlaczego, a nie z błędnej składni.

Pytania, które wciąż wracają

Przerabianie listy dwustu pytań z Pythona wydaje się produktywne, ale rzadko zmienia wynik rozmowy kwalifikacyjnej. Ta sekcja zawęża pole do garstki pytań, które powracają zarówno w rozmowach telefonicznych, jak i rundach technicznych, i pokazuje, co zawiera mocna odpowiedź. Niewielka liczba funkcji języka niesie większość sygnału.

  • Mutowalne argumenty domyślne. Dlaczego def f(x=[]) gromadzi wartości między wywołaniami? Wartości domyślne są obliczane raz, w momencie definiowania funkcji, a nie przy każdym wywołaniu.
  • Generatory kontra listy. Kiedy yield jest lepszy niż budowanie listy? Gdy sekwencja jest duża, albo gdy możesz przerwać czytanie wcześniej.
  • Dekoratory. Co tak naprawdę zwraca dekorator i dlaczego wrapper potrzebuje functools.wraps?
  • GIL. Dlaczego wątki obciążające CPU nie skalują się w CPythonie i po co sięgasz zamiast nich?
  • Kopia płytka kontra głęboka. Co się psuje, gdy zagnieżdżona struktura jest kopiowana za pomocą slice'a?
  • Tożsamość kontra równość. Dlaczego testowanie is na małych liczbach całkowitych w powłoce daje mylący wynik.

Co odróżnia zdany etap od niezdanego

Dwoje kandydatów może podać tę samą poprawną definicję GIL, a dalej przechodzi tylko jedno z nich. Różnica zwykle tkwi w drugim zdaniu.

Inżynier backendu rekrutujący się na stanowisko L5 u dużego dostawcy chmury publicznej został zapytany, dlaczego ich usługa zwalniała pod obciążeniem. Wymienił GIL, a potem mówił dalej: najgorętszą ścieżką było parsowanie JSON, więc wątki były złym narzędziem, a przeniesienie tego etapu do puli procesów przywróciło przepustowość. Nazwanie ograniczenia dało częściowe punkty. Połączenie go z decyzją wygrało rundę.

Buduj każdą odpowiedź w trzech taktach: co robi funkcja, dlaczego istnieje i kiedy byś jej unikał. Trzeci takt to ten, który większość kandydatów pomija, i to on pokazuje osąd. Inne strony o rundach z kodowania, behawioralnych i projektowania systemów są zgrupowane pod typami rozmów kwalifikacyjnych.

Jak się przygotować bez wkuwania

Czytanie odpowiedzi i mówienie odpowiedzi to różne umiejętności, a testowana jest tylko jedna z nich. Ćwicz na głos, na czas, tymi samymi słowami, których użyłbyś podczas rozmowy.

  • Zapisz swoją odpowiedź na każde powtarzające się pytanie w trzech zdaniach, a potem powiedz ją bez patrzenia.
  • Wybierz dwie funkcje, których używasz codziennie, i przygotuj dla każdej szczere ograniczenie. Umiejętność krytykowania własnych narzędzi czyta się jako doświadczenie.
  • Przynieś jedną prawdziwą historię debugowania, w której zachowanie Pythona cię zaskoczyło i odkryłeś dlaczego.
  • Ćwicz część zastosowaną osobno: słowniki, zbiory, sortowanie z funkcją klucza i obsługa łańcuchów znaków obejmują dużą część rozmów wstępnych.

Jeśli chcesz przeprowadzić rundę na czas z rekruterem AI przed prawdziwą rozmową, znajdziesz ją na stronie mock interview.

Gdzie pasuje asystent na żywo, a gdzie nie

SubcueAI to natywna aplikacja desktopowa na macOS i Windows. Przechwytuje obie strony rozmowy, transkrybuje w czasie rzeczywistym i pokazuje szkielet na pływającej nakładce, która pozostaje lokalnie na twoim komputerze, więc nie dołącza do spotkania jako uczestnik ani bot. W rundzie Pythona przydatny wynik to podpowiedź struktury, a nie gotowa odpowiedź: szczegóły muszą być twoje, ponieważ pytanie uzupełniające będzie dotyczyć kodu, który właśnie opisałeś.

Uczciwe ograniczenia liczą się bardziej niż możliwości. Jeśli udostępniasz ekran, wszystko, co jest na tym ekranie, zostaje udostępnione. Jeśli runda odbywa się na platformie oceniającej z nadzorem, albo na urządzeniu zarządzanym przez firmę, asystent wykracza poza zakres. Konfiguracja i uprawnienia są opisane na stronie tutorial.

FAQ

Czy na rozmowach z Pythona nadal pyta się o GIL?

Tak, i zwykle jako pytanie zastępcze. Rekruter chce wiedzieć, czy potrafisz odróżnić obciążenie związane z CPU od tego związanego z I/O i odpowiednio dobrać wątki, procesy lub async. Sama definicja odpowiada tylko na połowę tego pytania.

Ile ciekawostek o Pythonie powinienem zapamiętać?

Mniej, niż myślisz. Rekruterzy rzadko nagradzają znajomość rzadko używanej składni; nagradzają poprawne rozumowanie o zachowaniach, które potrafisz wyjaśnić. Wybieraj głębię w funkcjach, których naprawdę używasz, zamiast szerokości w funkcjach, których nie używasz.

Czy zadania z kodowania są częścią rozmowy z Pythona?

Zwykle tak. Większość rozmów wstępnych łączy pytania dyskusyjne z małym problemem zastosowanym, często dotyczącym słowników, zbiorów, sortowania lub przetwarzania łańcuchów znaków. Omówienie na głos podejścia przed pisaniem kodu jest oczekiwane, a cisza jest oceniana źle.

Czy powinienem przyznać się, że nie znam odpowiedzi?

Tak, a potem pokaż, jak byś ją znalazł. Powiedzenie, że nie używałeś danej funkcji, i opisanie, jak sprawdziłbyś jej zachowanie, to mocniejsza odpowiedź niż pewna siebie zgadywanka, którą rekruter może natychmiast poprawić.

Czy mogę używać asystenta AI podczas rozmowy z kodowania w Pythonie?

To zależy całkowicie od formatu i zasad, na które się zgodziłeś. Na platformie z nadzorem, przy udostępnionym ekranie albo na urządzeniu zarządzanym przez firmę wykracza to poza zakres. W rundach ćwiczeniowych, które prowadzisz sam, takiego ograniczenia nie ma.

Powiązane pytania

← Więcej o Typy rozmów