Frage:
Trotz des Entwurfs des Server-Frameworks kann die Interviewfrage nicht geknackt werden: Wie wird XYZ entworfen?
mr.solo
2019-06-28 23:14:17 UTC
view on stackexchange narkive permalink

Ich bin ein Softwareprofi mit enormer Erfahrung in der Softwareentwicklung (nämlich in C ++) und habe in vielen bekannten multinationalen Softwareunternehmen und in verschiedenen Bereichen gearbeitet.

Vor ein paar Jahren war ich arbeitslos. Dann entwickelte ich aus eigener Leidenschaft ein Server-Framework in C ++ (das mehr als 65.000 Codezeilen umfasst). Ich habe es entworfen, codiert, auf hohe Leistung getestet und veröffentlicht. Ich habe alles alleine gemacht. Es ist alles Einhandarbeit, die aus meiner eigenen Leidenschaft heraus geleistet wird. Jetzt habe ich alles Open Source gemacht, wo ich auch die detaillierte Designdokumentation erstellt habe (verfügbar auf GitHub). Ich habe auch eine Website und eine Android-App gestartet, die auf diesem Framework basieren.

Trotz alledem klingt es immer so, als würden Interviewer (wenn ich auf der Suche nach einem Job bin) die Arbeit, die ich geleistet habe, völlig ignorieren. Sie scheinen sich nicht einmal darum zu kümmern, meinen Quellcode oder meine Dokumentation anzusehen, und stellen mir einfach Fragen wie:

Können Sie uns bitte sagen, wie Sie XYZ mit C ++ entwerfen können?

(Diese XYZ kann wie alles sein, z. B. "XML-Format", "Fahrzeugparksystem", "Dateiverarbeitungssoftware", "Cache-Speicheranwendung" usw.)

Ich finde dies ist wirklich nervig und schmerzhaft. Wie kann jemand in wenigen Minuten etwas direkt vor sich selbst & dort selbst entwerfen? Ich meine, ich kann sicherlich alles entwerfen, aber ich brauche etwas Zeit zum Entwerfen (und ich glaube, viele tun es). Aber hier kann ich mir weder Zeit noch Raum kaufen. Sie wollen, dass ich dort direkt vor ihnen entwerfe, während sie mich anstarren. Dann erzähle ich ihnen hilflos weiter, was mir gerade in den Sinn kommt. Manchmal erlebe ich auch einen Nervenzusammenbruch. Und als Ergebnis werden Sie im Interview abgelehnt.

Ich muss beachten: Es ist auch vorgekommen, dass ich als Antwort auf solche Fragen ein perfektes Design gefunden habe, aber nach dem Ende des Interviews. In einem Interview wurde ich beispielsweise gefragt: "Wie würden Sie Parksystem entwerfen, wenn es mehrere Parkplätze gibt und für verschiedene Fahrzeugtypen? " Nachdem ich aus dem Interview herausgekommen war, wurde mir klar, dass ich hätte sagen sollen: "Parken, Fahrzeug, Slots sind Klassen. Das Parken wird Mitgliederobjekte der Klasse Slot haben. Auto, LKW, Fahrrad usw. werden von der Klasse Fahrzeug abgeleitet. Und dann können wir haben." geeignete Methoden. Einige von ihnen sind virtuell. Die Fahrzeugklasse könnte abstrakt sein und reine virtuelle Methoden usw. haben ... "So einfach war das. Aber direkt vor ihnen, sehr zu dieser Zeit selbst, unter dem Druck "Mach es jetzt und lass mich sehen", konnte ich nicht klar darüber nachdenken und was ich ihnen erzählte, war total seltsam.

Obwohl ich selbst komplizierte Projekte (zusammen mit deren Codierung und Tests) wie das Hochleistungsserver-Framework und die Messaging-App entworfen habe, werde ich in mehreren C ++ - Interviews auf diese Weise immer noch abgelehnt. In einem der Interviews habe ich versucht, ihnen zu sagen, dass sie mein GitHub-Repository durchsuchen und sich mein Design und meine Codierung ansehen sollen. Aber ohne Nutzen. Dies ist eine äußerst frustrierende Erfahrung, die ich in diesen Tagen mache.

Bitte beraten Sie mich und geben Sie mir Vorschläge, wie ich das nächste Mal vor einem Interview vorgehen kann. Die Zeit läuft schnell und ich kann es mir nicht leisten, einfach so Interviewmöglichkeiten zu verlieren. Bitte helfen Sie.

