Wie entwerfe ich ein beliebiges System in einem Interview? [geschlossen]

36

Eine häufig gestellte Frage in Tech Interview ist das Entwerfen eines bestimmten Systems, normalerweise eines vorhandenen Produkts des Unternehmens. Zum Beispiel "Google Text & Tabellen entwerfen".

Was ist die erwartete Antwort auf eine solche Frage? Ich meine, solche Systeme haben sicherlich ein komplexes Design, das über den Rahmen eines Interviews hinausgeht. Was erwarten die Interviewer in so kurzer Zeit?

Shamim Hafiz
quelle
4
+1 Ein Freund von mir wurde neulich gefragt. Ich sagte dasselbe. Ich bemühe mich, offene Interviewfragen zu stellen. Fragen Sie den Befragten nach seinen Projekten und nach dem Wie und Warum seines Designs. Auf diese Weise können sie mir von etwas erzählen, das sie bereits kennen und getan haben. Anstatt durch White-Board-Design zu stolpern und sich zu fragen, ob man mit den Anforderungen beginnen oder eine Reihe von Annahmen treffen soll, weil die offensichtliche Frist ...
P.Brian.Mackey
6
Wenn es sich um ein vorhandenes Produkt handelt, würde ich zurückschießen mit: "Was finden Sie in Ihrem vorhandenen Design mangelhaft?"
Blrfl
5
"Nun ... Schritt 1 würde einen Anwalt kontaktieren, um herauszufinden, ob wir eine Marke oder ein Urheberrecht verletzen"
Steven Evers
12
"Stört es mich, wenn ich die Anforderungsdokumente sehe?"
Joel Etherton
4
"Habe es nie benutzt. Was sind seine Hauptmerkmale?"
Steven A. Lowe

Antworten:

22

Einblick, wie Ihr Gehirn dieses Problem sieht. Hier sind ein paar Ansatzpunkte, die ich sehen konnte, wie man versuchen könnte, dieses Gespräch zu führen:

  • Top-down - Wenn Sie von einer sehr hohen Ebene aus nach unten schauen, bauen Sie ein Design aus und konkretisieren Sie das Design, während verschiedene Komponenten fertiggestellt werden. Hier sind eine Handvoll Komponenten, die ich sehen konnte.

  • Bottom-up - Schauen Sie von Grund auf nach oben, hier sind einige Teile, die man zusammenbauen könnte, um sie zusammenzusetzen ...

  • Anforderungsklärung - Stellen Sie Fragen zu dem projizierten Umfang, der Größe, dem Budget und dem Team, die für diesen Entwurf verwendet werden. Sie könnten versuchen, eine Person dazu zu bringen, ein sehr vereinfachtes Textverarbeitungsprogramm zu erstellen, oder Sie könnten Hunderte Millionen Dollar ausgeben, um das ultimative Dokumentenverwaltungssystem zu erstellen, von dem Sie glauben, dass Sie Google Doc auf die Spitze getrieben haben. Außerdem können Sie hier die Frage stellen: "Was meinen Sie mit Google Doc? Wie viel von dieser Funktionalität möchten Sie duplizieren?". Fragen auch.

Der Schlüssel ist, wie gut Sie Ihre Gedanken und Herangehensweisen zur Lösung dieses Problems kommunizieren können, da Sie möglicherweise von einem Benutzer angesprochen werden und gefragt werden: "Psst, könnten Sie in 2 Wochen so etwas machen?" das könnte tatsächlich passieren. Daher ist es wichtiger , wie Sie die Antwort geben, als was die Antwort ist.


Meine persönliche Meinung wäre, dass vergangene Projekte hier keine gute Idee sind. Was man zu finden versucht, ist, welche Art von Kreativität und Kommunikationsfähigkeiten in einem neuen Bereich vorhanden sind, anstatt sich nur daran zu erinnern, wie etwas in der Vergangenheit getan wurde. Wahrscheinlich ähnelt etwas, das in der neuen Position passiert, etwas aus der Vergangenheit, aber es gibt gerade genug Unterschiede, die die alte Lösung nicht durchführbar machen. Dies ist der Grund, warum, obwohl das, was erstellt werden kann, einer vorhandenen Anwendung ähnlich ist, es verschiedene Anpassungen geben kann, die die Lösung vom ursprünglichen Beispiel deutlich unterscheiden.

