Ist es in Ordnung, C und C ++ in einem Interview zu mischen? [geschlossen]

8

Wenn ich in einem Interview gebeten werde, Code aufzuschreiben, sollte ich mich dann vollständig an C ++ halten, oder ist es akzeptabel, die beiden zu "mischen", um einfachen Code zu schreiben, wenn es mir in den Sinn kommt?

Ich werde es erklären: Wenn ich gebeten werde, einen "Stack" -Datentyp zu erstellen, ist eine C ++ - Klasse perfekt geeignet. Wenn ich einige Zeichenfolgen analysieren muss, ist ein strtok / sscanf weitaus einfacher als STL. Auf der anderen Seite, wenn ich einen generischen Container brauche, sind STL und Vorlagen der richtige Weg.

Alles kann in C oder in C ++ gemacht werden, aber in einem Interview kann ich nicht alles codieren oder mich an jede Standard- / STL-Funktion erinnern. Was ist ein akzeptabler Kompromiss?

John Smith
quelle
1
Die meisten C ++ - Programmierer würden sagen, Sie sollten reines C nicht ohne einen verdammt guten Grund einmischen (was Sie besser rechtfertigen können).
Rig
2
Ich denke, ein "Ich kann mich nicht an die STL-Funktion erinnern, um die Zeichenfolgenaufteilung zu handhaben" ist nicht großartig, oder?
John Smith
14
Dass Sie genug wissen, um diese Frage überhaupt zu stellen, wäre ein positives Zeichen in meinem Buch, wenn ich der Interviewer wäre. Fragen Sie sie einfach, was sie wollen.
Großmeister
2
Sprintf und FILE können mir manchmal das Leben in der C ++
Thomas Eding
Wenn ich ein Interviewer wäre, wäre ich nicht beeindruckt, wenn jemand diese Frage beantworten würde, indem er sagt, welche Funktion er aufrufen würde.
James

Antworten:

13

Um wirklich pedantisch zu sein, bietet C ++ Unterstützung für C, nativ vielleicht nur eine Teilmenge , aber wenn das Thema C ++ ist, ist die Programmiersprache C enthalten, und dies ist keine Meinung, ich würde keine Argumente dafür von einem Fachmann erwarten Umgebung.

user827992
quelle
Einverstanden. Darüber hinaus ist C ein Teil von C ++. Warum also nicht zum Nutzen nutzen? Nur an einem Teil der Sprache festzuhalten und den anderen nicht zu berühren, ist meiner Meinung nach kein guter Gebrauch der Sprache.
Pijusn
17

Sofern nicht anders angegeben, können Sie bei den meisten Programmierfragen bei der Beantwortung einer bestimmten Frage die gewünschte Sprache verwenden. Möglicherweise möchten Sie erklären, welche Sprache Sie zur Beantwortung der spezifischen Frage verwenden, um Verwirrung zu vermeiden, und erklären, warum Sie sie verwenden.

Wenn Sie nicht sicher sind, ob dies für den Interviewer in Ordnung ist, fragen Sie - es ist absolut akzeptabel zu fragen, ob Sie verschiedene Fragen in verschiedenen Sprachen beantworten können (in den meisten Antworten auf Papier ist Pseudocode mehr als akzeptabel).

Oded
quelle
4
Ja, das habe ich mir gedacht: Pseudocode. Ich habe keine Wissensbasis im Kopf und neige dazu, mir Techniken und die Art der Verwendung von Dingen zu merken, anstatt Syntax- oder API-Deklarationen (die sich ändern können). Wenn ich es pseudo-codieren kann und eine "anständige" Menge an Programmiererfahrung mit einer Sprache habe, spielt es keine Rolle, was es ist. Ich denke, ich kann es codieren.
John Smith
2
Es wäre ein positives Zeichen in meinem Buch, wenn der Kandidat leicht zwischen C | wechseln könnte C ++ | C ++ & STL und könnte erklären, warum sie einen bestimmten Pfad gewählt haben.
6
@JohnPell - Nach meiner Erfahrung übertrifft das Verständnis von Prinzipien und wie und wann sie anzuwenden jedes Mal tiefe Sprachkenntnisse.
Oded
10

Sie sollten den Interviewer nur fragen, was er bevorzugt, wenn Sie wissen, wie man beide verwendet.

