Comment embaucher un bon développeur C # si je ne connais pas C #? [fermé]

15

Je suis développeur C ++. Je sais comment Windows fonctionne au niveau natif, mais je ne suis pas un grand expert en C # et .NET. Maintenant, j'ai besoin d'un développeur C # dans mon équipe (tous mes développeurs sont C ++). Comment puis-je embaucher un grand développeur C # si je ne connais pas C # à un bon niveau? Comment poser des questions, comment tester si les réponses sont bonnes ou avec des erreurs stupides?

Kirill V. Lyadvinsky
la source
5
Où affichez-vous le poste vacant? ;)
IAbstract
Voici une bonne série de questions à tout le moins (vous devriez probablement comprendre les réponses à l'avance - évidemment) Lien
Doug Stanley
11
Il semble que vous puissiez embaucher de bons développeurs C ++. Ajoutez-en un de plus à votre équipe et dites: "Devinez quoi?" :)
JeffO
7
Embauchez simplement un bon programmeur.
Marcelo
2
@Job Ou, vous savez, achetez le livre.
Kaleb Brasee

Réponses:

3

Je suis parfois confronté au problème d'interviewer des programmeurs principalement expérimentés en C ++, que je ne connais pas aussi bien qu'eux. Ma stratégie consiste à:

  1. posent principalement des questions de programmation générale, des algorithmes, la conception OO, comment refactoriser, ce qui fait un bon test unitaire, etc. J'ajoute quelques questions générales ciblées sur le style de langage, donc pour C ++, je pourrais poser des questions sur la gestion de la mémoire et la durée de vie des objets pour C # Je pourrais demander des choses comme, pouvez-vous avoir une fuite de mémoire lorsque vous utilisez un garbage collector?

  2. essayez de savoir comment ils ont appris la langue, quels livres ils ont lus, etc.

  3. vérifiez qu'ils ont écrit une quantité substantielle de C ++. Approfondissez quand ils l'ont utilisé, combien, ce qu'ils en ont fait et pour qui. Essayez ensuite de vérifier cela autant que possible en utilisant leurs références.

S'ils peuvent bien répondre aux questions de conception et de théorie difficiles et qu'ils ont écrit une quantité décente de C ++, je m'attends à ce qu'ils soient à moitié bons au moins, et probablement capables d'apprendre rapidement tout ce qui manque.

pingouin flamant
la source
20

Le vrai test pour tous les programmeurs est de savoir comment ils résolvent les problèmes. Un résolveur de problèmes de premier ordre avec seulement des compétences C # médiocres sera beaucoup plus précieux pour vous qu'un dieu C # (dess) qui ne peut pas comprendre comment gérer la saisie de formulaire.

Essayez de trouver un vrai problème raisonnable dans votre domaine d'activité et laissez-le le résoudre en C #. Vous connaissez le domaine et vous savez quel devrait être le résultat. Vous pouvez revoir la logique vous-même et poser des questions car le flux de base et les commandes en C # ne sont pas significativement différents de C ++.

Si vous êtes toujours inquiet, envoyez son code fini à l'un de vos amis C # ou peut-être à un partenaire commercial et demandez-leur s'ils peuvent l'examiner et fournir des commentaires.

Dave Wise
la source
5
+1 pour tous sauf la partie de révision du code. Comment savez-vous que votre ami C # ne va pas simplement souligner ses préférences personnelles et choisir quelqu'un arbitrairement. Allez avec votre instinct. L'intelligence est tout, et l'expérience est plus difficile à évaluer et à filtrer que l'intelligence. Embauchez des gens intelligents qui font avancer les choses. (Règle de Joel.)
Warren P
Je supposais qu'il y aurait un certain niveau de confiance déjà établi avec la personne à qui on demanderait de revoir le code, mais vous avez un point valable
Dave Wise
2

Je suppose que vous avez réellement besoin du développeur C #.

Déterminez d'abord quel type de tâches vous devez accomplir.

Demandez-leur ensuite comment ils pourraient accomplir ces tâches. Demandez-leur comment ils ont effectué des tâches comme celle-ci précédemment.

Au cours de votre entretien, demandez à d'autres candidats leur évaluation des solutions proposées. Je suggérerais de semer les solutions avec une solution que vous savez ne fonctionnera pas, et peut-être une solution que vous jugez bonne. Cela servira à déterminer comment le candidat peut travailler avec votre équipe. Les contrôles devraient aider à éliminer les oui et les Idea Assassins .

Cela devrait vous fournir un bon groupe de candidats avec des idées acceptées par leurs pairs et avoir la capacité de travailler avec votre équipe.

SoylentGray
la source
1
Ici, les gens qui ne peuvent pas voir ce qui ne va pas avec une idée sont des touristes, pas des ingénieurs. :-) Je crois au pouvoir de la pensée positive ET négative. L'article que vous avez lié comme Idea Assasins semble avoir été écrit par une personne amère qui ne peut pas défendre ses idées faibles dans une discussion d'ingénierie constructive, et qui devient politique et émotionnelle quand sa propre compréhension des faits et sa capacité limitée à faire des déserts scientifiques leur.
Warren P
Il y a des gens qui résisteront à tout changement ou idée qui ne vient pas d'eux. Ce sont les Idea Assassins. Je ne parle pas de gens qui peuvent voir de vrais problèmes, juste ceux qui sont toxiques pour un environnement. Les gens qui, au lieu de voir comment cela pourrait fonctionner, regardent seulement comment cela échouera.
SoylentGray
2

avoir l'interview comme vous dirigiez un développeur C ++. ne vous concentrez pas trop sur les techniques C ++, mais plutôt sur la résolution de problèmes, la POO et la programmation en général. Si vous l'embauchez en tant que développeur C ++ qui veut faire du C #, alors il serait un bon embauché.

komisacroS
la source
0

Étant moi-même développeur .Net et traitant beaucoup avec les gars C ++, je pense que vous voudrez toujours savoir si une personne connaît au moins quelque chose sur la plate-forme .Net: garbage collection, GAC, JIT, NGEN, Value vs Reference type, purpose d'IDispose, etc. Une bonne liste de questions est disponible sur le blog de Scott Hanselman . Il n'y a pas de moyen simple de déterminer si les réponses sont correctes si vous ne comprenez pas les questions vous-même, il peut donc être judicieux de jeter un œil à la vue d'ensemble .Net sur MSDN ou de prendre un bon livre, comme Essential C # 4.0.

Si vous recherchez un programmeur GUI, cela aide beaucoup de demander à implémenter quelque chose de simple, comme une calculatrice ou un rover Mars ou autre. C'est OK de donner un jour ou deux pour ça. Vous verrez tout de suite si l'interface graphique est utile et agréable, par exemple, comment elle se comporte lorsqu'elle est redimensionnée.

Dmitry Sevastianov
la source
-1

Commencez par vérifier leurs réponses aux questions C # sur SO ..

Ben
la source