Wie stelle ich einen guten C # -Entwickler ein, wenn ich C # nicht kenne? [geschlossen]

15

Ich bin ein C ++ - Entwickler. Ich weiß, wie Windows auf der nativen Ebene funktioniert, aber ich bin kein großer Experte für C # und .NET. Jetzt brauche ich einen C # -Entwickler in meinem Team (alle meine Entwickler sind C ++). Wie kann ich einen großartigen C # -Entwickler einstellen, wenn ich C # nicht gut kenne? Wie stelle ich Fragen, wie teste ich, ob die Antworten gut sind oder dumme Fehler enthalten?

Kirill V. Lyadvinsky
quelle
5
Wo veröffentlichen Sie die Stellenangebote? ;)
IAbstrakter
Hier ist zumindest eine gute Reihe von Fragen (Sie sollten die Antworten wahrscheinlich vorher verstehen - offensichtlich) Link
Doug Stanley
11
Es scheint, als ob Sie in der Lage sind, gute C ++ - Entwickler einzustellen. Fügen Sie Ihrem Team noch einen hinzu und sagen Sie: "Ratet mal, was?" :)
JeffO
7
Mieten Sie einfach einen guten Programmierer.
Marcelo
2
@ Job Oder, wissen Sie, kaufen Sie das Buch.
Kaleb Brasee

Antworten:

3

Ich stehe gelegentlich vor dem Problem, Programmierer zu interviewen, die hauptsächlich Erfahrung mit C ++ haben und die ich nicht so gut kenne wie sie. Meine Strategie ist es:

  1. Meistens stelle ich allgemeine Fragen zur Programmierung, zu Algorithmen, zum OO-Design, zur Refaktorisierung, zu den Merkmalen eines guten Komponententests usw. Ich füge einige allgemeine Fragen hinzu, die sich auf den Sprachstil beziehen, damit ich in C ++ Fragen zur Speicherverwaltung und zur Lebensdauer von Objekten stellen kann C # Ich könnte fragen, ob bei Verwendung eines Garbage Collectors ein Speicherverlust vorliegt.

  2. versuche herauszufinden, wie sie die Sprache gelernt haben, welche Bücher sie gelesen haben, etc.

  3. Stellen Sie sicher, dass sie eine erhebliche Menge an C ++ geschrieben haben. Gehen Sie in die Tiefe, wenn sie es benutzt haben, wie viel, was sie damit gemacht haben und für wen. Versuchen Sie dann, dies anhand ihrer Referenzen so weit wie möglich zu überprüfen.

Wenn sie die schwierigen Fragen zum Design und zur Theorie gut beantworten können und eine anständige Menge an C ++ geschrieben haben, dann sind sie vermutlich mindestens zur Hälfte gut und können möglicherweise schnell fehlende Dinge lernen.

flamingpenguin
quelle
20

Der eigentliche Test für alle Programmierer ist, wie gut sie Probleme lösen. Ein erstklassiger Problemlöser mit nur mittelmäßigen C # -Fähigkeiten ist für Sie weitaus wertvoller als ein C # -Gott (dess), der nicht weiß, wie er mit Formulareingaben umgeht.

Versuchen Sie, ein vernünftiges echtes Problem in Ihrer Unternehmensdomäne zu finden, und lassen Sie ihn es in C # herausfinden. Sie kennen die Domain und wissen, wie das Ergebnis aussehen soll. Sie können die Logik selbst überprüfen und Fragen stellen, da sich der grundlegende Ablauf und die Befehle in C # nicht wesentlich von denen in C ++ unterscheiden.

Wenn Sie immer noch besorgt sind, senden Sie seinen fertigen Code an einen Ihrer C # -Freunde oder vielleicht an einen Geschäftspartner und fragen Sie ihn, ob er ihn überprüfen und Feedback geben könnte.

Dave Wise
quelle
5
+1 für alle außer dem Code-Überprüfungsteil. Woher weißt du, dass dein C # -Freund nicht einfach auf seine oder ihre persönlichen Vorlieben hinweist und willkürlich jemanden auswählt? Geh mit deinem Bauch. Intelligenz ist alles und Erfahrung ist schwieriger zu bewerten und zu überprüfen als Intelligenz. Stellen Sie clevere Leute ein, die Dinge erledigen. (Joel Regel.)
Warren P
Ich ging davon aus, dass mit der Person, die gebeten wird, den Code zu überprüfen, bereits ein gewisses Vertrauensniveau besteht, aber Sie haben einen gültigen Punkt
Dave Wise
2

