Frage:
Wie kritisch ist ein kleiner Programmierfehler während eines Interviews?
hetelek
2013-12-04 06:14:52 UTC
view on stackexchange narkive permalink

Ich verstehe, dass dies eine ziemlich allgemeine Frage ist und von der Firma abhängt, aber ich werde versuchen, sie zu erklären.

Ich hatte ein Problem, bei dem ich Code schreiben musste, um ein Sudoku-Puzzle zu verifizieren wurde korrekt gelöst (Eingabe mit einem zweidimensionalen Array). Der Interviewer ließ mich zu einer https://code.stypi.com Seite gehen und hatte eine Vorlage für mich bereit. Er beobachtete, wie ich den Code schrieb, um das Sudoku-Puzzle zu verifizieren, und stellte mir Fragen, warum ich es so gemacht habe, wie ich es getan habe.

Jetzt konnte ich auf der Website, die er mir gegeben hatte, nicht kompilieren, ausführen, oder debuggen Sie den Code (ich fragte ihn). Es war gleichbedeutend mit dem Schreiben in einem Texteditor und hoffte, dass es funktionierte. Ich beendete den Code und das Interview endete. Mir wurde gesagt, dass ich kontaktiert werde, wenn jemand den Code überprüft.

Sobald er beendet war, habe ich den Code natürlich getestet, um festzustellen, ob er funktioniert. Es gab kleinere Fehler, wie z. B. erneute Deklarationen von Variablennamen und Variablen, die nicht definiert waren (weil ich einige umbenannt habe und nicht daran gedacht habe, die Teile zu ändern, in denen ich sie verwendet habe).

Neben diesen Fehlern habe ich hatte einen großen. Dies ist der Teil, der meinen Algorithmus tatsächlich durcheinander gebracht hat. Ich habe an einer Stelle ein + und - hochgeschaltet, sodass der Code aus diesem Grund nicht so funktionierte, wie es angenommen wurde. Wenn Sie jedoch das + und - an dieser einen Stelle umgeschaltet und wie 1 Neudeklaration und 1 undefinierte Variable korrigiert haben, hat es perfekt funktioniert.

Dies war mein erstes Interview, also wirklich nicht weiß, wie gut ich es gemacht habe. Wenn ich Code geschrieben und nur alleine daran gearbeitet hätte, hätte ich nach dem Kompilieren gesagt: "Wow, ich kann nicht glauben, dass ich nur 4 Fehler habe, nachdem ich das geschrieben habe ...".

Ist das eine große Sache oder versucht das Unternehmen festzustellen, ob ich grundlegende Programmierkenntnisse habe oder nicht? Ich habe das Gefühl, dass es unfair für sie ist, dies hart zu nehmen, weil ich es nicht testen oder kompilieren konnte - was offensichtlich unrealistisch ist.

BEARBEITEN: Der eigentliche Fehler war auch leicht aufzuspüren. Die Reparatur dauerte weniger als 3 Minuten nach Ende des Interviews.

Unterschätzen Sie nicht den Wert zu wissen, wie Sie denken und arbeiten. Dies ist sehr wichtig, wenn Sie sich für eine kulturelle Passform entscheiden. Ich persönlich würde keinen perfekten Code erwarten, ohne kompilieren und ausführen zu können, aber ich würde wirklich gerne wissen, wie Sie ihn geschrieben haben.
Ich würde nach dem Interview unbedingt nachverfolgen und in Betracht ziehen, den Arbeitscode aufzunehmen.
Fünf antworten:
#1
+15
Joe Strazzere
2013-12-04 18:00:21 UTC
view on stackexchange narkive permalink

Ist das eine große Sache, oder versucht das Unternehmen festzustellen, ob ich über grundlegende Programmierkenntnisse verfüge oder nicht?

Die einzigen Personen, die diese Frage wirklich beantworten können, sind bei die Firma, in der Sie interviewt haben. Niemand hier weiß genau, was sein Ziel bei dieser Aufgabe war und wie sie es erreichen werden. Wir können nur spekulieren.

Die meisten Unternehmen wären mehr an Ihrem allgemeinen Kenntnisstand, Ihrem Ansatz und den Erklärungen interessiert, die Sie zu ihren Fragen gegeben haben, als Sie Ihren Code geschrieben haben.

Aber einige Unternehmen betrachten diese Übungen als ein Maß für hervorragende Leistungen und richten sie so ein, dass sie bestanden / nicht bestanden werden. Wenn Sie eleganten Code schreiben und dieser funktioniert, bestehen Sie. Wenn nicht, scheitern Sie.