Abstimmung zum Abschluss, da dies eher wie ein Scherz als eine eigentliche Frage aussieht.
@DarkCygnus, hat bisher mehr als 3 solcher Interviews durchlaufen.Einer war SkyPe, der Rest war von Angesicht zu Angesicht.
@mr.solo Ich sehe, haben sie tatsächlich erwartet, dass Sie alles codieren, was für XYZ benötigt wird?Oder wo sie nach dem Umriss und der Logik fragen, die Sie bei der Entwicklung verwenden würden.
@espindolaa Es tut mir leid, wenn es sich nach Schimpfen anhört, aber ich brauche wirklich Hilfe bei der Beantwortung von Fragen vom Typ "Jetzt entwerfen".
@DarkCygnus erwarteten sie von mir, dass ich das Gesamtdesign erkläre und C ++ - Klassen dafür schreibe.Vielleicht wollen sie sehen, wie ich vorgehe.Dennoch braucht man Zeit, um ein bestimmtes Design fertigzustellen.Vielen Dank für Ihre Anfrage.
@DarkCygnus das ist richtig.In Quick & First Go kann man nicht den besten Ansatz für das Design wählen.Desinging ist ein Denkprozess.Es braucht Zeit.Und ich fühle mich angespannt und kann nicht friedlich denken, wenn Leute mich anstarren.
@AlexanderM.Ich verstehe.Aber Zeit und Raum sind mein Anliegen.Ich wünschte auch, sie hätten auch so viel Arbeit, die ich bereits geleistet habe (die in Open Source verfügbar ist).
@mr.solo Dies ist eines der Dinge, die sie ebenfalls testen: Wie wirkt sich Druck auf Sie aus?Ich denke, Ihre beste Wette wäre, solche Dinge mit jemandem zu üben.Die andere Person würde sich solche Aufgaben einfallen lassen und mit einigermaßen zufälligen Antworten auf Ihre Fragen wird Ihre Aufgabe darin bestehen, das Design zu entwickeln.Versuchen Sie, es bei jeder Übung unter 30 Minuten zu halten.Paarweise pro Woche.Und sei kein Perfektionist.Mach es einfach (TM).
Wie lange haben Sie gebraucht, um Ihr Server-Framework zu entwerfen?
Es gibt viele Online-Ressourcen, die erklären, wie Fragen zum Systemdesign-Interview beantwortet werden, z.[Top 10 Fragen zum Systemdesign-Interview für Software-Ingenieure] (https://hackernoon.com/top-10-system-design-interview-questions-for-software-engineers-8561290f0444), [Systemdesign-Interview für IT-Unternehmen] (https://github.com/checkcheckzz/system-design-interview), [Erfolg in einem Systemdesign-Interview] (https://blog.pramp.com/how-to-succeed-in-a-system-design-interview-27b35de0df26), [InterviewBit] (https://www.interviewbit.com/courses/system-design/topics/interview-questions/).
Ihr persönliches Server-Framework nicht zu schließen, aber ich kenne die Einschränkungen nicht, unter denen Sie gearbeitet haben, um es zu erstellen.Ich müsste wissen, ob Sie Ihr Wissen auf ein neues Projekt und zu einem Zeitpunkt anwenden können, der für die Ergebnisse meines Unternehmens geeignet ist.Für mich bewerte ich die Erfassung der Anforderungen und die Grenzen Ihres Designs, die Sie im Interview-Slot gefunden haben.
@sf02 Ich habe viele Tage für Analyse und Design verbracht.Ich habe genug Anstrengungen unternommen, um verschiedene Technologien zu analysieren, bevor ich mit dem Design beginne.Heute muss man wissen, welche zugrunde liegenden Technologien verfügbar sind, bevor man mit dem Entwurf für ein neues Projekt beginnt.Es dauerte 2 Jahre, um die Entwicklung des Frameworks abzuschließen.
Es ist wichtiger, wie Sie sich selbst verkaufen, als Ihr Wissen, traurig, aber wahr in der Branche. Nehmen wir zum Beispiel Terry A. Davis, er hat getan, was nur wenige können. Es ist eine erstaunliche Arbeit, aber er ist nur verspottet
Sechs antworten:
DarkCygnus
2019-06-28 23:38:48 UTC
view on stackexchange narkive permalink

Trotz alledem klingt es immer so, als würden Interviewer, wenn ich vor Interviews stehe (derzeit suche ich einen Job), die von mir geleistete Arbeit völlig ignorieren. Sie scheinen sich nicht einmal darum zu kümmern, meinen Quellcode oder meine Dokumentation anzusehen.

Wundern Sie sich nicht darüber. Interviewer sind nicht immer Personen mit Software-Hintergrund, und wenn dies der Fall ist, haben sie möglicherweise nicht die Zeit, sich den Quellcode aller Personen anzusehen, die sich für den Job bewerben.

Möglicherweise ist dies auch bei Server Frameworks nicht der Fall in Bezug auf die spezifischen Dinge, die sie in diesem Unternehmen tun, so dass es in Ihrem Lebenslauf relevant ist (wie es C ++ ist), aber möglicherweise nicht so relevant für sie in ihrem Bereich.

Bitte beraten Sie mich und geben Sie mir Vorschläge, wie ich beim nächsten Interview vorgehen kann.

Als erstes schlage ich vor, dass Sie versuchen, es ruhig und kühl zu halten . Je ruhiger Sie sind, desto besser können Sie im Interview denken und auftreten. Sie sagen, Sie haben viel Erfahrung in C ++. Denken Sie also daran, wenn Sie das nächste Mal nervös werden.

Zweitens sollten Sie sich der Interviewer bewusst sein, die nach freier Arbeit von Ihnen suchen. As Laut Ihrem Beitrag haben Sie in den Interviews, in denen Sie kürzlich gefragt wurden, wie Sie XYZ mit C ++ entwerfen sollen, erwartet, dass Sie dies tun und vor ihnen beenden.

Je nachdem, was XYZ ist und Was es bedeutet, ist es völlig unvernünftig, während eines Interviews zu beginnen und zu beenden. Höchstwahrscheinlich (ich denke) haben sie Sie gebeten, zu skizzieren und zu beschreiben, wie Sie es in C ++ entwerfen würden, und vielleicht Code mit TODO-Stubs für die komplexen Teile zu schreiben ... aber alles während eines Interviews zu codieren ist ein ziemlich langer Weg .

Wenn Sie das nächste Mal in einem Interview sind und gefragt werden, wie Sie XYZ in C ++ ausführen würden, geben Sie zunächst die Ansätze und Designs an, die Sie verwenden würden. Welche Muster wären nützlich, welche Vorbehalte kann man erwarten und vielleicht welche Tools oder Plugins wären nützlich. Wenn sie nach einem Code fragen, geben Sie den Umriss dafür an und lassen Sie die für ein Interview zu langen Teile als TODO kommentiert.

Denken Sie dabei an das Erste (bleiben Sie ruhig, Sie haben es verstanden), und konzentrieren Sie sich beim Schreiben des Beispielcodes auf den Umriss des Projekts. Versuchen Sie nicht, jeden und jeden Aspekt zu codieren. Versuchen Sie, sich auf das Gesamtbild zu konzentrieren. Definieren Sie die Methoden, die Sie verwenden möchten, codieren Sie diejenigen, die in einem Interview möglich sind, und lassen Sie den Rest leer (aber deklariert).

Eine andere Sache, die Ihnen sehr helfen könnte, ist die Simulation eines Interviewprozesses , wie Sie sagen, Sie kennen sich aus, werden aber nervös, wenn Sie unter Druck stehen und angestarrt werden (wenn Sie einen Freund dazu bringen können, die Rolle des Interviewers zu übernehmen, wäre dies besser). Denken Sie über eine zufällige Projektidee nach und versuchen Sie, sie so präzise wie möglich zu skizzieren, indem Sie einige Ausschnitte schreiben und die komplexen Teile leer lassen ... Vielleicht ziehen Sie (wie ich) es vor, gründlich darüber nachzudenken, bevor Sie mit dem Codieren beginnen. Diese Simulation hilft Ihnen dabei, in Interviews besser zu "improvisieren" und Schnipsel zu schreiben, ohne über jedes mögliche Szenario nachdenken und nachdenken zu müssen.

Da das größte Problem ein Druck zu sein scheint, den die Interviewer im "Simulationsabschnitt" ausüben, würde ich vorschlagen, ihn mit jemand anderem zu üben, wo die andere Person als Interviewer auftreten wird und verrückte Aufgaben hat (nicht)diejenigen, an denen Sie interessiert sind), schauen Sie über die Schulter, stellen Sie einigermaßen dumme Fragen und geben Sie zufällige Antworten auf Ihre Fragen.
@AlexanderM lol, ja, das würde es realistischer machen (einschließlich der Antwort, danke) ... vielleicht würde das Setzen eines Timers auch die Belastung der Simulation erhöhen (und einen Bezugspunkt für die Verbesserung des OP bieten)
Entwicklern werden selten technische Fragen von nicht-technischen Personen gestellt.Niemals bei ernsthaften Unternehmen."Zweitens, achten Sie auf Interviewer, die freie Arbeit von Ihnen bekommen möchten."Nur das kleinste No-Hope-Startup würde dies versuchen und es als Take-Home-Problem bezeichnen.
jesse
2019-06-28 23:43:56 UTC
view on stackexchange narkive permalink

