Gestern hatte ich eine schreckliche Erfahrung in einem Interview.
Der Interviewer fragte mich nach der rein virtuellen Funktion. Ich sagte: Es kann oder kann nicht Definition in der Basisklasse haben, aber abgeleitete Klassen sollten Definition zur Verfügung stellen, es sei denn, sie möchten auch abstrakte Klasse sein.
Aber der Interviewer fragte immer wieder: "Kann rein virtuell eine Definition haben !!! ???" ... Ich sagte ja.
Wieder sagte er "Pure?"
Ich sagte ja. Abgeleitete Klassen können diese Funktion explizit aufrufen, wenn sie dieses bestimmte Verhalten wünschen.
Er hat mich rausgeschickt. Ich bin mir sicher, dass er nicht weiß, dass rein virtuelle Funktionen eine Definition haben können.
Wie gehe ich mit solchen Interviewern um?
Sollte ich nach der zweiten Frage lügen, dass es keine Definition geben kann? :)
Oder sollte ich mich an meine Worte halten und die Arbeitsmöglichkeit verlieren?
arr[++i] = i
. Und als ich sagte, dies rufe undefiniertes Verhalten hervor und erzählte ihm von Sequenzpunkten , war er für einen Moment sprachlos, und dann ließen sein Gesichtsausdruck und seine weiteren Fragen mich glauben, dass er diese Begriffe noch nie zuvor gehört hatte!Antworten:
Nein. Und Sie sollten Ihren Glückssternen danken, dass Sie von dieser bestimmten Kugel vermisst wurden. Für Menschen zu arbeiten, die sich weigern zuzugeben, dass sie möglicherweise nicht alles wissen und nicht von anderen lernen, ist eine SEHR unangenehme Erfahrung.
quelle
Beispiel einer rein virtuellen Funktion mit einer Definition:
quelle
Es geht nicht um technische Korrektheit, sondern um soziale / kommunikative Fähigkeiten. Stehe fest, aber nimm den Standpunkt des Interviewers zur Kenntnis und erlaube ihm, das Gesicht zu wahren.
Sobald Sie sehen, wonach er gefischt hat ("rein?" Ist ein guter Hinweis), könnte eine gute Antwort lauten:
quelle
Sie hätten erklären können, wie eine rein virtuelle Funktion mit einer Implementierung deklariert wird.
Ich wünschte, Sie wären hier, weil ich auch nicht mit der Vorgehensweise vertraut bin.
quelle
Wenn ich einen Kandidaten interviewe, schaue ich oft, wie die Person mit Unsicherheit umgeht oder mit Konfrontation umgeht. Seien Sie das nächste Mal, wenn Sie ein Interview führen, sensibel und versuchen Sie, die Frage konstruktiv zu beantworten oder Ihre Position zu erläutern. Das ist vielleicht wichtiger als die richtige Antwort.
quelle
Ich war in Interviews, in denen ich mehr wusste als mein Interviewer. Sie wollten jedoch, dass jemand eine Rolle ausfüllt, und hatten (natürlich) niemanden, der auf dieser Ebene interviewen konnte.
Haben Sie in Ihrem Fall das Gefühl, dass es sich um blinde Ignoranz oder echtes Missverständnis handelte? Vielleicht eine Folge-E-Mail mit Beispielen und Referenzen: Sehen Sie, wie sie reagieren, bevor Sie sich entscheiden.
Ich tendiere zur "blinden Ignoranz", obwohl ich mich auf Ihre Frage stütze und klar bleiben würde ...
quelle
In einer solchen Situation würde ich vorschlagen, eine einfache Klasse mit einer virtuellen Funktion mit einem Körper zu schreiben und zu prüfen, ob diese kompiliert wird. Zumindest würde ich vorschlagen, das Thema zu googeln.
Wenn der Interviewer die Herausforderung annimmt, eine Niederlage zugibt und danach nicht so aussieht, als würde er Sie erwürgen, sollten Sie in guter Verfassung sein. Andernfalls ist dies wahrscheinlich nicht die Person, mit der Sie arbeiten möchten.
quelle
Ich bin völlig anderer Meinung als der Gedanke, dass Sie ein Unternehmen aufgeben sollten, weil der befragte Mann die Antwort auf seine Frage nicht kennt. Selbst wenn du arbeitest, triffst du Leute, die hartnäckig sind, auch wenn sie falsch liegen. Es ist eine gute Fähigkeit, Menschen zur richtigen Antwort zu manövrieren.
In meinem Fall fragte der Interviewer, wie die Varianz vieler Zahlen auf vielen Maschinen berechnet werden soll. Zunächst sagte ich, dass die Varianz der Mittelwert der Quadrate minus dem Quadrat der Mittelwerte ist. Er warf ein: "Nein, das ist es
E[(x - mu)²]
."Ich sagte: "Ja, du hast recht. Aber deine Formel ist die gleiche wie meine. Lass es uns gemeinsam ableiten." Und dann haben wir es zusammen abgeleitet.
Wenn Sie in Ihrer Situation feststellen, dass der Interviewer ungläubig ist, müssen Sie Ihren Ansatz ändern. Sagen Sie ihm, dass es sich um eine selten bekannte Funktion handelt (damit Sie weniger als Besserwisser erscheinen). Wenn er möchte, senden Sie ihm nach dem Interview ein Beispielprogramm oder einen Verweis auf ein C ++ - Buch damit sich das interview anmutig weiterentwickeln kann.)
Versuchen Sie sich Dinge aus seiner Perspektive vorzustellen. Du wirst eines Tages Leute interviewen und manchmal liegst du falsch. Wie soll ein glänzender Kandidat eine solche Frage beantworten?
quelle
Ich denke, Sie hätten das Interview vom Schreibtisch auf einen Computer mit einem Compiler verschieben sollen. Das hätte das Problem gelöst.
quelle
EDIT: anscheinend irre ich mich total, siehe Kommentare unter dieser Antwort. Lassen Sie die Antwort hier für pädagogische Zwecke.
Leider irren Sie sich. Eine virtuelle Funktion kann eine Definition haben. eine rein virtuelle funktion darf das nicht. Das Fehlen einer Definition macht es rein.
quelle
Sie wissen, dass alles, was Sie beantwortet haben, richtig ist. Meiner Meinung nach haben Sie gute Arbeit geleistet, indem Sie sich an Ihre Antwort gehalten haben, da Sie Recht hatten. Es gibt keinen Grund zu lügen, denn wenn nicht heute, wird ein anderer Interviewer etwas über reine virtuelle Funktionen lernen !!!! Sind Sie derjenige, der sich leicht hinreißen lässt? Es besteht kein Grund, die Hoffnung zu verlieren, da Sie Ihr Recht kennen
quelle