Bedste svar
Systemdesign er obligatorisk at forberede sig til interviews for alle erfarne kandidater. Systemdesign betyder skalerbare systemdesignproblemer (Ligesom Uber, Facebook Newsfeed, design af webcrawler osv.). Som du kan se i alle disse systemer, har milliarder af brugere adgang. Virksomheder vil også have en ingeniør, der kan designe systemet, der kan håndtere millionanmodningen ad gangen , og systemet skal altid være robust med meget lav ventetid. Generelt vil det tage to måneder at forberede systemdesignet, hvis du er en fuldstændig begynder. Men ja, du skal bruge en stor indsats for at lære det.
Inden du går videre, lad mig give dig en god idé om, hvordan systeminterview ser ud
Systemdesignrunde skal altid start med
- En detaljeret diskussion om kravene og hvilke ting, som vores system understøtter, og hvilke ting, vi kan ignorere.
- Efter kravet er det bedre at give interviewer en god idé om skøn over, hvor mange mennesker der vil bruge systemet
- Diskuter API (REST API) Involver i systemet, gennem hvilket bruger får adgang til vores service
- Prøv at tegne Ende til slut strømmen af højt niveau Design af designet
- Tænk og kom med systemkomponenter involveret i systemet og også strømmen mellem systemkomponenterne
- I sidste ende, komme med et lavt niveau design af systemet
Det er meget vigtigt at foretage en sund diskussion med intervieweren og prøv at tage hjælp fra ham / hende ile at løse et problem. Det vil give et godt indtryk af, at kandidaterne også er en god holdspiller . Selvom du kender løsningen, skal du aldrig begynde at løse designproblemet uden at diskutere det med intervieweren. Intervieweren giver en god idé om kravet og giver dig tip. Hvis du direkte prøver at løse det, vil intervieweren tro, at du allerede kender løsningen, og at det er det, du vil blive afvist .
Før du begynder at løse et problem baseret på systemdesign, er det meget vigtigt at forberede det grundlæggende. Nedenfor er nogle af emnerne for det grundlæggende
For at forberede et systemdesignproblem er de første ting naturligvis din oplevelse hjælper dig . Som du måske har været involveret i flere projektudviklings livscyklusser, så det hjælper at svare under interviewprocessen.
Men de fleste af kandidaterne får ikke meget eksponering i branchen hovedsagelig fordi faktum er 70-75\% af IT-folk arbejder på et vedligeholdelsesprojekt, hvor de har brug for at tilføje APIer og udvikle små komponenter. Så slut til slutbillede af ethvert projekt, de ikke fik. For dem kan du lære systemdesign ved at deltage i nogle dejlige Online kurser / træning . Disse online ressourcer hjælper mig med at forberede mig til interviews.
- Du kan lære systemdesign fra Logicmojo Kursus. Dette er onlineforløbet med videoforelæsninger til forberedelse af systemdesign såvel som algoritmer. Dette kursus giver dig et godt indblik i alle systemdesignkomponenterne og dækker næsten alle designspørgsmål, der stilles i Interviews. De har inkluderet nogle 40+ designproblemer hvilket er godt nok synes jeg.
- Så har vi en meget berømt blogs kaldet HighScalability . Disse blogs giver dig detaljerne i systemkomponenterne, API og estimeringer af de berømte systemdesignproblemer. Selvom det dækker enorme detaljer i systemet, men du skal også udtrække de nyttige og relevante detaljer
- Der er også et godt online kursus educative grokking system design kursus. Dette er også en god samling af systemdesignproblemer. Du skal gennemgå det komplette og læse det som dets tekstbaserede ressourcer
Du skal også deltage i alle designmøder sker i dit nuværende projekt på kontoret, fordi i de møder seniorarkitekt diskuterer designdiskussionen og manglerne i det eksisterende design af systemet. Dette giver en god ide om, hvordan man vælger designet til ethvert system. Prøv også at læse og forstå designdokumentet for eventuelle tidligere projekter. Dette hjælper dig også under systemdesigninterviews
Svar
Lad dig ikke blive overvældet. Forbered dig trin for trin, og del det ned under din forberedelse, og gør det samme, når du er i det rigtige interview. Systemdesign er vanskeligt – du skal håndtere den ustrukturerede karakter af interviewet, men med ekstra øvelse er du parat til at håndtere alt, hvad de kaster på dig .
- Forstå målene for interviewet – Det er kritisk at tydeliggøre uklarheder tidligt. Sørg for, at du ved, hvad de vil vide.
- Etabler omfanget – Prøv at definere alle de funktioner i designet, som du tænker på efter deres betydning for brugeren for det medfølgende scenarie.
- Design til den rigtige skala – Det samme funktionssæt kræver en meget anden tilgang til forskellige skalaer. Det er afgørende at bestemme skalaen, så du ved, om dine data kan passe på en maskine, eller om du skal skalere læsningerne.
- Start højt niveau , arbejd dig derefter ned – Start med at dække slut-til-slut-processen baseret på de mål, du har opstillet. Dette kan omfatte detaljer om forskellige klienter, APIer, backend-tjenester, offline-processer, netværksarkitektur, datalagre og hvordan de alle mødes for at opfylde kravene
- Datastrukturer og algoritmer – Glem ikke at tage højde for dine skaleringskrav, hvor analyse af kørselstid og hukommelseskompleksitet bliver praktisk.
Øv så meget som muligt i ugerne op til dit møde på Amazon. At være konsistent med din forberedelse af dit interview og planlægge det i din ugentlige rutine i ugerne op til dit interview vil være den største hjælp til at lave sikker på at du er klar. Kvalitetspraksis er også vigtigere end kvantitet. Sørg for, at du ikke bliver distraheret under dine sessioner, og at du er fokuseret på de aktuelle problemer og arbejder på ting, der er udfordrende for dig. Hvis du kun praktiserer de nemme ting, vil du være i stand til ubehagelige overraskelser og stress under det rigtige interview.
En glimrende måde at forbedre dine færdigheder til et interview er med mock-interviewsessioner. Oplevelsen vænner dig til, hvordan det føles, når du mødes med ansættelseslederen. Tjek Pramp , en peer-to-peer-mock-interviewplatform, for at komme i gang.
Pramp tilbyder mock-systemdesigninterview-praksis for brugere at arbejde med en jævnaldrende. Sammen udfører du både rollen som interviewer og interviewperson, så du også kan lære af deres styrker og svagheder. Det er en fordel at se en anden gennemføre sit systemdesigninterview og se det fra interviewerens perspektiv. Du får også feedback efter oplevelsen, som du kan bruge til at identificere, hvilke komponenter du skal arbejde på, før du mødes med ansættelseslederen hos Amazon.