C ++ Kenntnisse höher als C Kenntnisse? [geschlossen]

28

Ich habe das Gefühl, dass das oft gesehene C / C ++ meine Fähigkeiten in meinem Lebenslauf nicht wirklich beschreibt. Daher plane ich, es in fortgeschrittene C ++ - Kenntnisse und mittelmäßige C-Kenntnisse zu unterteilen.

Denken Sie, dass dies für den Leser verwirrend ist? Sie könnte denken: "C ist eine Teilmenge von C ++, also, was versucht dieser Typ, mich anzurufen?" Nun, ich versuche zu sagen: Ich habe mehrere C ++ - Projekte in der realen Welt gemacht, während reine C-Projekte nur ein Hobby waren. Stimmen Sie zu, dass ein erfahrener C ++ - Programmierer nicht unbedingt ein qualifizierter C-Typ ist, oder denken Sie, dass dieser Wechsel einfach ist?

h0b0
quelle
1
Genau das mache ich. Es hat mich nicht daran gehindert, einen Job zu finden.
Martin York
9
Ich habe lange keinen Lebenslauf geschrieben, aber ich spreche immer über C und C ++ als zwei völlig verschiedene Sprachen.
Rei Miyasaka
2
@ReiMiyasaka - Gut, denn sie sind zwei völlig verschiedene Sprachen. Beide wurden aktualisiert und unterscheiden sich von dem Zeitpunkt, als C ++ als Ergänzung zu C.
Izkata
Ich glaube, dass C / C ++ nicht dasselbe ist und es sich um völlig unterschiedliche Sprachen handelt. Das einzige, was häufig vorkommt, ist das 'C' im Namen (ganz zu schweigen von der engen Syntax)
Qchmqs

Antworten:

31

Sie haben so viele Fragen in einer gestellt; Lass mich versuchen zu antworten, während ich sie trenne. Ich stelle viele Leute ein, die in diesen Profiltyp fallen, und oft muss ich so viele Interviews führen und Leute ablehnen, weil sie oft keine eindeutige Antwort auf die von Ihnen gestellten Fragen haben.

  1. Ist eine gute Beherrschung von C oder C ++ ausreichend, um Sie für das andere Programm zu qualifizieren?
    Wenn Sie auf einem höheren Niveau sind, ist das eigentlich NEIN. Das heißt, wenn Sie 6 Jahre lang C ++ - Programmierung für einige zentrale Unternehmensanwendungen durchgeführt haben und jetzt versuchen, Sie in eingebettete Systeme zu integrieren, die alle in C enthalten sind - wahrscheinlich ist Ihre Programmiersyntax und das Debuggen von Inhalten kein Problem. Aber wenn Sie über ein Problem nachdenken müssen, sind Sie mit Sicherheit sehr unordentlich. Dies gilt von einer Seite zur anderen. Je mehr Jahre Sie nur einen Sprachtyp verbracht haben, desto weniger einfach ist es, ihn in eine andere Form umzuwandeln! Es geht nicht darum, ob Sie die Syntax der Sprache lernen können, sondern Sie denken tatsächlich anders, wenn Sie in C, C ++, Java, Perl und Python sind. Um die Frage zu stellen - am häufigsten - können C ++ - und Java-Typen synonym verwendet werden, ebenso wie Perl, PHP und Phython. C ist eine ganz andere Rasse!

    Wenn Sie ein relativ junger Mann sind, besteht die Chance, dass Sie schnell aufholen können.

  2. Bedeutet das, dass ich über höhere Fähigkeiten verfüge, wenn ich C ++ und nicht C kenne
    ? Nein, denn wenn Sie in der Lage sind, ein vollständiges Produkt aus C zu erstellen, ist dies in der Regel eine viel schwierigere Aufgabe als in C ++. Die Anzahl der Personen, die die Fehlerbehebung bei gemeinsam genutzten Speichersystemen beherrschen, ist viel geringer als die Anzahl der Personen, die mit VC ++ oder einem ähnlichen Framework ein anständiges GUI-Programm schreiben können.

  3. Bedeutet dies, dass das Wissen um C (oder die niedrigste Programmierstufe) die höchste Leistungsstufe ist?
    Nein schon wieder! Dies ist kein Widerspruch. Diesmal hängt es von der Domain ab, die Sie vergleichen. Wenn Sie sich mit der Systemprogrammierung innerhalb des Linux-Kernels befassen oder etwas sehr hardwarenahes, ist die Programmierfähigkeit in C relevanter. Wenn Sie jedoch Bankensoftware oder einige Geschäftsregel-Engines schreiben, ist C ++ in der Regel eine natürliche Wahl. Der Punkt ist, dass Ihre wahre Stärke nicht in der Syntax der Sprache liegt, sondern in der Art und Weise, wie Sie eine Klasse von Problemen lösen, und Sie können nur hoffen, einige Kategorien / Bereiche in Ihrem Leben zu meistern. Wenn Sie etwas in Ihren Lebenslauf aufnehmen - das ist es, was wirklich zählt.

  4. Bedeutet das, dass ich, wenn ich nur in C war, keine objektorientierte Programmierung kenne?
    Keineswegs. In der Tat ist mein Lackmustest im Interview, um zu wissen, ob der Typ aus C-Hintergrund oder C ++ stammt, eine sehr einfache Frage: "Können Sie also objektorientiertes Programmieren in C durchführen?" - Der Typ springt und sagt - "Auf jeden Fall NEIN!" er / sie ist C ++ Fellow. Der Punkt ist, wenn Sie wirklich sehr komplexen Code wie Multimedia-Code, ein Multithread-System, einen Protokollschichtstapel schreiben, denken Sie immer noch wie Objektcode - der C-Compiler bestraft Sie nicht, wenn Sie schlecht darin sind, zwei Routinen zu kapseln oder Objekte - aber wenn das System skaliert, das Sie immer wieder begeistert - ich glaube manchmal -, gibt es viele, die in der Ära der Objektorientierung geboren wurden. Oft sind sie ziemlich schwach darin, wie genau die Kapselung in einem Code, der so ziemlich verletzt wird, wirklich verletzt wird gefüllt mit Klassen und Objekten. Sorry, ich schweifte ab. Der springende Punkt ist jedoch, dass es mehr auf Ihre Fähigkeiten zur Problemanalyse und zum Entwerfen ankommt als nur auf Ihre Programmierkenntnisse.