Interviews sind eine Einbahnstraße. Manager und andere Entwickler beherrschen Interviews nur selten, daher bin ich mir nicht sicher, ob es sinnvoll ist, bei Vorstellungsgesprächen zu behaupten, dass sie Fachexperten sein sollten. Personalvermittler Ich konnte davon ausgehen, dass sie wissen, wie man ein Vorstellungsgespräch führt, aber es gibt viele schlechte Personalvermittler, die als Beispiele dafür herangezogen werden könnten, warum dies nicht immer eine gute Idee ist.

JB King
quelle
2
Es ist besser, den Befragten nach einem Projekt zu fragen, mit dem er vertraut ist. Auf diese Weise können Sie sehen, wie der Verstand während des eigentlichen Arbeitsprozesses funktioniert. Sie können sie stoppen und um Klärung von Details bitten, um zu sehen, wie tief ihr Wissen über ihre Domäne reicht. "Warum haben Sie keine Schnittstelle als Parameter für die Methode verwendet?" Dann liegt es an Ihnen als Interviewer, die richtigen Fragen zu stellen. Dies ist richtig, da sich der Befragte in Ihrer Domäne befindet ... nicht in seiner eigenen.
P. Brian Mackey
2
+1 wenn ich könnte: "Der Schlüssel ist, wie gut Sie Ihre Gedanken kommunizieren können" ... leider glaube ich, dass die Mehrheit der Interviewer und Kandidaten in diesem Bereich unzulänglich ist.
Anon
2
"Es ist besser, den Befragten nach einem Projekt zu fragen, mit dem er vertraut ist. Auf diese Weise können Sie sehen, wie sein Verstand während des tatsächlichen Arbeitsprozesses funktioniert." Eigentlich reicht es aus, den Rückruf der bereits geleisteten Designarbeit zu testen. Die Interviewer wollen vor allem wissen, wie sie neue Probleme angehen.
DJClayworth
16

Gerade für Senior-Entwickler finde ich diese Fragen sehr gut. Sie zeigen, dass ein Entwickler in der Lage ist, von einer großen, komplizierten Beschreibung zu einer realistischen Implementierung überzugehen. Selbst mit einem völlig unbekannten System sollten Sie in der Lage sein, eine Reihe von interessanten Aktivitäten für den Interviewer durchzuführen:

  • Sammeln Sie Anforderungen, um die Frage zu beantworten (z. B. Umfang).
  • Teilen Sie das Problem in handlichere Teile auf. Identifizieren Sie möglicherweise Schnittstellen oder Objekte, die möglicherweise benötigt werden, oder unterteilen Sie die Logik in Front-End, Back-End, DB usw.
  • Machen Sie sich mit der Struktur und den Konzepten dieses Systemtyps vertraut, z. B. mit Web-Apps bei Google Text & Tabellen
  • Zeigen Sie, worauf Sie sich bei einem Entwurfsproblem konzentrieren (Objektentwurf? SQL-Tabellen? Entwurfsmuster?)
  • Zeigen Sie dem Chef eine Vorschau darauf, wie es sein wird, mit Ihnen ein neues System zu entwickeln, in dem der Chef eine Spezifikation vorlegt und sagt: "Was würde es brauchen, um dies zu erstellen?"

Diese Frage ist nur eine übergeordnete Version von "Beschreiben Sie die Objekthierarchie, die Sie hierfür verwenden würden." "Beschreiben Sie die Schnittstelle, die Sie dafür entwerfen würden." "Entwerfen Sie einen Satz relationaler DB-Tabellen für diese Daten." Bei Entwicklern auf niedrigerer Ebene bewertet der Interviewer möglicherweise das langfristige Wachstumspotenzial der Person im Unternehmen oder sieht nur, was sie tut, wenn sie mit einem großen Problem konfrontiert ist, das möglicherweise überwältigend sein kann.

Ethel Evans
quelle
2
Eine erwartete Antwort auf die Frage sind also einige UML-Diagramme, zumindest vereinfacht?
Shamim Hafiz
3
Ich denke, vereinfachte UML wäre ein häufiger Bestandteil der Antwort. Es könnten auch Serverdiagramme angezeigt werden. Der Schlüssel ist zu zeigen, dass Sie nicht von der Größe des Problems gebremst werden und dass Sie reibungslos von einem vagen Konzept zu einer realen Architektur übergehen können (mit konkreten - nicht vagen - zu lösenden Problemen). Und dann diese Architektur kommunizieren. Der Interviewer hört möglicherweise auch zu, ob Sie sich für aktuelle Best Practices entscheiden oder veraltete Lösungen suchen.
Ethel Evans
11