Ich bezweifle, dass sie erwarten, dass Sie ein ganzes System direkt vor ihren Augen aus dem Nichts entwerfen.

Sie möchten wissen, welchen Prozess Sie anwenden würden, um die Arbeit zu erledigen.

Antworte ähnlich wie:

Ich würde zuerst alle Anforderungen sammeln und dann die Ressourcen sammeln, um die Anforderungen zu erfüllen, sobald ich alles hatte, was ich brauchte, um zur Arbeit zu kommen Fahren Sie fort, um das Grundgerüst von X zu erstellen, und beginnen Sie mit dem Aufbau von Y und dann von Z. Schließen Sie anschließend alle "Was nicht". Sobald der Test abgeschlossen und erfolgreich war, dokumentierte ich die gesamte Sache und postete das Projekt ...

oder ähnliches. Wenn sie Sie bitten, ein Sandwich zu machen, verschwenden Sie keine Zeit damit, über den Anbau von Erde zu sprechen, um Mehl anzubauen und Brot zu machen, oder Schweine zu züchten, bevor Sie sie in Schinken verwandeln. Sie möchten einfach nur hören, wie Sie beschreiben, wie Sie Mayo auf Brot verteilen, Käse und Schinken darauf schlagen und es mit einer Serviette abschließen.

