Otázky na pohovoru pro Python

Autor: Aaron Cao · Aktualizováno

Očekávejte tři vrstvy: mechaniku jazyka, jako je mutabilita, generátory a dekorátory; chování za běhu, jako je GIL; a aplikované programování na datových strukturách. Většina zamítnutí pochází z povrchních vysvětlení proč, ne ze špatné syntaxe.

Otázky, které se stále vracejí

Projít si seznam dvou set otázek o Pythonu působí produktivně, ale výsledek pohovoru to mění jen zřídka. Tato sekce zužuje pole na hrstku otázek, které se opakují jak v telefonických screeningech, tak v technických kolech, a ukazuje, co obsahuje silná odpověď. Malý počet vlastností jazyka nese většinu signálu.

  • Mutovatelné výchozí argumenty. Proč def f(x=[]) hromadí hodnoty mezi voláními? Výchozí hodnoty se vyhodnocují jednou, když je funkce definována, ne při každém volání.
  • Generátory versus listy. Kdy je yield lepší než sestavování listu? Když je posloupnost velká, nebo když byste mohli přestat číst předčasně.
  • Dekorátory. Co vlastně dekorátor vrací a proč wrapper potřebuje functools.wraps?
  • GIL. Proč se vlákna vázaná na CPU v CPythonu neškálují, a co použijete místo toho?
  • Mělká versus hluboká kopie. Co se rozbije, když je vnořená struktura zkopírována pomocí slice?
  • Identita versus rovnost. Proč testování is na malých celých číslech ve shellu dává zavádějící výsledek.

Co odděluje úspěch od neúspěchu

Dva kandidáti mohou uvést stejnou správnou definici GIL a postoupí jen jeden z nich. Rozdíl bývá zpravidla ve druhé větě.

Backendový inženýr, který dělal pohovor na pozici úrovně L5 u velkého poskytovatele veřejného cloudu, dostal otázku, proč se jejich služba při zátěži zpomalovala. Zmínil GIL a pak pokračoval: nejvytíženější cestou bylo parsování JSON, takže vlákna byla špatný nástroj, a přesun této fáze do process poolu obnovil propustnost. Pojmenování omezení přineslo částečné body. Propojení s rozhodnutím vyhrálo kolo.

Sestavte každou odpověď ve třech taktech: co funkce dělá, proč existuje, a kdy byste se jí vyhnuli. Třetí takt je ten, který většina kandidátů vynechává, a je to ten, který ukazuje úsudek. Další stránky o kolech zaměřených na coding, chování a návrh systémů jsou seskupeny pod typy pohovorů.

Jak se připravit bez biflování

Číst odpověď a říkat odpověď jsou různé dovednosti a testuje se jen jedna z nich. Nacvičujte nahlas, na čas, stejnými slovy, jaká byste použili během hovoru.

  • Napište si odpověď na každou opakující se otázku jako tři věty, pak ji řekněte, aniž byste se dívali.
  • Vyberte dvě funkce, které používáte denně, a připravte pro každou upřímné omezení. Schopnost kritizovat vlastní nástroje působí jako zkušenost.
  • Přineste jeden skutečný příběh o ladění, kde vás chování Pythonu překvapilo a vy jste zjistili proč.
  • Aplikovanou polovinu procvičujte zvlášť: slovníky, množiny, řazení pomocí key funkce a práce s řetězci pokrývají velkou část screeningů.

Pokud chcete časované kolo proti AI tazateli před tím skutečným, najdete ho na stránce mock interview.

Kde se hodí živý asistent, a kde ne

SubcueAI je nativní desktopová aplikace pro macOS a Windows. Zachycuje obě strany hovoru, přepisuje v reálném čase a zobrazuje kostru odpovědi na plovoucím překryvu, který zůstává lokálně na vašem počítači, takže se k schůzce nepřipojuje jako účastník ani bot. U kola zaměřeného na Python je užitečným výstupem výzva ke struktuře, ne hotová odpověď: podrobnosti musí být vaše vlastní, protože navazující otázka se bude týkat kódu, který jste právě popsali.

Upřímné limity jsou důležitější než schopnosti. Pokud sdílíte obrazovku, sdílí se vše, co je na ní. Pokud kolo probíhá na hlídané hodnoticí platformě, nebo na zařízení spravovaném firmou, je asistent mimo rozsah. Nastavení a oprávnění jsou popsány na stránce tutorial.

Časté dotazy

Ptají se na pohovorech pro Python stále na GIL?

Ano, a obvykle jako zástupná otázka. Tazatel chce vědět, jestli dokážete odlišit zátěž vázanou na CPU od zátěže vázané na I/O a podle toho zvolit vlákna, procesy nebo async. Samotná definice odpovídá jen na polovinu otázky.

Kolik znalostí o Pythonu bych si měl pamatovat nazpaměť?

Méně, než si myslíte. Tazatelé jen zřídka odměňují zapamatování si zřídka používané syntaxe; odměňují správné uvažování o chování, které dokážete vysvětlit. Upřednostněte hloubku u funkcí, které skutečně používáte, před šířkou u funkcí, které nepoužíváte.

Jsou součástí pohovoru pro Python i úlohy z kódování?

Obvykle ano. Většina screeningů kombinuje diskuzní otázky s malým aplikovaným problémem, často o slovnících, množinách, řazení nebo práci s řetězci. Nahlas popsat svůj přístup před psaním kódu se očekává a ticho je hodnoceno špatně.

Měl bych přiznat, když neznám odpověď?

Ano, a pak ukázat, jak byste to zjistili. Říct, že jste danou funkci nepoužívali, a popsat, jak byste ověřili její chování, je silnější odpověď než sebejistý odhad, který vám tazatel může okamžitě opravit.

Mohu při pohovoru s kódováním v Pythonu použít AI asistenta?

Záleží zcela na formátu a pravidlech, na kterých jste se dohodli. Na hlídané platformě, se sdílenou obrazovkou, nebo na zařízení spravovaném firmou je to mimo rozsah. Pro tréninková kola, která si vedete sami, žádné takové omezení neexistuje.

Související otázky

← Více o Typy pohovorů