Ich gehe davon aus, dass Sie tatsächlich einen Bedarf an C # -Entwicklern haben.

Stellen Sie zunächst fest, welche Art von Aufgaben Sie ausführen müssen.

Fragen Sie sie dann, wie sie diese Aufgaben erledigen würden. Fragen Sie, wie sie zuvor solche Aufgaben erledigt haben.

Fragen Sie während des Interviews andere Bewerber nach ihrer Bewertung der vorgeschlagenen Lösungen. Ich würde vorschlagen, die Lösungen mit einer zu setzen, von der Sie wissen, dass sie nicht funktionieren und die Sie vielleicht für gut halten. Auf diese Weise können Sie ermitteln, wie der Bewerber mit Ihrem Team zusammenarbeiten kann. Die Kontrollen sollten dabei helfen, die Ja-Männer und die Idea Assassins auszusortieren .

Dies sollte Ihnen eine gute Gruppe von Kandidaten mit Ideen liefern, die von ihren Kollegen akzeptiert werden und die Fähigkeit haben sollten, mit Ihrem Team zu arbeiten.

SoylentGray
quelle
1
Leute, die nicht verstehen, was an einer Idee falsch ist, sind Touristen, keine Ingenieure. :-) Ich glaube an die Kraft des positiven UND des negativen Denkens. Der Artikel, den Sie als Idea Assasins verlinkt haben, klingt so, als ob er von einer bitteren Person verfasst wurde, die ihre schwachen Ideen nicht in einer konstruktiven technischen Diskussion verteidigen kann und die politisch und emotional ist, wenn sie selbst die Fakten versteht und die Fähigkeit hat, wissenschaftliche Aufgaben zu erledigen Sie.
Warren P
Es gibt Leute, die sich jeder Veränderung oder Idee widersetzen, die nicht von ihnen kommt. Das sind die Idea Assassins. Ich spreche nicht von Leuten, die echte Probleme sehen können, nur solche, die für eine Umwelt giftig sind. Leute, die nicht sehen, wie es funktionieren könnte, schauen nur, wie es scheitern wird.
SoylentGray
2

Haben Sie das Interview, als Sie einen C ++ - Entwickler hier waren. Konzentrieren Sie sich nicht zu sehr auf C ++ - Techniken, sondern auf Problemlösung, OOP und Programmierung im Allgemeinen. Wenn Sie ihn als C ++ - Entwickler einstellen würden, der C # ausführen möchte, wäre er eine gute Einstellung.

komisacroS
quelle
0

Ich bin selbst .Net-Entwickler und habe viel mit C ++ zu tun. Ich denke, Sie möchten immer noch herausfinden, ob eine Person zumindest etwas über die .Net-Plattform weiß: Garbage Collection, GAC, JIT, NGEN, Value vs. Reference-Typ, Zweck von IDispose usw. Eine gute Liste von Fragen finden Sie im Scott Hanselman-Blog . Es gibt keine einfache Möglichkeit, herauszufinden, ob die Antworten richtig sind, wenn Sie die Fragen selbst nicht verstehen. Daher ist es möglicherweise sinnvoll, einen Blick auf die .Net-Übersicht über MSDN zu werfen oder ein gutes Buch wie Essential C # 4.0 zu erwerben.

Wenn Sie nach einem GUI-Programmierer suchen, ist es sehr hilfreich, etwas Einfaches wie einen Taschenrechner oder einen Marsrover oder was auch immer zu implementieren. Es ist in Ordnung, ein oder zwei Tage dafür zu geben. Sie werden sofort sehen, ob die GUI nützlich und nützlich ist, zum Beispiel, wie sie sich verhält, wenn die Größe geändert wird.

Dmitry Sevastianov
quelle
-1

Überprüfen Sie zunächst die Antworten auf C # -Fragen auf SO ..

Ben
quelle