"Ich würde zuerst alle Anforderungen sammeln und dann die Ressourcen sammeln, um die Anforderungen zu erfüllen", ist das zu grundlegend, um es zu erwähnen.Der Kandidat sollte zunächst die Anforderungen (Anwendungsfälle) für das System klären.
aaaaa says reinstate Monica
2019-06-29 00:55:29 UTC
view on stackexchange narkive permalink

Ich denke, Sie verstehen zwei Punkte in Bezug auf Design und Designprozess falsch.

Erstens werden Design und Spezifikationen, genau wie Software, nie fertiggestellt, nur veröffentlicht. Das heißt, Sie können immer klein anfangen, den größten Teil des wichtigen Bereichs bei bekannten Bekannten abdecken, bekannte Unbekannte kommentieren und an anderer Stelle Hypothesen aufstellen. Denken Sie daran, dies ist ein Test für Kommunikationsfähigkeiten sowie für technische Kenntnisse.

Zweitens können Sie Design und Implementierung verwechseln. Ich denke, dass aufgrund Ihres Zitats:

In einem Interview wurde ich beispielsweise gefragt: "Wie würden Sie ein Parksystem entwerfen, wenn es mehrere Parkplätze und für verschiedene Fahrzeugtypen gibt?" Nachdem ich aus dem Interview herausgekommen war, wurde mir klar, dass ich hätte sagen sollen: "Parken, Fahrzeug, Slots sind Klassen. Beim Parken werden Mitgliederobjekte der Klasse Slot sein. Auto, LKW, Fahrrad usw. werden sein." abgeleitet von der Klasse Fahrzeug . Und dann können wir geeignete Methoden haben. Einige von ihnen sind virtuell . Die Fahrzeugklasse könnte abstrakt sein und reine virtuelle Methoden usw. haben ... "

