Beste antwoord
Systeemontwerp is verplicht om voor te bereiden op sollicitatiegesprekken voor alle ervaren kandidaten. Systeemontwerp betekent schaalbare systeemontwerpproblemen (zoals Uber, Facebook Newsfeed, webcrawler-ontwerp, enz.). Zoals u kunt zien, hebben al deze systemen miljarden gebruikers toegang. Bedrijven willen ook een ingenieur die het systeem kan ontwerpen dat de miljoenen aanvragen tegelijk aankan en het systeem moet altijd robuust zijn met een zeer lage latentie. Over het algemeen duurt het voorbereiden van het systeemontwerp 2 maanden als u een complete beginner bent. Maar ja, je moet veel moeite doen om het te leren.
Voordat ik verder ga, wil ik je een goed idee geven over hoe een systeeminterview eruit ziet.
System Design-ronde moet altijd begin met
- Een gedetailleerde discussie over de vereisten en welke alle dingen ons systeem ondersteunt en welke dingen we kunnen negeren
- Na de vereiste is het beter om de interviewer een goed idee over de schatting van hoeveel mensen het systeem gaan gebruiken
- Bespreek de API (REST API) Betrek bij het systeem waardoor de gebruiker toegang krijgt tot onze service
- Probeer te tekenen Einde om de stroom van hoogstaand ontwerp van het ontwerp te beëindigen
- Denk na en bedenk systeemcomponenten die te maken hebben met het systeem en ook de stroom tussen de systeemcomponenten
- Uiteindelijk, bedenk een low-level ontwerp van het systeem
Het is erg belangrijk om een gezonde discussie te voeren met de interviewer en probeer hulp van hem / haar te nemen wh ile een probleem oplossen. Het zal een goede indruk maken dat de kandidaten ook een goede teamspeler zijn. Zelfs als u de oplossing kent. Begin nooit met het oplossen van het ontwerpprobleem zonder het met de interviewer te bespreken. De interviewer geeft een goed beeld van de vereiste en geeft u de hints. Als je het direct probeert op te lossen, zal de interviewer denken dat je de oplossing al kent en dat is het, je wordt afgewezen .
Voordat u begint met het oplossen van een probleem op basis van systeemontwerp, is het erg belangrijk om de basisprincipes voor te bereiden. Hieronder staan enkele basisonderwerpen
Voor het voorbereiden van een systeemontwerpprobleem zijn de eerste dingen natuurlijk uw ervaring zal u helpen . Omdat u wellicht betrokken bent geweest bij meerdere levenscycli van projectontwikkeling, helpt het dus te beantwoorden tijdens het sollicitatiegesprek.
Maar de meeste kandidaten zullen “ niet veel publiciteit krijgen in de branche , vooral omdat het feit is 70-75\% van de mensen in de IT werken aan een onderhoudsproject waar ze APIs moeten toevoegen en kleine componenten moeten ontwikkelen. Dus een totaalbeeld van elk project dat ze niet hebben gekregen. Voor hen kun je leren over systeemontwerp door deel te nemen aan een aantal leuke online cursussen / trainingen . Deze online bronnen helpen me bij het voorbereiden van sollicitatiegesprekken.
- U kunt het systeemontwerp leren van de Logicmojo -cursus. Dit is de online cursus met videocolleges voor het voorbereiden van systeemontwerp en algoritmen. Deze cursus geeft je een goed inzicht in alle systeemontwerpcomponenten en behandelt bijna alle ontwerpvragen die in Interviews worden gesteld. Ze bevatten enkele 40+ ontwerpproblemen , wat goed genoeg is denk ik.
- Dan hebben we een zeer beroemde blog genaamd Hoge schaalbaarheid . Deze blogs bieden u de systeemcomponenten details, API en schattingen die deel uitmaken van de beroemde System Design Problems. Hoewel het enorme details van het systeem omvat, maar je ook de nuttige en relevante details moet extraheren.
- Er is ook een goede online cursus educatief cursus grokking systeemontwerp. Dit is ook een goede verzameling systeemontwerpproblemen. U moet de volledige tekst doorlopen en deze lezen als op tekst gebaseerde bronnen.
U moet ook deelnemen aan alle ontwerpvergaderingen gebeurt in uw huidige project op kantoor omdat in die vergaderingen de senior architect de ontwerpdiscussie en tekortkomingen in het bestaande ontwerp van het systeem bespreekt. Dit geeft een goed idee van hoe u het ontwerp voor elk systeem kunt kiezen. Probeer ook het ontwerpdocument van eerdere projecten te lezen en te begrijpen. Dit helpt je ook tijdens System Design Interviews.
Answer
Laat je niet overweldigen. Bereid je stap voor stap voor en verdeel het tijdens je voorbereiding, en doe hetzelfde als je eenmaal in het echte interview bent. Systeemontwerp is lastig – je hebt te maken met de ongestructureerde aard van het interview, maar met extra oefening ben je voorbereid op alles wat ze je voor de gek houden .
- Begrijp de doelen van het interview – Het is van cruciaal belang om in een vroeg stadium onduidelijkheden op te helderen. Zorg ervoor dat u weet wat ze willen weten.
- Bepaal het bereik – probeer alle kenmerken van het ontwerp te definiëren waaraan u denkt door hun belang voor de gebruiker voor het verstrekte scenario.
- Ontwerp voor de juiste schaal – dezelfde functieset vereist een heel andere benadering voor verschillende schalen. Het is van cruciaal belang om de schaal te bepalen, zodat u weet of uw gegevens op één machine passen of dat u de uitlezingen moet schalen.
- Start op hoog niveau en werk vervolgens naar beneden – Begin met het behandelen van het end-to-end-proces, op basis van de doelen die u heeft vastgesteld. Dit kan inhouden dat verschillende clients, APIs, back-endservices, offline processen, netwerkarchitectuur, gegevensarchieven worden gedetailleerd en hoe ze allemaal samenkomen om aan de vereisten te voldoen.
- Gegevensstructuren en algoritmen – Vergeet niet rekening te houden met uw schaalvereisten, waar het analyseren van runtime en geheugencomplexiteit handig wordt.
Oefen zoveel mogelijk in de weken voorafgaand aan uw ontmoeting bij Amazon. Door consistent te zijn met de voorbereiding van uw sollicitatiegesprek en deze in te plannen in uw wekelijkse routine in de weken voorafgaand aan uw sollicitatiegesprek, zal dit de grootste hulp zijn bij het maken van zeker dat je er klaar voor bent. Kwaliteitspraktijk is ook belangrijker dan kwantiteit. Zorg ervoor dat u niet wordt afgeleid tijdens uw sessies, en dat u zich concentreert op de problemen die voorhanden zijn en werkt aan dingen die voor u een uitdaging vormen. Als je alleen de gemakkelijke dingen oefent, sta je voor onaangename verrassingen en stress tijdens het echte sollicitatiegesprek.
Een uitstekende manier om je vaardigheden voor een sollicitatiegesprek te verbeteren, is door middel van proefgesprekken. Door de ervaring raak je gewend aan hoe het voelt als je de personeelsmanager ontmoet. Bekijk Pramp , een peer-to-peer mock-interviewplatform, om aan de slag te gaan.
Pramp biedt gebruikers praktijkvoorbeelden voor het maken van interviews met systeemontwerp om met een peer te werken. Samen vervul je zowel de rol van de interviewer als de geïnterviewde zodat je ook kunt leren van hun sterke en zwakke punten. Het is nuttig om te zien hoe iemand anders zijn of haar systeemontwerpinterview afrondt, vanuit het perspectief van de interviewer. Je krijgt ook feedback na de ervaring, die je kunt gebruiken om te bepalen aan welke componenten je moet werken voordat je de rekruteringsmanager bij Amazon ontmoet.