Es geht darum, Ihre Denkprozesse in Aktion zu sehen. Sie sind nicht an einer Lösung interessiert, aber wie würden Sie das Problem lösen, welche Fragen würden Sie stellen, welche Probleme würden Sie identifizieren usw.

Angesichts des Beispiels von Google Text & Tabellen stellen sich offensichtliche Probleme wie Speicher, Sicherheit, Skalierbarkeit, Verfügbarkeit, Design der Client-Oberfläche, Browserkompatibilität usw. dar. Wie würden Sie die Verantwortung zwischen Server und Client aufteilen? Wie würden Sie mit Backups umgehen? Was passiert, wenn ein Server ausfällt? Was würden Sie mit "aufgegebenen" Dokumenten tun (Sachen, auf die seit langer Zeit nicht mehr zugegriffen oder die geändert wurden)?

Auch hier geht es nicht darum , eines dieser Probleme zu lösen , sondern sie zu identifizieren , durchzusprechen, ein wenig über ihre Behebung nachzudenken usw.

John Bode
quelle
9

Ich gehöre zu den Schuldigen, die solche Fragen in Interviews häufig stellen. (Um es festzuhalten, ich stelle auch ähnliche Fragen zu ihrem "Lieblingsprojekt".) Der Grund, den ich frage, ist, dass es etwas ist, was wir hier häufig machen. Wir beschäftigen Konstrukteure von allen Seiten einer Schnittstelle, jemanden aus dem System-Engineering, jemanden aus dem Test und jemanden mit Kenntnissen der Kunden-Anwendungsfälle für das Feature. Wir stehen um ein Whiteboard und sagen: "Okay, wie bauen wir dieses Ding?" Oft wissen Sie zu diesem Zeitpunkt nur sehr wenig über die neue Funktion und sind nur aufgrund Ihrer Fachkenntnisse in Ihrem Teil des Systems da, aber Sie werden dennoch erwartet, dass Sie einen produktiven Beitrag leisten. Es ist nicht nur eine hypothetische akademische Übung.

Was die Art der Antworten angeht, die ich erwarte, entwerfen Sie beispielsweise ein System zum Herunterladen neuer Firmware von einem Server über 20 eingebettete Leitungskarten in einer Zentrale, um 5000 Set-Top-Boxen im Feld gleichzeitig zu aktualisieren. Angenommen, auf der Verbindung zwischen dem Server und den Leitungskarten ist nur sehr wenig freie Kapazität vorhanden.

Falsche Antwort:

Ähm, ich würde wahrscheinlich Ethernet oder so etwas verwenden.

Gute Antwort:

Von wie großem Bild sprechen wir? [Ungefähr 7 MB.] Nun, Sie möchten sicherstellen, dass der Dienst während des Downloads nicht beeinträchtigt wird. Sie benötigen zusätzliches Flash oder RAM, um zwei Bilder gleichzeitig zu speichern. Wahrscheinlich möchten Sie das Bild auf Ihren Line Cards zwischenspeichern, um zu vermeiden, dass dasselbe Bild immer wieder vom Server heruntergeladen wird. Da Ihre Line Cards eingebettet sind, haben sie wahrscheinlich eine begrenzte CPU-Kapazität. Daher müssen Sie möglicherweise die Downloads serialisieren, um genügend Kapazität für den Service zu haben. Sie sollten das Image auf irgendeine Weise überprüfen und auf die alte Version zurückgreifen, wenn es nicht funktioniert hat. Wenn das Upgrade fehlschlägt, müssen Sie einige Versuche wiederholen und einem Benutzer Fehler melden. Wenn Sie Set-Top-Boxen verschiedener Marken verwenden, müssen Sie auf irgendeine Weise ermitteln, welches Bild Sie senden müssen.

Das sind fast wörtliche Transkriptionen zweier verschiedener Kandidaten. Die meisten Kandidaten sind irgendwo dazwischen, kommen aber normalerweise am Ende mit ein wenig Aufforderung dorthin, was vollkommen in Ordnung ist. Wir suchen hier nicht nach dem nächsten Einstein, nur ein Hinweis darauf, dass Sie tatsächlich intelligent über die Art von Problemen nachdenken können, an denen wir jeden Tag arbeiten.