In meiner Firma sind wir eher in der ersteren Kategorie. Wir sind in der Regel mehr am allgemeinen Verständnis und der Vorgehensweise als an der genauen Korrektheit interessiert.

Ein weiterer Faktor, der ins Spiel kommt, ist das Erfahrungsniveau, das mit der Rolle verbunden ist, für die Sie sich bewerben. Ein Junior-Entwickler kann beispielsweise nicht den gleichen Standards unterliegen wie ein Senior-Software-Architekt.

Ich finde es unfair, wenn er dies hart nimmt, weil ich es nicht testen konnte oder kompilieren Sie es - was offensichtlich unrealistisch ist.

Es ist schwierig, etwas in einem Interview als "unfair" zu charakterisieren - insbesondere, wenn Sie nicht wissen, wie Sie bewertet / beurteilt werden. Mit ziemlicher Sicherheit durchlaufen alle anderen Kandidaten für diesen Job dieselbe Übung. Wenn es für Sie "unfair" ist, ist es auch für sie ähnlich "unfair".

Soweit "unrealistisch", es sei denn, Sie haben sich bei einem Unternehmen beworben, das Code verkauft, um dies zu überprüfen Sudoku-Rätsel ", natürlich ist es unrealistisch. Das ist die Natur von Interviewtests. Ich denke, wir könnten den Wert eines solchen Tests für diesen speziellen Job argumentieren. Aber ob gut oder schlecht, so arbeiten einige Unternehmen. Und wenn Sie die Chance haben möchten, in ihrem Unternehmen eingestellt zu werden, gehen Sie die Interviews durch und halten sich an die Regeln.

Und ein Großteil davon, wie sehr dies schaden wird, ist, dass Sie mit der Leistung der anderen befragten Personen verglichen werden. Wenn sie mehr Fehler gemacht haben oder das Problem überhaupt nicht lösen konnten, sind Sie in guter Verfassung. Wenn sie es ohne Fehler gemacht haben, könnte dies ein Deal Breaker für Sie sein.
Unrealistische Übungen können wahr werden. In Java sind beispielsweise viele alltägliche Aufgaben in die Standardbibliotheken integriert. Früher war ich der Typ, der sagte, dass das Auffinden von Duplikaten in einem Array unrealistisch ist, weil niemand so niedrigen Code in Java schreibt. Dann fand ich zwei Methoden, die zusammenarbeiten, um 5 Ebenen verschachtelter Schleifen zu bilden, um nach doppelten Ganzzahlen in einem Array zu suchen. Ich muss die unlesbarsten 150 Codezeilen, die ich je gesehen habe, durch ein neues HashSet () ersetzen. Daher können "unrealistische" Interviewtests sehr wertvoll sein.
Ich denke, das Gefühl "wird niemals passieren" in Bezug auf diese Frage hängt viel mehr mit dem "Sie können nicht überprüfen, ob dies funktioniert" zusammen als mit dem spezifischen "Überprüfen, ob das Sudoku gelöst ist". Ich selbst kann mir nicht viele Situationen vorstellen, in denen Sie Code schreiben müssen, den Sie nicht überprüfen können, und die meisten von ihnen würden entweder nicht für einen Junior gelten oder durch schwerwiegende Fehlerbehebungen bei behebbaren Workflows verursacht werden ...
#2
+7
Telastyn
2013-12-04 07:34:18 UTC
view on stackexchange narkive permalink

Im Allgemeinen sind kleinere Fehler bei der Programmierung von Whiteboards oder Texteditoren keine große Sache. Syntax ist weniger wichtig als Konzepte und wie Sie mit dem vorliegenden Problem umgehen.

Trotzdem scheint mir die erneute Deklaration von Variablen eine große Sache zu sein. Es zeigt an, dass Sie ihnen schlechte Namen gegeben haben, Funktionen hatten, die zu lang waren oder einfach nicht vorsichtig sind.

Und das Wechseln der Operatoren könnte eine große Sache sein, da die Art und Weise, wie Sie es codiert haben, einen solchen Fehler möglicherweise nicht offensichtlich macht. Das Problem dort ist natürlich nicht der Fehler, sondern dass sich Ihr Code für Fehler eignet.