Bedeutet das, dass ich fachspezifische Belichtungs- und Designfähigkeiten gezielt einsetzen sollte?
Definitiv Ja!

Dipan Mehta
quelle
9
+1 Um darauf hinzuweisen, dass Sie ein objektorientiertes Design haben und es dennoch in C implementieren können.
Giorgio,
16
@ Dipan: Seien Sie vorsichtig, wenn Sie altersabhängige Annahmen treffen. Einige ältere Leute "holen" auch ziemlich schnell auf. Einige von ihnen laufen wahrscheinlich schneller als Sie.
Kevin Cline
15
Ich bezweifle stark, dass "C ++ - und Java-Typen austauschbar sind".
Fredoverflow
6
Ich bin auch nicht einverstanden mit # 2. Wenn Sie C ++ kennen, können Sie C # oder Java in relativ kurzer Zeit erlernen. Das Erlernen von C ++, wenn Sie eines der beiden anderen kennen, erfordert jedoch viel Zeit und Mühe und erfordert, dass Sie zunächst viel von dem "verlernen", was Sie in C # oder Java vorausgesetzt haben.
sbi
1
@sbi: Ich streite nicht wirklich sehr spezifisch über C ++, JAVA oder C. Ich habe nicht die Absicht, die Beziehung zwischen Sprachen zu verallgemeinern. Ich gehe auch nicht von der Vermutung aus, dass Menschen nicht wirklich lernen oder Dinge verlernen können. Das einzig Entscheidende ist, dass verschiedene Sprachen unabhängig von ihrer syntaktischen Beziehung auch unterschiedliche Denkmuster aufweisen, und das ist es, was für die Passung der zu vergebenden Rolle zählt.
Dipan Mehta
27

Für die Menschen, die wirklich wichtig sind , sollte es sie nicht verwirren.

Jeder, der sich mit C- und C ++ -Programmierung auskennt, weiß, dass die Produktionsprogrammierung trotz ihrer Ähnlichkeiten und ihrer Geschichte häufig ein völlig anderes Tier ist.

Dan McGrath
quelle
12

Persönlich finde ich es sehr ärgerlich, wenn Leute "C / C ++" schreiben, weil C und C ++ sehr unterschiedliche Sprachen sind. Wenn ich dagegen "C, C ++" oder "C ++ und C" in einem Lebenslauf sehe, beeindruckt es mich ohne Ende. Leider schreibt fast jeder "C / C ++" und es bedeutet normalerweise "Ich kenne C ++, aber ich kann C tun, wenn ich muss."