Karl Bielefeldt
quelle
1
wo arbeitest du und brauchst du neue mitarbeiter? : D
Maggie
1
Dabei könnten alle Beispiele für eine von Ihnen als "gute Antwort" bezeichnete Frage relevant sein. Die Frage lautete: "Entwerfen Sie ein System, das ...". In Anbetracht der Tatsache, dass es sich um eine Interview-Situation handelt, von der man erwarten würde, dass man höchstens 5 bis 10 Minuten Zeit hat, um zu antworten, scheint das meiste, was Sie identifiziert haben, für eine Interview-Lösung im Unkraut zu sein. Wo ist die eigentliche Lösung in Ihrer "guten Antwort"? Sobald die Person die "Happy-Day" -Lösung hat, kann sie über die "Was-wäre-wenn" nachdenken, auf die Sie sich in Ihrer "guten Antwort" beziehen. Aber bis dahin würde ich denken, dass die Zeit abgelaufen ist.
Dunk
5

Ich stelle auch solche Fragen und stimme den meisten anderen Antworten zu. Vielleicht würde es den Befragten helfen zu verstehen, WARUM diese Art von Frage wichtig ist? Angenommen, wir müssen eine wichtige Geschäftsentscheidung treffen, und um dies zu tun, müssen wir ein neues System aufbauen. Wenn jemand auf Sie zukommt und fragt, was zum Aufbau eines X-fähigen Systems erforderlich ist, können Sie ihm eine aufschlussreiche Antwort geben, die die wichtigsten Herausforderungen und erforderlichen Ressourcen vorhersagt?

Ein Junior-Programmierer hat keine Ahnung, wo er anfangen soll. Sie sind nicht bereit, ohne eine detaillierte Spezifikation zu sprechen. Ein erfahrener Programmierer wird sofort erkennen, dass das Problem viele Facetten hat, und wird versuchen, sich einer Herausforderung zu stellen. Sie müssen nicht jeden Aspekt entwerfen, sondern nur eine architektonische Herausforderung identifizieren und dann herausfinden, wie Sie sie angehen können.

Betrachten Sie das Problem von Google Text & Tabellen:

Eine interessante Sache ist die Scherskala der Anfragen, die kommen werden. Sie können nicht einfach einen einzelnen Server abrufen und Ihren Code darauf bereitstellen - dies ist ein größeres Unternehmen. Ein erfolgreicher Befragter könnte sich darauf einlassen und die Arten von Ressourcen beschreiben, die benötigt werden, sowie einige der technischen Herausforderungen bei der Implementierung in dieser Größenordnung mit einer Anwendung, die nicht nur den Status hat, sondern den Status für mehrere Benutzer gemeinsam hat.

Ein weiteres interessantes Merkmal von Google Text & Tabellen ist, dass mehrere Personen gleichzeitig bearbeiten können. Ein erfolgreicher Befragter kann Mechanismen diskutieren, um sicherzustellen, dass das resultierende Dokument kein Müll ist, und ein wirklich guter Kandidat wird erkennen, dass verschiedene Methoden zum Synchronisieren oder Zusammenführen von Bearbeitungen einen großen Einfluss auf die Leistung und UX haben. Diskutieren Sie vielleicht sogar Variationen: Ein freigegebener Dokumenteditor zum Schreiben von Code sollte wahrscheinlich eine andere Methode zum Lösen von Konflikten als das typische Google Doc verwenden, da sich die Ereignisse in einer anderen Reihenfolge oder mit einer leicht anderen Struktur unterschiedlich auswirken.

Es gibt keinen einzigen richtigen Weg, um eine App wie Google Text & Tabellen zu erstellen. Sie müssen nicht bei jedem Trade-Off angeben, was Sie tun würden, aber es ist wirklich großartig, einen Bereich mit einem interessanten Problem zu finden und den Trade klar zu erläutern -offs könnte sein.

-t.

Tristan Reid
quelle
Ich habe zugestimmt, weil Sie die einzige Antwort sind, die ihre Antwort auf eine "architektonische" Designlösung abstellt. Das ist das Beste, was Sie im Rahmen eines Interviews für ein Problem des gegebenen Umfangs tun können. Ein Befragter, der versteht, dass eine architektonische Lösung alles ist, was erreicht werden kann, zeigt, dass er weiß, was er tut.
Dunk
2

Ich vermute, dass die Interviewer Folgendes hören möchten:

Google Doc ist eine Weboberfläche für ein Textverarbeitungsprogramm. Benutzerdokumente werden eingegeben und gespeichert und können vom Benutzer auf demselben oder einem anderen Computer abgerufen werden.

Was möchten Sie weiter diskutieren?