Sie werden von Details des Implementierungsprozesses fasziniert, bevor Sie das Objekt entwerfen. Warum benötigen Sie beispielsweise separate Klassen für den Fahrzeugtyp? Moderne Programmiersprachen und -praktiken eignen sich hervorragend für schrittweise Verbesserungen der Software. Beginnen Sie also so einfach wie möglich mit minimalem versandfähigem Produkt. Wie bei den Klassen spot und fahrzeug . Wenn Sie Ihr Programm starten, initialisieren Sie eine Reihe von Spots und warten, bis die Autos vorfahren. Obwohl Sie in C ++ programmieren (ich bin es nicht), denke ich, dass Sie nicht von Anfang an auf OOP gehen müssen.

Michael Jaros
2019-06-29 03:02:50 UTC
view on stackexchange narkive permalink

Warum sie es tun

Interviewer möchten sehen, wie Sie Probleme lösen. Es ist für sie nicht so einfach, Ihre früheren Arbeiten zu bewerten, selbst wenn sie zugänglich sind, da sie nichts über die Parameter wissen und normalerweise nicht genug Zeit aufwenden können, um sie wirklich zu verstehen.

Die Fähigkeit, Probleme auf abstrakter Ebene zu priorisieren und zu besprechen, sind Fähigkeiten, die für einige Jobs wichtig sind. Daher könnten Interviewer auch daran interessiert sein.

Ein weiterer Grund, Ihnen dieselben Fragen zu stellen wie alle anderen Dies erleichtert die Auswertung der Interviews erheblich.

Sie sind nicht allein

Insgesamt klingt Ihre Beschreibung so, als ob es Ihnen nicht unangenehm ist, Design- und Architekturprobleme zu lösen , aber dass Sie es in einer Bewertungssituation möglicherweise nicht so gut machen.

Sie sollten sich nicht zu viele Sorgen machen, dies ist in unserer Branche sehr üblich.

Wenn einige C ++ - Interviews fehlschlagen, bedeutet dies nicht, dass Sie sie nicht haben. In diesen Fällen hat möglicherweise jemand anderes einen besseren Eindruck hinterlassen.

Wie bereiten Sie sich also auf fo vor?

Ich würde vorschlagen: Stellen Sie eine Reihe typischer Designfragen aus dem Internet zusammen, holen Sie sich einen Sparringspartner und lassen Sie sich von ihnen interviewen.

Wenn Sie antworten Gehen Sie bei diesen Fragen nicht zu sehr ins Detail. Versuchen Sie, schrittweise ein Top-Down-Bild Ihrer Lösung zu zeichnen, und weisen Sie dabei auf unklare Anforderungen oder Annahmen hin, die Sie dabei treffen:

Interviewer: Wie würden Sie einen Parkplatz entwerfen? System mit mehreren Parkplätzen und für verschiedene Fahrzeugtypen?

Sie: OK, also sollte unser System die Ticket- und Verkaufsautomaten steuern?

Interviewer: Nein, stellen wir uns vor, der Parkplatz ist vollautomatisch. Sie kontrollieren alle Lose und alle Fahrzeuge, während sie sich auf dem Gelände befinden.

Sie: OK ... ähm ... Wenn ein Fahrzeug ankommt, kann das System die Einreise entweder zulassen oder verweigern?

Interviewer: Ja.

Sie: ... je nachdem, ob Platz für diese Art von Fahrzeug verfügbar ist?

Interviewer: Ja.

Sie: OK. Wenn unser System ein Fahrzeug akzeptiert, muss es an einem geeigneten Ort geparkt werden. Wenn der Kunde es dann zurück haben möchte, muss das System es abrufen und an den Ausgang übertragen.

Interviewer: Genau. Machen wir uns vorerst keine Gedanken darüber, wie genau die Fahrzeuge übertragen werden.

Sie: OK, wir haben verschiedene Fahrzeugtypen und verschiedene Arten von Räumen in unserem System. Ich gehe davon aus, dass jeder Fahrzeugtyp genau einen Raumtyp hat, den er verwenden kann.

Interviewer: Hmm ... OK ... daran habe ich nicht gedacht, Aber kein Problem, Sie können davon ausgehen, dass.

Sie: Ich würde wahrscheinlich eine abstrakte Klasse "Fahrzeug" definieren, um die Funktionalität aller Fahrzeuge zu kapseln. Ich würde dann jeden Fahrzeugtyp als Unterklasse von "Fahrzeug" modellieren. Dann würde ich ...

