Nejlepší odpověď
Při přípravě na pohovor pro všechny zkušené kandidáty je povinný návrh systému. Návrh systému znamená škálovatelné problémy s návrhem systému (jako Uber, Facebook Newsfeed, webcrawler design atd.). Jak vidíte ve všech těchto systémech mají přístup miliardy uživatelů. Společnosti také chtějí inženýra, který dokáže navrhnout systém, který dokáže zpracovat miliony požadavků najednou a systém by měl být vždy robustní s velmi nízkou latencí. Obecně bude příprava designu systému trvat 2 měsíce, pokud jste úplný začátečník. Ale ano, musíte se vynaložit značné úsilí, abyste se to naučili.
Než půjdeme dále, dovolte mi, abych vám poskytl věrnou představu o tom, jak systémový rozhovor vypadá.
Kolo návrhu systému by mělo vždy začněte
- Podrobnou diskusí o požadavcích a o tom, co všechno náš systém podporuje a které vše můžeme ignorovat
- Po požadavku je lepší dát tazatel nestranný názor na odhad, kolik lidí bude systém používat
- Diskutovat o API (REST API) Zapojit se do systému, přes který uživatel přistupuje k naší službě
- Zkuste nakreslit End to end the flow of High-level Design of the design
- Think and come up with system components includes in the system and also the flow between the system components
- Na konci, přijít s nízkoúrovňovým designem systému
Je velmi důležité vést zdravou diskusi s tazatelem a pokusit se mu pomoci ile řešení problému. Bude to dobrý dojem, že kandidáti jsou také dobrým týmovým hráčem . I když znáte řešení Nikdy nezačněte řešit problém s designem, aniž byste o tom diskutovali s tazatelem. Tazatel poskytne poctivou představu o požadavku a poskytne vám rady. Pokud se ho pokusíte přímo vyřešit, tazatel si bude myslet, že řešení již znáte, a „to je ono, budete odmítnut .
Než začnete řešit problém na základě návrhu systému, je velmi důležité připravit si základy. Níže uvádíme některá témata pro základy
Při přípravě problému s návrhem systému jsou samozřejmě první věci vaše zkušenost vám pomůže . Protože jste se mohli zapojit do více životních cyklů vývoje projektu, tak vám to pomůže odpovědět během procesu pohovoru.
Ale většina kandidátů nezískala větší pozornost v průmyslu , hlavně proto, že 70–75\% lidí v IT pracuje na projektu údržby, kde potřebují přidat Api a vyvíjet malé komponenty. Takže ucelený obraz o jakémkoli projektu, který nedostali. Pro ty se můžete naučit návrh systému připojením k některým hezkým online kurzům / školení . Tyto zdroje online mi pomáhají s přípravou na rozhovory.
- Návrh systému se můžete naučit v kurzu Logicmojo . Toto je online kurz video přednášek pro přípravu návrhu systému a také pro algoritmy. Tento kurz vám poskytne dobrý přehled o všech komponentách návrhu systému a pokrývá téměř všechny otázky týkající se designu pokládané v rozhovorech. Zahrnuli některé 40+ designových problémů , což je myslím dost dobré.
- Pak máme jeden velmi slavný blog nazvaný Vysoká škálovatelnost . Tyto blogy poskytují u systémových komponent podrobnosti, API a odhady část slavných problémů s návrhem systému. I když pokrývá obrovské podrobnosti systému, musíte také extrahovat užitečné a relevantní podrobnosti.
- Také existuje dobrý online kurz vzdělávací kurz designu grokkingového systému. To je také dobrá sbírka problémů s návrhem systému. Musíte projít celý dokument a přečíst si jej jako své textové zdroje.
Musíte se také zúčastnit všech designových schůzek se děje ve vašem aktuálním projektu v kanceláři, protože na těchto setkáních starší architekt diskutuje o diskusi o designu a nedostatcích ve stávajícím designu systému. To dává férovou představu o tom, jak zvolit design pro jakýkoli systém. Pokuste se také přečíst a porozumět dokumentu návrhu všech minulých projektů. To vám také pomůže během rozhovorů o návrhu systému.
Odpověď
Nenechte se přemoci. Připravte se krok za krokem a rozeberte to během přípravy a udělejte totéž, až budete na skutečném pohovoru. Návrh systémů je složitý – musíte se vypořádat s nestrukturovanou povahou rozhovoru, ale s extra praxí budete připraveni zvládnout vše, co na vás hodí. .
- Pochopte cíle rozhovoru – vyjasnění nejasností je na počátku kritické. Ujistěte se, že víte, co chtějí vědět.
- Stanovení rozsahu – zkuste definovat všechny vlastnosti designu, které vás napadnou podle jejich důležitosti pro uživatele pro poskytnutý scénář.
- Návrh pro správnou stupnici – Stejná sada funkcí vyžaduje velmi odlišný přístup různé váhy. Je důležité určit měřítko, abyste věděli, zda se vaše data vejdou na jeden stroj, nebo zda potřebujete měřítko čtení.
- Spustit na vysoké úrovni , pak se propracujte – začněte pokrývat celý proces na základě cílů, které jste stanovili. To může zahrnovat podrobnosti o různých klientech, API, back-endových službách, offline procesech, síťové architektuře, datových úložištích a o tom, jak se všichni spojili, aby splnili požadavky
- Datové struktury a algoritmy – nezapomeňte zohlednit vaše požadavky na škálování, kde se analýza runtime a složitosti paměti stane praktickým.
Procvičujte si co nejvíce v týdnech před schůzkou na Amazonu. Být konzistentní s přípravou na pohovor a naplánovat si jej na týdenní rutinu v týdnech před vaším pohovorem bude největší pomoc při vytváření určitě jste připraveni. Kvalitnější praxe je také důležitější než kvantita. Ujistěte se, že vás během vašich relací nerozptyluje pozornost a soustředíte se na problémy, které máte k dispozici, a pracujete na věcech, které jsou pro vás náročné. Pokud procvičujete pouze jednoduché věci, čeká vás během skutečného pohovoru nepříjemná překvapení a stres.
Skvělým způsobem, jak zlepšit své dovednosti při pohovoru, jsou falešné pohovory. Zkušenosti si zvyknou na to, jaké to bude, když se setkáte s náborovým manažerem. Nejprve si vyzkoušejte Pramp , platformu falešných rozhovorů typu peer-to-peer.
Pramp nabízí uživatelům falešnou praxi při navrhování systémů. pracovat s vrstevníkem. Společně budete vykonávat roli tazatele i dotazovaného, abyste se mohli poučit také z jejich silných a slabých stránek. Je prospěšné sledovat někoho jiného, jak dokončí rozhovor s návrhem systému, a dívat se na to z pohledu tazatele. Po zkušenostech také obdržíte zpětnou vazbu, pomocí které můžete zjistit, na kterých komponentách musíte pracovat, než se setkáte s náborovým manažerem v Amazonu.