Dann ist der Ball im Gericht des Interviewers. Wenn sie mehr Details möchte, kann sie fragen. Nach was der Interviewer sucht, können Sie sich ein Problem oder ein Produkt ansehen und das Design extrahieren?

Gilbert Le Blanc
quelle
1
Die Antwort ist gut, aber glaube nicht, dass der Interviewer damit zufrieden sein wird. Bisher scheint es, dass solche Fragen bei den Befragten nicht beliebt sind.
Shamim Hafiz
-1 @Gilbert Le Blanc - Die "Hochlauf" -Zeit, die durch Brooks Gesetz im "Mythical Man Month" definiert ist, macht diese Frage bestenfalls albern. Wenn wir wissen, dass es ungefähr 6 Monate dauert, um einen Mehrwert für ein Softwareprojekt zu erlernen, was kann man von einer "Designextraktion" in nur 6 Stunden erwarten? en.wikipedia.org/wiki/Brooks%27s_law
P.Brian.Mackey
1
@Shamim Hafiz: Aufgrund Ihrer Frage und Ihres Kommentars würde ich sagen, dass diese Frage nicht beliebt ist, da Sie und andere Schwierigkeiten haben, den Umfang der Frage einzugrenzen. JB Kings Antwort ist vollständiger als meine. Seine Stichpunkte sind allesamt gültige Mittel, um den Umfang der Fragen einzugrenzen, obwohl ich mich zuerst für Top-down-Fragen und dann für die Klärung von Anforderungen interessiere. Zeichnen Sie in einfacherem Englisch zuerst die Analogie und heben Sie dann die Unterschiede hervor.
Gilbert Le Blanc
4
Wenn ich ein Interview führen würde, wäre ich mit dieser Antwort nicht zufrieden. Die Antwort hier sagt mir nur, was Google Docs ist, was ich bereits weiß.
Whatsisname
1
@whatisname - Ich denke, der Interviewer möchte die Antwort auf die Frage (oder einen Ballpark) im Kontext eines Interviews wissen.
Morgan Herlocker
2

Wenn die Person nicht mit der Identifizierung der wichtigsten Use-Cases / Storys beginnt, ist dies für mich ausreichend, um zu wissen, dass sie nicht auf eine Position vorbereitet ist, die diese besondere Fähigkeit erfordert.

Anschließend sollten sie in der Lage sein, eine architektonische Lösung basierend auf den wichtigsten Anwendungsfällen / Geschichten zu entwickeln. Hoffentlich verwendeten sie einen systematischen Prozess, um andere Module zu identifizieren, als sie aus ihren zu ziehen ... Ich würde nicht viel mehr von einer Interview-Situation für die Lösung erwarten.

Ich könnte jedoch eines der Architekturmodule auswählen und nach einem detaillierteren Entwurf fragen, nur um zu sehen, ob sie über einige Designfähigkeiten verfügen. Es wäre auch schön zu sehen, dass sie die Fehlerfälle / Leistungsprobleme berücksichtigen. Aber ich vermute an dieser Stelle, dass wir auf eine Zeitmauer stoßen würden. Daher konnte ich sie wirklich nicht dafür bestrafen, dass sie diese Themen nicht berücksichtigt haben, weil nur so viel Zeit zur Verfügung steht, und ich halte es für vernünftig, davon auszugehen, dass aus einer zeitlich begrenzten Befragungssituation nicht jedes mögliche Szenario zu erwarten ist.

Dunk
quelle
1

Ich hatte kürzlich ein Interview, in dem ich gebeten wurde, ein Aufzugssteuerungssystem zu entwerfen. Grundsätzlich möchten sie Ihre Herangehensweise an die Aufgabe sehen. Wenn Ihnen diese Frage gestellt wird, haben sie wahrscheinlich einen sehr hochrangigen Job für Sie im Sinn. Glückwunsch.

Michael Brown
quelle
1

Entscheidend ist, wie Sie Probleme im Vergleich zu den Vorzügen der von Ihnen angegebenen Lösung lösen und ob Sie in der Lage sind, Probleme im großen Stil zu lösen.