Außerdem wäre ich im Lebenslauf nicht so spezifisch. Listen Sie einfach die Programmiersprachen auf, die Sie kennen, möglicherweise in der Reihenfolge von den kompetentesten bis zu den am wenigsten kompetenten. Das sollte Sie hinter den HR-Modewort-Filter bringen, und dann können Sie während eines technischen Interviews erklären, wo Ihre Stärken und Schwächen liegen.

Dima
quelle
4
Einverstanden. Ich würde kaum "C / C ++" in meinen Lebenslauf schreiben, als würde ich "Java / JavaScript" schreiben, als wären sie dasselbe.
Ich schreibe oft C / C ++, obwohl ich weiß, dass es sich um verschiedene Sprachen handelt. Da Sie eine der beiden Sprachen gelernt haben, ohne sich um die anderen zu kümmern, sind Ihre Kenntnisse in beiden Sprachen unvollständig. Sie können kein guter C ++ - Programmierer sein, ohne zumindest OO zu studieren, wobei C ++ die natürliche Wahl ist, um zu lernen, wie man OO in C ausführt C. In einem Lebenslauf stimme ich jedoch zu, dass sie getrennt sein sollten.
1
@OrbWeaver, ein großer Unterschied ist, dass Sie oft ein C-Programm nehmen können (solange es nicht zu komplex ist), es einem C ++ - Compiler zuführen und eine ausführbare Datei daraus erstellen können, die tatsächlich das macht, was aus einem herauskommt C-Compiler würde tun. Sie können ein Java-Programm nicht in einen JavaScript-Parser einspeisen (oder umgekehrt) und aus der Übung auch nur annähernd Nützliches herausholen. Ich bin damit einverstanden, dass C und C ++ unterschieden werden sollten. Meiner Meinung nach gehört das Schreiben C/C++und Java/Javascriptals ob sie gleich wären, immer noch zu zwei sehr unterschiedlichen Ligen.
ein Lebenslauf vom
+1 für den Rat - listen Sie einfach die Programmiersprachen auf, die Sie kennen, möglicherweise in der Reihenfolge von am besten bis am schlechtesten. Das sollte dich hinter den HR-
naiv
7

Nein, es sollte nicht verwirrend sein, da C und C ++ sich in Bezug auf Paradigma und Verwendung unterscheiden, obwohl sie ähnlich sind und ähnliche Wurzeln haben. Es sollte also getrennt werden, auch das Fachwissen sollte getrennt werden. Außerdem denke ich, dass Sie spezifischere Fachkenntnisse (wie GUI / FLTK oder andere Bibliotheken, mit denen Sie vertraut sind) mit den beiden getrennt erwähnen können.

aggietech
quelle
5

Ich mochte Ihre Formulierung: "Ich habe mehrere C ++ - Projekte in der realen Welt gemacht, während reine C-Projekte nur ein Hobby waren."

Also habe ich es einfach in den CV-Jargon geschrieben:

  • arbeitete an mehreren C ++ - Produkten
  • ein paar Nebenprojekte mit C

Es ist besser, wenn Sie Zahlen anstelle von "mehreren" und "wenigen" eingeben. Keine Notwendigkeit, genau zu sein, "über zwanzig" ist eine Zahl für diesen Zweck.

Die Beschreibung der "Fähigkeitsstufe" ist korrekt , aber die Beschreibung der "Erfahrung" ist korrekt und klar.

Emilio M Bumachar
quelle
3

Ich bin damit einverstanden, dass C und C ++ verschiedene Sprachen sind und im Lebenslauf getrennt aufbewahrt werden sollten. Obwohl C (fast) eine Teilmenge von C ++ ist, habe ich normalerweise einen ganz anderen Programmierstil, wenn ich C verwende: Ich gestalte anders, ich codiere anders und so weiter. Ich würde sogar bestimmte C-Funktionen wie #includes aus C ++ entfernen und damit die Abwärtskompatibilität aufheben: Es handelt sich einfach um verschiedene Sprachen.

Mein Rat ist daher, die beiden Sprachen in Ihrem Lebenslauf getrennt zu halten.

Giorgio
quelle
3

Wenn die Person, die Sie evaluiert, die Neigung hat zu denken, "C ist eine Teilmenge von C ++", ist sie bereits verwirrt, und ich bin sicher, dass Ihre Erklärung dessen, was in Ihrem Lebenslauf steht, ausreicht, um sie zu beeindrucken.

Mr_Spock
quelle