Insbesondere bei einem Problem, das so trivial ist wie die Überprüfung einer Sudoku-Lösung, wäre ich besorgt darüber, wie diese Fehler entstehen würden Anzahl und Schweregrad mit einem echten Problem - Compiler oder Nr. Auch wenn im Allgemeinen kleine Fehler keine große Sache sind.

#3
+5
JB King
2013-12-04 06:49:58 UTC
view on stackexchange narkive permalink

Abhängig von der von Ihnen angegebenen Kompetenz, den Erwartungen des Unternehmens und den Aussagen im Interview selbst kann dies von einer großen Sache bis zu einer eher trivialen Angelegenheit variieren. Sie hätten manuelle Tests durchführen können, um den Code zu überprüfen und die Funktionalität zu überprüfen, bei der einige der Fehler aufgetreten sein könnten. Haben Sie jemals etwas über die Qualität des von Ihnen produzierten Codes gesagt? Wenn ja, dann könnten Sie dort Probleme haben. Wenn Sie beispielsweise behaupteten, der Code sei fehlerfrei und perfekt, könnten Sie Probleme haben, da das Unternehmen Ihre Fähigkeit, ehrlich zu sein, in Frage stellen könnte.

Während Sie weniger als 3 Minuten brauchten, um ihn zu beheben, ist dies der Fall Firma wissen das? Haben Sie eine nachfolgende Dankesnachricht mit diesen im Anhang gesendet? Wenn Sie dies getan haben, verlassen Sie sich darauf, dass das Unternehmen Fehler zulässt und diese bewertet. Auf der anderen Seite kann das Unternehmen die Überprüfung einer Sudoku-Lösung als etwas betrachten, das leicht zu überprüfen ist, wenn Fehler in der Regel schwer zu überwinden sind.


Während Sie in der High School sind Es ist wahrscheinlich, dass dies keine große Sache ist. Wenn Sie ein Entwickler mit 5 Jahren Erfahrung mit einem Universitätsabschluss waren und solche Fehler gemacht haben, kann dies auf eine andere Weise geschehen.

Die Firma weiß nicht, dass ich es repariert habe - überhaupt nicht. Ich habe ein Dankeschön geschickt, aber nicht einmal den Code erwähnt, den ich geschrieben habe. Ich habe auch kein sehr hohes Niveau angegeben, und ich habe keinen Abschluss (noch in der High School). Ich habe die Qualität des Codes nicht angegeben und hoffe, dass der Interviewer meine Frage beantwortet hat: "Kann ich debuggen?" in Betracht.
#4
+2
nycynik
2013-12-05 02:26:21 UTC
view on stackexchange narkive permalink

Kein Deal Breaker.

Ich würde ihnen die Korrekturen per E-Mail senden, wenn Sie sich sicher sind. Das würde sie wissen lassen, dass Sie darüber nachgedacht und hart gearbeitet haben.

Wenn ich mit einem Whiteboard interviewe, suche ich normalerweise nach großen Bildelementen, aber wenn es grobe Fehler gibt, versuchen sie es nicht es "mental" laufen zu lassen, kann ein schlechtes Zeichen sein. Das umgedrehte +/- ist wahrscheinlich überhaupt keine große Sache.

#5
-1
Anonymous Coward
2020-02-19 22:21:58 UTC
view on stackexchange narkive permalink

Ist das eine große Sache oder versucht das Unternehmen festzustellen, ob ich über grundlegende Programmierkenntnisse verfüge oder nicht?

Es sollte keine große Sache sein. So gut wie niemand schreibt Code ohne einfache Fehler auf einmal.

Aber die Art von Unternehmen, bei der dies keine große Sache ist, ist auch die Art von Unternehmen, mit der Sie einen Compiler in einem Test verwenden können. Ich vermute also, dass es für sie relevant ist.

Ich habe das Gefühl, dass es unfair für sie ist, dies hart zu nehmen, weil ich es nicht testen oder kompilieren konnte - was offensichtlich unrealistisch ist.

In der Tat ist es unrealistisch. Das Schreiben von Code erfolgt im Allgemeinen nicht ohne einen zu überprüfenden Compiler.

Es ist unfair, da es eine Fähigkeit belohnt, die für die Arbeit nicht wirklich relevant ist: korrekten Code zu schreiben, ohne einen Compiler zu benötigen.

Da Interviews in beide Richtungen funktionieren, möchten Sie vielleicht Folgendes berücksichtigen: Haben sie Ihre Kriterien für ein Unternehmen erfüllt, dem Sie beitreten möchten?



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 3.0-Lizenz, unter der er vertrieben wird.
Loading...