Interviewer: Sie verwenden also die Vererbung zur Modellierung von Fahrzeugtypen. Was würden Sie Ihrem Kollegen sagen, wenn er dies auf andere Weise implementieren würde: Er verwendet nur eine "Fahrzeug" -Klasse mit einem "Typ" -Mitglied, um die verschiedenen Typen zu unterscheiden.

Sie: ...

Wie Sie sehen, dauert es in diesem Beispiel sehr lange, bis Sie überhaupt die Klassenstufe erreichen. Das Interview, das ich hier geschrieben habe, zeigt dem Interviewer, dass

  1. Sie bereit sind zu fragen, ob Sie Hilfe oder Klärung benötigen
  2. Sie versuchen, das Problem gründlich zu verstehen, bevor Sie darauf eingehen Vermeiden Sie kostspielige Fehler auf der Anforderungsebene und
  3. , dass Sie zwischen verschiedenen Abstraktionsebenen wechseln und die beibehalten können Überblick im Prozess (dieser ist hier nur ein wenig zu sehen).
  4. ol>

    Ihr Sparringspartner sollte nach Möglichkeit jemand sein, der sehr gut versteht, wovon Sie sprechen. Bitten Sie sie, nicht nur auf Ihre Lösung zu achten, sondern auch auf den Eindruck, den Sie bei der Beantwortung ihrer Frage auf sie machen. Würden sie dich einstellen? Warum sollten sie oder warum nicht?

kevin cline
2019-06-29 14:54:50 UTC
view on stackexchange narkive permalink

Ich habe viel interviewt, daher hier ein Standpunkt von der anderen Seite der Tabelle.

"Trotz alledem immer, wenn ich Interviews mit Interviewern sehe (derzeit suche ich einen Job) klingt völlig ohne Rücksicht auf die Arbeit, die ich geleistet habe. Sie scheinen sich nicht einmal darum zu kümmern, meinen Quellcode oder meine Dokumentation anzusehen. "

Wir haben keine Zeit, Ihre 65.000 Zeilen C ++ - Code zu lesen. Selbst wenn wir das tun würden, könnten wir nicht sicher sein, ob es Ihre ursprüngliche Arbeit war. Wir können eine Einstellungsentscheidung auch nicht allein aufgrund Ihres Lebenslaufs treffen. Ich habe Leute mit 15 Jahren Erfahrung interviewt, die einfache Codierungsprobleme nicht lösen konnten, zumindest nicht, während jemand zusah. Gleiches gilt für Absolventen mit einem MSCS und einem 3,9 GPA. Einige können codieren, viele nicht.

Wenn Sie in eine leitende Position bei einem Top-Unternehmen eingestellt werden möchten, müssen Sie sowohl die Fähigkeit zum Codieren als auch die Fähigkeit zum Definieren eines grundlegenden Systemdesigns nachweisen in einer Reihe von Interviews. Die Leute, die das können, werden eingestellt.

Der Vorschlag von Michael Jaros, Übungsinterviews zu führen, ist gut. Am besten üben Sie mit einem Freund, der technische Interviews gibt.

Wenn Sie auch Probleme mit der Whiteboard-Codierung haben, üben Sie dies ebenfalls. Nehmen Sie einige der Probleme aus "Cracking the Coding Interview" oder was auch immer und üben Sie, sie zu lösen, bevor Sie die Lösungen lesen.

Viel Glück.

