Příprava na pohovor do Microsoftu s LeetCode

Autor: Aaron Cao · Aktualizováno

Příprava na pohovor do Microsoftu s LeetCode
LeetCode pokryje mechaniku programátorských kol v Microsoftu, ale ne samotné kolo. Úlohy spadají většinou do středně těžké úrovně a pohovor hodnotí, jak nahlas popisujete postup, jak vstřebáváte doplňující omezení a jak se přizpůsobujete – nic z toho samostatné drilování nenacvičí.

LeetCode pokryje mechaniku programátorských kol v Microsoftu, ale ne samotné kolo. Úlohy spadají většinou do středně těžké úrovně a pohovor hodnotí, jak nahlas popisujete postup, jak vstřebáváte doplňující omezení a jak se přizpůsobujete – nic z toho samostatné drilování nenacvičí.

Připraví vás drilování LeetCode opravdu?

Pravděpodobně jste narazili na radu vyřešit před podáním přihlášky několik set úloh a chcete vědět, jestli to číslo něco znamená. Tato část odděluje to, co LeetCode skutečně trénuje, od toho, co nechává stranou, abyste čas investovali tam, kde se vyplatí. Zkráceně: buduje si potřebnou rutinu, ale vynechává výkon, za který jste na pohovoru hodnoceni.

To, co trénuje dobře, je reálné. Rozpoznat, jakou datovou strukturu úloha vyžaduje, napsat správný kód bez kompilátoru před sebou a znát složitost toho, co jste právě napsali – to všechno je nutné, a opakování je způsob, jak se to stane automatickým.

Co vynechává, je všechno sociální. Nikdo nepřeruší vaše řešení otázkou, proč jste zvolili hashovací mapu. Nikdo v polovině nepřidá omezení a nesleduje, jak zareagujete. Nikdy nemusíte nahlas vyslovit špatný nápad a pak ho opravit, zatímco vás poslouchá cizí člověk. Přesně tohle má kolo pohovoru v Microsoftu za úkol sledovat.

Jaké vzory se objevují v programátorských kolech Microsoftu?

Na pokrytí záleží víc než na objemu a opakující se vzory tvoří krátký seznam:

  • Dva ukazatele a posuvné okno. U polí a řetězců, často s požadavkem na řešení na místě (in-place).
  • Hashovací mapy. Obtížnost spočívá ve výběru klíče, ne ve vyhledávání samotném.
  • Průchod stromem. Do hloubky i do šířky, součty na cestě, nejnižší společný předek.
  • Prohledávání grafu. Úlohy s mřížkou, souvislé komponenty, nejkratší cesta v neohodnoceném grafu.
  • Spojové seznamy. Obrácení pořadí, sloučení a detekce cyklu.
  • Přístupné dynamické programování. Jednorozměrný stav, rodina úloh typu výměna mincí a schody.

Užitečný test, kdy přestat: náhodně vyberte vyřešenou úlohu a nahlas vysvětlete, proč se daný vzor hodí a co by pokazilo alternativní řešení. Pokud to zvládnete napříč celým výše uvedeným seznamem, další objem už moc nepřidá. Kola pohovorů v jiných firmách jsou rozebraná v centru témat o pohovorech ve firmách.

Čím se pohovor liší od sezení s LeetCode?

Čtyři rozdíly mění to, jak byste měli trénovat. Mluvíte dřív, než píšete, protože tazatelé očekávají popis postupu a odhad složitosti ještě předtím, než se objeví kód. Omezení přicházejí v polovině úlohy a doplňující otázka je tou skutečnou. Neexistuje tlačítko pro odeslání, takže o krajních případech uvažujete sami, místo abyste četli chybové hlášení. A celé se to odehrává na Microsoft Teams, obvykle ve sdíleném editoru, zatímco vás někdo sleduje.

Uchazeč připravující se na pozici střední úrovně měl za sebou přes dvě stě vyřešených úloh, a přesto v kole selhával. Nahrávka tréninkového sezení ukázala příčinu: jedenáct minut ticha před prvním řádkem kódu. Řešením nebylo víc úloh, ale vyřešit tři z těch, které už měl za sebou, a přitom nahlas komentovat každé rozhodnutí.

Takový časovaný nácvik mluveného projevu proti AI tazateli funguje na stránce nácvičného pohovoru.

Jak zmenšit propast mezi řešením a vysvětlováním

Poslední úsek přípravy proměňte v nácvik výkonu. Znovu řešte známé úlohy nahlas na čas, popište postup ještě před psaním a přinuťte se uvést složitost bez vyzvání. Nahrajte si sezení a poslouchejte ticha – to je totiž to, co zažívá tazatel.

SubcueAI je navržený pro mluvená kola pohovoru, nikoli pro programátorské kolo. Nativní aplikace pro macOS a Windows zachytává zvuk systému i váš mikrofon a zobrazuje návrhy v plovoucím lokálním překrytí; postranní panel rozšíření prohlížeče poskytuje živou asistenci pro kartu se schůzkou v prohlížečích na bázi Chromium a zachytává zvuk pouze z této karty. Do hovoru nevstupuje žádný meeting bot a do stránky schůzky se nic nevkládá.

Stojí za to jasně říct, kde je hranice. Programátorské kolo v Microsoftu obvykle znamená sdílení obrazovky a cokoliv je na vaší obrazovce, je součástí tohoto sdílení. Asistent se hodí na rozhovor s náborářem, behaviorální kola a diskusi o návrhu. Co v těchto kolech zachytává a ukládá, najdete na stránce zabezpečení.

Časté dotazy

Kolik úloh na LeetCode bych měl vyřešit pro Microsoft?

Neexistuje ověřené číslo a počítání je špatný cíl. Pokryjte opakující se vzory, dokud nedokážete vysvětlit, proč se každý z nich hodí, a zbylý čas věnujte řešení nahlas na čas.

Ptá se Microsoft na úlohy z nejtěžší úrovně LeetCode?

Nahlášené úlohy se soustředí do středně těžké úrovně. Těžká úloha se objeví jen občas, obvykle s výraznými nápovědami od tazatele, protože kolo měří spolupráci, ne to, jestli jste danou hádanku už viděli.

Používají tazatelé v Microsoftu úlohy z LeetCode přímo?

Tazatelé si vybírají vlastní úlohy a mnozí používají spíš obměny než úlohu doslovně převzatou ze seznamu. Přenositelné je rozpoznání vzoru. Naučené konkrétní řešení má sklon zhroutit se hned u prvního doplňujícího omezení.

Mohu při programátorském kole v Microsoftu použít AI asistenta?

Ne smysluplně. Programátorské kolo probíhá se sdílenou obrazovkou na Microsoft Teams, takže lokální překrytí je součástí toho, co tazatel vidí. Hodí se pro mluvená kola, kde se nic nesdílí.

Související otázky

← Více o Pohovory ve velkých firmách