Ich denke, es ist wichtig , Fragen zu den Anforderungen zu stellen. Machen Sie nicht nur Annahmen, die es Ihrer Haustierlösung ermöglichen, zu funktionieren. Zum Beispiel kennen Sie vielleicht eine wirklich raffinierte Methode zum Drucken von Dokumenten, mit der Sie versucht sein können, direkt in die Beschreibung einzusteigen. Google Text & Tabellen wird jedoch nicht direkt gedruckt. Es wird eine PDF-Datei erstellt, die der Client anschließend druckt. Wenn Sie damit anfangen, haben Sie die Hälfte Ihrer Zeit damit verbracht, ein Problem zu lösen, das nicht Teil des Problems ist, und Sie haben gezeigt, dass Sie mehr an der Verwendung Ihrer heißen Technologie interessiert sind als an der Lösung des Kundenproblems.

JohnMcG
quelle
0

Um diese Art von Interviewfragen beantworten zu können, müssen Sie ein allgemeines Interesse daran haben, zu verstehen, wie Dinge funktionieren. Dies gilt nicht nur für Projekte, an denen Sie interessiert sind, sondern auch für Projekte, bei denen Sie der Meinung sind, dass sie zu weit von Ihren Erfahrungen entfernt sind.

Dies bedeutet, Blogs, Artikel, http://www.infoq.com , Hacker News usw. zu lesen . Sogar die Hardware-Bluffs von Coding Horror.

Trotz der Tatsache, dass Sie das meiste von dem, was Sie gelesen haben, vergessen werden (weil diese Informationen ohnehin nicht mit Ihrer persönlichen Arbeit verbunden sind), kann es einige Kleinigkeiten geben, die "Samen der Vorstellungskraft" sind, und einen winzigen Bruchteil dieser Samen keimen, wenn Sie in ferner, ferner Zukunft auf ein ähnliches Problem stoßen.

Der Interviewer interessiert sich vielleicht für Ihre Lesegewohnheit (als Teil Ihres Hobbys) und stellt fest, ob Sie die Gewohnheit haben, regelmäßig Samen von Ideen von zufälligen Orten zu sammeln.

rwong
quelle
Äh, ich weiß nichts über Sie, aber ich schaue viel günstiger auf Entwickler, die Entwürfe basierend auf Fakten und Erfahrungen formulieren, als Dinge, die sie einmal in einem Blog gelesen haben.
Aaronaught
@Aaronaught: Natürlich ist echte Erfahrung aus ähnlichen Projekten unendlich wertvoller als gehörte Ideen. Aber wenn Sie mit einem Projekt in einem Bereich beauftragt sind, in dem Sie keine Erfahrung haben, geben Sie die Gelegenheit einfach auf? (Angenommen, Sie teilen dem Arbeitgeber mit, dass Sie nicht über einschlägige Erfahrungen verfügen, und der Arbeitgeber ist damit einverstanden.) Wenn Sie sich dafür entscheiden, wie fangen Sie an? Sie beginnen mit Lehren aus anderen Menschen, anderen Unternehmen und so weiter. Sie können nicht aus dem Nichts beginnen. Vielleicht haben Sie mich zu Recht abgewählt, weil sich das OP anscheinend um eine leitende Position
beworben hat
(Fortsetzung) Bitte unterschätzen Sie nicht die Wichtigkeit von Lehren aus anderen Quellen.
rwong
Gut, vielleicht war die Ablehnung unverdient (obwohl ich sie derzeit nicht entfernen kann). Trotzdem glaube ich nicht, dass ein Interviewer eine solche Frage stellen würde, um zu erfahren, was Sie lesen. Wenn dies der Fall wäre, würden sie nur fragen, was Sie gelesen haben. Was wichtig ist, ist, die richtigen Fragen zu stellen, damit Sie lernen, wie es funktionieren soll , und nicht auf der Grundlage von verstreuten Informationen, die möglicherweise in Beziehung stehen oder nicht.
Aaronaught
0

Der Sinn einer solchen Frage besteht darin, einen Einblick in Ihren Verstand zu gewinnen. Eine häufig gestellte Frage ist, Programmierer zu bitten, ein System zu entwerfen, das PacMan simulieren kann.

Und ja, ich suche zuerst nach Anwendungsfällen, es zeigt mir, dass die Person denkt. Beim Multithreading werden dann zuerst die Datenstrukturen berücksichtigt (diejenigen, die für das Problem verwendet werden könnten, dann geeignetere oder spezifischere mit den Gründen der Entscheidung).

Dies ist ein Muss für leitende Entwicklungspositionen. Es ist sowohl albern als auch sinnlos, Fragen zu Sortierimplementierungen auf dieser Ebene der Entwicklererfahrung zu beantworten. Das Systemdesign ist das, was ich auf dieser Ebene erwarten würde.

Wile EK
quelle