Abhängig von seiner Antwort können Sie entdecken:

  1. wenn er die Unterschiede zwischen C und C ++ wirklich kennt;
  2. wenn er etwas über die C ++ - Standardbibliothek weiß;
  3. wenn es ihm wichtig ist.

Es gibt keine generische Antwort auf diese Frage. Es ist zu abhängig vom Job und den Zielen des Personalvermittlers. Wenn er möchte, dass Sie Sprachkenntnisse zeigen, ist er spezifisch. Wenn er möchte, dass Sie Ihnen Fähigkeiten zur Problemlösung und Kommunikation zeigen, ist ihm das eigentlich egal.

Klaim
quelle
8

Sofern Ihr Interviewer nicht ausdrücklich verlangt, dass Sie in C oder C ++ codieren, würde ich nur das verwenden, was für das Interview angemessen ist.

Wenn mein Kandidat die beiden verwechseln würde, wäre ich für mich mehr an seiner Strategie oder dem Grund für die Vermischung der beiden Sprachen interessiert. Es ist äußerst wertvoll, jemanden in meinem Team zu haben, der eine Lösung bereitstellen und die Lösung rechtfertigen kann .

tehnyit
quelle
1
+1, Begründen ist der Schlüssel. Ich würde sagen, dies ist der Schlüssel, um ein guter Entwickler im Allgemeinen zu sein (neben den Programmierkenntnissen natürlich).
K.Steff
1

Wenn ich in einem Interview gebeten werde, Code aufzuschreiben, sollte ich mich dann vollständig an C ++ halten, oder ist es akzeptabel, die beiden zu "mischen", um einfachen Code zu schreiben, wenn es mir in den Sinn kommt?

Das hängt ganz davon ab, für welche Art von Stelle Sie sich bewerben und welche Sprache Sie erwarten. Wenn Sie C ++ schreiben, ist es im Allgemeinen am besten, sich so weit wie möglich an C ++ zu halten. Ich würde jedoch erwarten, dass jeder C ++ - Programmierer mindestens ein bisschen C kennt (und umgekehrt).

Ich werde es erklären: Wenn ich gebeten werde, einen "Stack" -Datentyp zu erstellen, ist eine C ++ - Klasse perfekt geeignet. Wenn ich einige Zeichenfolgen analysieren muss, ist ein strtok / sscanf weitaus einfacher als STL. Auf der anderen Seite, wenn ich einen generischen Container brauche, sind STL und Vorlagen der richtige Weg.

Wenn sie erwarten, dass Sie während des Interviews einen ganzen Arbeitsdatentyp schreiben, sollten Sie vorsichtig sein. Es ist gut, wenn sie Sie nach technischen Details fragen, aber wenn sie erwarten, dass Sie während des Interviews stundenlang Programme schreiben, sagt das wahrscheinlich etwas Schlechtes über den Arbeitgeber aus.

Wenn Sie scanf () verwenden, haben Sie wahrscheinlich einen großen Fehler gemacht, egal ob C oder C ++. Sie sollten dem Interviewer besser erklären, dass Sie nur etwas schnelles und schmutziges schreiben und niemals scanf im Produktionscode verwenden würden. Es gibt viele Grubenfälle mit verschiedenen Funktionen der C-Bibliothek.

Der Interviewer sollte nicht erwarten, dass Sie sich an jede Funktion im C- und C ++ - Standardbibliothekar erinnern, aber er sollte erwarten, dass Sie wissen, welche offensichtlich gefährlich sind. get (), getchar (), scanf (), setjmp () usw.


quelle
stimme vollkommen zu, es war nur ein Beispiel, ich würde MINDESTENS scanf_s verwenden, und wenn ich kann, würde ich es im Produktionscode VOLLSTÄNDIG vermeiden
John Smith
0

Ich denke, wenn Sie tatsächlich ausdrücklich aufgefordert werden, eine kurze Aufgabe in C ++ zu erledigen, wäre es von größter Wichtigkeit, tatsächlich bei C ++ zu bleiben und C nicht damit zu mischen. Modernes C ist keine Teilmenge von modernem C ++, da ein solches Mischen der beiden nur bedeuten würde, dass Sie nicht sehr vertraut mit sauberem, modernem C ++ sind.

zxcdw
quelle