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?
15
Antworten:
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:
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.
versuche herauszufinden, wie sie die Sprache gelernt haben, welche Bücher sie gelesen haben, etc.
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
Überprüfen Sie zunächst die Antworten auf C # -Fragen auf SO ..
quelle