Meine Programmierklassen in der Schule waren C ++, aber ich habe in den letzten Jahren einen Job in C # gemacht. Wenn es eine Position gäbe, die beispielsweise 1 oder 2 Jahre Erfahrung in C ++ erfordert, wäre meine Erfahrung in C # eine Überlegung wert? Wie effektiv könnte ich in einer solchen Position sein? Muss ich als C ++ - Einsteiger anfangen, um die nötige Erfahrung zu sammeln?
c#
c++
experience
MetaGuru
quelle
quelle
Antworten:
Das Problem hierbei ist, dass C ++ und C # grundsätzlich extrem unterschiedliche Sprachen mit unterschiedlichen Ansätzen für viele Probleme sind. Es ist leicht, sie als "Eine OO-Sprache" zu fassen, aber die einfache Tatsache ist, dass viele C # -Idiome in C ++ als sehr schlechter Code angesehen werden (und umgekehrt).
Wenn Sie tatsächlich die Unterschiede kennen und wissen, wie C ++ - Redewendungen aussehen, dann sehe ich keinen Grund, warum es nicht in Ordnung sein sollte.
quelle
Ich war vor ungefähr 2 Jahren im selben Boot. Ihre C # -Erfahrung wäre für einen C ++ - Job wahrscheinlich nicht so viel wert wie für einen C # -Job. Das heißt, wenn Sie wissen, wie C # tatsächlich funktioniert (sehr wenige C # -Programmierer tun dies tatsächlich) und Ihr C ++ gut gelernt haben, wird C ++ nicht das Problem sein. Was das Problem sein wird, ist die Art und Weise, wie Sie sich an bestimmte Designmuster gewöhnt haben, die für c ++ zu hoch sind.
Zum Beispiel vom netten ADO.NET-Datenzugriffsmodell zur Verwendung von cppcon für den Mysql-Zugriff, System.Collections.Generic zur Verwendung von stl, Mehrfachvererbung, Garbage Collection zur Bereinigung Ihres Speichers in Destruktoren und so weiter ... alle neigen dazu harte Übergänge sein. C ++ ist nicht das Problem, das Erlernen der Bibliotheken, Entwurfsmuster und deren Verwendung ist die Herausforderung. Die meisten Personalvermittler erkennen dies nicht. Wenn Sie ein grundlegendes Design erstellen und die tatsächlich häufig verwendeten Funktionen von c ++ verwenden können, sollten Sie im Interview in Ordnung sein.
Bereit für den Job ist jedoch eine andere Geschichte. Es ist eine lustige Herausforderung, ich hoffe, dass alles gut geht.
quelle
Ich kann nicht für jeden Arbeitgeber sprechen, aber ich persönlich sehe das Programmieren als die Fähigkeit und die sprachlichen Besonderheiten als angenehm an. Es ist immer noch möglich, in einem anderen Programmierberuf angestellt zu werden, der nicht Ihre Hauptkompetenz ist.
Allerdings ist es sehr sehr unwahrscheinlich, dass ich jemanden anheuere, der keinerlei Erfahrung in der Sprache hat, für die ich ihn anstelle. Verbringen Sie ein paar Wochenenden mit Lernen und haben Sie ein paar Lieblingsprojekte, um Ihren Lebenslauf zu verbessern. Selbst kleine beweisen, dass Sie lernfähig und interessiert sind.
quelle
Sie befinden sich genau in der Situation, in der ich mich vor 4 Jahren befand.
Ich habe während meines Studiums ein bisschen C ++ gemacht, aber ich hasste es. Ich habe viel Web-Entwicklung gemacht, wenn ich in meiner Freizeit konnte, und einen Job in diesem Bereich bekommen.
Als ich umgezogen bin, habe ich mich für einen C ++ - Job beworben, der 2 Jahre C ++ - Erfahrung vorausgesetzt hat. Nun, ich habe meine C ++ - Erinnerungen vor dem Interview aufgefrischt und als die Zeit für die Tests kam, konnte ich mit ein paar Dingen davonkommen, bei denen ich mir nicht sicher war, ob ich es richtig machte.
Aber der Großteil des Interviews drehte sich um Problemlösungen und kreative Lösungen, und C ++ war am Ende nur ein untergeordneter Faktor.
Die Chancen hängen also wirklich vom Arbeitgeber und seinen Positionen ab.
Wenn Sie eine Personalagentur aufsuchen, wird Ihnen "wahrscheinlich" mitgeteilt, dass Ihr Profil nicht übereinstimmt. Aber mit einem echten Arbeitgeber sind Ihre Chancen viel besser, da sie wirklich wissen, was sie brauchen.
quelle
Es hängt davon ab, ob. Wenn Sie einige grundlegende Interviewfragen zu Hinweisen und dergleichen beantworten können, sollte es Ihnen gut gehen.
Es ist auch von Vorteil, wenn Sie die Unterschiede zwischen C ++ - Vorlagen und .NET-Generika auflisten können.
Ansonsten ist es ziemlich einfach, mit dem Rest Schritt zu halten.
quelle
Ja. Es ist möglicherweise nicht so relevant wie C ++ - Erfahrung, aber es ist gut.
Gute Arbeitgeber werden sich dafür interessieren, wie Sie denken , mehr als wie viele Jahre einer bestimmten Sprache Sie sprechen.
Eine C ++ - Einstiegsposition ist in Ordnung: Sie können schnell lernen und gute Arbeit leisten. Ein gutes Unternehmen gibt Ihnen viele Möglichkeiten zum Wachsen. Wenn nicht, können Sie woanders hingehen und sowohl C # - als auch C ++ - Erfahrungen sammeln.
quelle
Es hängt wirklich von der Art des Geschäfts ab, auf das Sie sich bewerben. Wenn sie jemanden suchen, der gute OO-basierte Programmier- und Architekturkenntnisse besitzt, ist C # wahrscheinlich so gut wie das nächste.
Wenn sie stolz auf die Geschwindigkeit / Reaktionsfähigkeit ihrer Software sind, müssen Sie Ihre Algorithmen kennen, da dies mehr als Mikrooptimierungen betrifft - Hash-Tabellen oder lineare Suche um das Verständnis der Leistungsmerkmale zu demonstrieren - zum Beispiel kennt nicht jeder ngen.exe.
Wenn es sich um eine eingebettete / mobile und / oder nicht müllsammelnde Umgebung handelt, müssen Sie wirklich wissen, wie Sie den Speicher effektiv verwalten können. Intelligente Zeiger sind, wie @DeadMG hervorhob, hier der Schlüssel, ebenso wie das Verständnis des Speicherzuweisungsprofils. Spieleprogrammierer ordnen häufig große Anordnungen von Objekten vorab zu und recyceln sie, um den Speicherbedarf im Voraus zu kennen und Unbekanntes auf Einzelbildbasis zu reduzieren. Dies ist auch die Technik, die in den scrollenden TableViews unter iOS verwendet wird.
Wenn es Integrationsarbeiten gibt, benötigen Sie wahrscheinlich Kenntnisse auf C-Ebene in Bezug auf das Marshalling von Daten zwischen Sprachen (wie P / Invoke), aber auch Kenntnisse auf Byte-Ebene darüber, wie diese Datenstrukturen verwendet werden können, was in der Praxis nicht üblich ist C # nach meiner Erfahrung.
quelle