Beste Antwort
Das Systemdesign ist obligatorisch, um sich auf Interviews für alle erfahrenen Kandidaten vorzubereiten. Systemdesign bedeutet skalierbare Systemdesignprobleme (wie Uber, Facebook Newsfeed, Webcrawler-Design usw.). Wie Sie in all diesen Systemen sehen können, haben Milliarden von Benutzern Zugriff. Unternehmen möchten auch einen Techniker, der das System entwerfen kann, das die Millionen-Anfrage gleichzeitig verarbeiten kann, und das System sollte immer robust sein und eine sehr geringe Latenz aufweisen. Im Allgemeinen dauert die Vorbereitung des Systemdesigns 2 Monate, wenn Sie ein absoluter Anfänger sind. Aber ja, Sie müssen sich sehr viel Mühe geben, um es zu lernen.
Bevor ich fortfahre, möchte ich Ihnen eine gute Vorstellung davon geben, wie ein Systeminterview aussehen sollte.
Die Systemdesign-Runde sollte immer stattfinden Beginnen Sie mit
- Eine ausführliche Diskussion über die Anforderungen und welche Dinge unser System unterstützt und welche Dinge wir ignorieren können.
- Nach der Anforderung ist es besser, die zu geben Interviewer eine gute Vorstellung von der Einschätzung, wie viele Personen das System verwenden werden.
- Diskutieren Sie die API (REST-API). Beteiligen Sie sich an dem System, über das Benutzer auf unseren Service zugreifen.
- Versuchen Sie zu zeichnen Ende-zu-Ende des Ablaufs des Entwurfs auf hoher Ebene des Entwurfs
- Denken Sie nach und entwickeln Sie Systemkomponenten, die im System und auch im Ablauf zwischen den Systemkomponenten enthalten sind.
- Am Ende Entwickeln Sie ein Low-Level-Design des Systems.
Es ist sehr wichtig, eine gesunde Diskussion mit dem Interviewer zu führen und versuchen, Hilfe von ihm / ihr zu nehmen wh Ich löse ein Problem. Es wird einen guten Eindruck hinterlassen, dass der Kandidat auch ein guter Teamplayer ist. Selbst wenn Sie die Lösung kennen, lösen Sie das Designproblem niemals, ohne es mit dem Interviewer zu besprechen. Der Interviewer gibt eine faire Vorstellung von der Anforderung und gibt Ihnen die Hinweise. Wenn Sie direkt versuchen, es zu lösen, wird der Interviewer denken, dass Sie die Lösung bereits kennen, und das heißt, Sie werden abgelehnt .
Bevor Sie mit der Lösung eines Problems beginnen, das auf dem Systemdesign basiert, ist es sehr wichtig, die Grundlagen vorzubereiten. Im Folgenden finden Sie einige Themen für die Grundlagen
Für die Vorbereitung eines Systemdesignproblems sind natürlich Ihre Erfahrungen hilfreich. Da Sie möglicherweise an mehreren Projektentwicklungslebenszyklen beteiligt waren, ist dies hilfreich um während des Interviewprozesses zu antworten.
Aber die meisten Kandidaten werden nicht viel Aufmerksamkeit in der Branche erhalten, hauptsächlich weil die Tatsache ist 70-75\% der IT-Mitarbeiter arbeiten an einem Wartungsprojekt, bei dem sie APIs hinzufügen und kleine Komponenten entwickeln müssen. End-to-End-Bild eines Projekts, das sie nicht erhalten haben. Für diese können Sie Systemdesign lernen, indem Sie an einigen netten Online-Kursen / Schulungen teilnehmen. Diese Online-Ressourcen helfen mir bei der Vorbereitung auf Interviews.
- Sie können das Systemdesign aus dem Logicmojo -Kurs lernen. Dies ist der Online-Kurs mit Videovorträgen zur Vorbereitung des Systemdesigns sowie von Algorithmen. Dieser Kurs gibt Ihnen einen guten Einblick in alle Systemdesignkomponenten und deckt fast alle Designfragen ab, die in Interviews gestellt werden. Sie haben einige 40+ Designprobleme enthalten, was meiner Meinung nach gut genug ist.
- Dann haben wir einen sehr berühmten Blog namens HighScalability . Diese Blogs enthalten Details zu Systemkomponenten, API und Schätzungen, die Teil der bekannten Systemdesignprobleme sind. Es deckt zwar große Details des Systems ab, aber Sie müssen auch die nützlichen und relevanten Details extrahieren.
- Außerdem gibt es einen guten Online-Kurs pädagogisch Kurs zum Design des Grokkingsystems. Dies ist auch eine gute Sammlung von Systemdesignproblemen. Sie müssen das Ganze durchgehen und es als textbasierte Ressourcen lesen.
Außerdem müssen Sie an allen Design-Meetings
Antwort
Lassen Sie sich nicht überwältigen. Bereiten Sie sich Schritt für Schritt vor und brechen Sie es während Ihrer Vorbereitung auf. Machen Sie dasselbe, sobald Sie sich im eigentlichen Interview befinden. Systemdesign ist schwierig – Sie müssen sich mit der Unstrukturiertheit des Interviews auseinandersetzen, aber mit zusätzlicher Übung sind Sie bereit, mit allem umzugehen, was sie auf Sie werfen .
- Verstehen Sie die Ziele des Interviews – Die frühzeitige Klärung von Unklarheiten ist von entscheidender Bedeutung. Stellen Sie sicher, dass Sie wissen, was sie wissen möchten.
- Festlegen des Bereichs – Versuchen Sie, alle Merkmale des Designs zu definieren, an die Sie denken aufgrund ihrer Bedeutung für den Benutzer für das bereitgestellte Szenario.
- Design für den richtigen Maßstab – Der gleiche Funktionsumfang erfordert einen ganz anderen Ansatz für verschiedene Skalen. Es ist wichtig, die Skalierung zu bestimmen, damit Sie wissen, ob Ihre Daten auf einen Computer passen oder ob Sie die Lesevorgänge skalieren müssen.
- Starten Sie High-Level , dann arbeiten Sie sich nach unten – Beginnen Sie mit der Abdeckung des End-to-End-Prozesses, basierend auf den von Ihnen festgelegten Zielen. Dies kann die Detaillierung verschiedener Clients, APIs, Backend-Services, Offline-Prozesse, Netzwerkarchitekturen, Datenspeicher und deren Zusammenführung umfassen, um die Anforderungen
- zu erfüllen Datenstrukturen und Algorithmen – Vergessen Sie nicht, Ihre Skalierungsanforderungen zu berücksichtigen, wenn die Analyse der Laufzeit und der Speicherkomplexität praktisch ist.
Üben Sie in den Wochen vor Ihrem Meeting bei Amazon so viel wie möglich. Wenn Sie Ihre Interviewvorbereitung konsistent gestalten und sie in den Wochen vor Ihrem Interview in Ihre wöchentliche Routine einplanen, ist dies die größte Hilfe sicher bist du bereit Qualitätspraxis ist auch wichtiger als Quantität. Stellen Sie sicher, dass Sie während Ihrer Sitzungen nicht abgelenkt werden und sich auf die anstehenden Probleme konzentrieren und an Dingen arbeiten, die Sie herausfordern. Wenn Sie nur die einfachen Dinge üben, werden Sie während des eigentlichen Interviews unangenehmen Überraschungen und Stress ausgesetzt sein.
Eine hervorragende Möglichkeit, Ihre Fähigkeiten für ein Interview zu verbessern, sind Scheininterviews. Die Erfahrung gewöhnt Sie daran, wie es sich anfühlt, wenn Sie sich mit dem Personalchef treffen. Schauen Sie sich Pramp an, eine Peer-to-Peer-Mock-Interview-Plattform, um loszulegen.
Pramp bietet Benutzern eine Mock-System-Design-Interview-Praxis mit einem Kollegen arbeiten. Gemeinsam übernehmen Sie sowohl die Rolle des Interviewers als auch des Interviewten, damit Sie auch aus ihren Stärken und Schwächen lernen können. Es ist von Vorteil, wenn jemand anderes sein Systemdesign-Interview abschließt und es aus der Sicht des Interviewers betrachtet. Nach der Erfahrung erhalten Sie auch Feedback, anhand dessen Sie ermitteln können, an welchen Komponenten Sie arbeiten müssen, bevor Sie sich mit dem Personalchef bei Amazon treffen.