Fähigkeit, ein grundlegendes Systemdesign zu definieren. Können Sie bitte einen Link zu einer Ressource freigeben, die mir beim Üben / Lernen hilft?Vielen Dank für Ihre Beiträge.
Entschuldige, ich kann nicht.Aber es hört sich so an, als hätten Sie einige Probleme, die Sie aus früheren Interviews gesammelt haben.Üben Sie, sie mit jemandem zu beantworten, der technische Interviews gibt.
Ja, ich war in der Tat schockiert, als ich die Tatsache verdaute, dass die Leute sofort ignorieren, was Sie in all den Jahren getan haben ... und Sie danach beurteilen, was Sie in wenigen Minuten sprechen! ... Wie auch immer, ich bin gerade darüber hinweggekommen.Ich danke Ihnen allen für Ihre freundlichen Worte hier
Es ist mehr als "ein paar Minuten".Menschen, die echte Beiträge zu Softwareprojekten geleistet haben, können ausführlich darüber sprechen.Wir haben gelernt, dass Bildung und Erfahrung nichts garantieren.Würdest du einen Musiker einstellen, weil er einen Abschluss hat, oder möchtest du ihn spielen hören?
Nein, sie haben nie nach meinem Projekt gefragt.Ansonsten habe ich viel zu erzählen.Wie habe ich es konzipiert und abgeschlossen?Wie sich das ursprüngliche Design im Laufe der Zeit entwickelt hat.Wie viel Aufwand ich für die Skalierbarkeit und Leistungsoptimierung usw. unternommen habe. Sie haben mir nur Fragen aus einigen Taschen gestellt, die irgendwo in Internetforen und Videos verfügbar sind.Musiker ist ein wirklich gutes Beispiel, da man Musiker nicht bitten kann, etwas direkt vor ihnen zu komponieren und ihn danach zu beurteilen.Man muss die vielen Kompositionen und Arbeiten sehen, die er in der Vergangenheit gemacht hat.
SemiGeek
2019-06-29 00:28:42 UTC
view on stackexchange narkive permalink

So traurig es auch ist, Interviews erfüllen Ihre Aufgaben nicht. Es sind Verkäufe. Sie sprechen über die Dinge, die Sie tun, nicht tun (oder zumindest nicht in der Tiefe, die ein fertiges Produkt wirklich hervorbringt). Leider ist der Vertrieb bis zum Einstieg in die Führung praktisch UNGLAUBLICH in der Softwareentwicklung, sodass Fähigkeiten, die Ihnen beim Vorstellungsgespräch gute Dienste leisten, nur sehr wenig Anwendung finden, um den Job zu erledigen, für den Sie das Vorstellungsgespräch führen . Er hat Dutzende von Lebensläufen und sechs Kandidaten zu interviewen und er hat all seine normale Arbeit, um wieder zu arbeiten. Er muss nicht wissen, wie leidenschaftlich Sie für ein Projekt sind, das er nicht braucht. Er muss sehen, wie Sie ein Problem lösen können und wie das mit dem Team funktioniert. Er muss wissen, dass Sie eine Leidenschaft für die Art der Arbeit haben, für die er anstellt, und nicht für das spezifische Projekt, das Sie durchgeführt haben.

Es ist unter dem Druck eines Interviews verständlich, aber ich frage mich, ob Sie die Absicht falsch interpretiert haben. Ihre Kommentare beziehen sich beispielsweise auf Klassen, die geschrieben werden. Er fragt wahrscheinlich mehr nach Stubbing-Klassen oder wozu sie dienen könnten.

Interviewer: "Entwerfen einer Aufzugssteuerungssoftware"

Solo: "Lassen Sie uns ein paar Details erfahren. Wie hoch ist das Gebäude? Wie viele Aufzüge gibt es? Fahren alle Aufzüge über die Höhe des Gebäudes oder bedienen verschiedene Buchten unterschiedliche Ebenen? “

Interviewer:„ 19 Stockwerke, zwei Aufzüge, die das gesamte Gebäude bedienen “

Solo:„ Großartig. Ich bin froh, dass ich näher darauf eingehen kann. Benötigen wir einen Notfallzugang oder einen Schlüsselzugang für Penthouse-Böden? Aber lassen Sie uns in nur einer Stunde die Annahmen auf dem halten, was Sie angegeben haben. "

Von dort aus sprechen Sie durch die Kommunikation und basieren ausschließlich auf Schaltflächen. Sie möchten also eine grundlegende Schaltflächenklasse. Diese Klasse enthält eine OnPush () -Methode, die die Schaltfläche beleuchtet und eine Nachricht sendet. Und es wird ein OnComplete () haben, das das Licht ausschaltet, wenn es aufgerufen wird. Von hier aus haben wir zwei grundlegende Arten von Schnittstellen: Rufen Sie einen Aufzug an und bedienen Sie den Aufzug. "Anruf" sendet eine Nachricht an eine Scheduler-Klasse, die verwaltet, welcher Aufzug angerufen werden soll. Die Tasten „Bedienen“ befinden sich im Aufzug und zeigen dem Aufzug an, wohin er fahren soll. Dies kann jeweils eine Unterklasse von "Button" sein.

Denken Sie auch hier daran, dass Sie den Prozess mit Pseudocode-Bits anzeigen und kein funktionierendes System einschalten.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...