9
votes

Test de location de programmation - Testez une connaissance des développeurs en C # / ASP.NET

Nous embauchons bientôt un développeur .NET, et on m'a été affecté à la création d'un test, qui prendrait APROX: 1H à résoudre. Un test qui testerait les connaissances des programmeurs dans (principalement) C # et ASP.NET.

C'est ce que j'ai montré jusqu'à présent:

  • Utilisez le projet n ° 1 pour lire les données (HTML) à partir de l'URL spécifiée et sortie Toutes les liens (ancrages) contenant le nom d'ancrage "xxxxxxxxx". Vous êtes libre d'utiliser des bibliothèques tierces. Ma pensée principale ici était de tester la manière dont le développeur irait à résoudre le problème. Par exemple:
    • Créez une regex qui permettrait d'analyser toutes les données nécessaires.
    • Créez un DOM-Tree et utilisez XPath pour trouver tous les nœuds d'ancre.
    • Itérale la chaîne entière et effectuer une chaîne manuelle compare.
    • Créez une nouvelle solution dans laquelle vous démontrez l'utilisation de MasterPages .NET.
      • Connectez la solution à la base de données *********. Et produire tous les clients de la table "********* _ clients".
      • Créez un nouveau bouton qui rafraîchit tous les utilisateurs à l'aide d'Ajax.

        Jolie truc de base. Cependant, j'ai aussi ajouté celui ci-dessous. Principalement pour tester les développeurs oo connaissances. Pensez-vous que c'est trop "Overkill", ou quel type de test suggéreriez-vous? Si vous deviez embaucher un développeur ASP.NET, quel serait votre objectif principal? Ado.net? Io? Manipulation des chaînes?
      • Créer une interface / une implémentation de classe abstraite démontrant la fonctionnalité de l'usine, de la méthode d'usine, de la commande ou du motif de décorateur. Vous n'aurez pas besoin de mettre en œuvre une fonctionnalité, utilisez simplement des commentaires dans votre classe abstraite.

        Merci d'avance!


3 commentaires

Overkill ??? Puis-je vous excuser avec des trucs comme ça? s'il te plaît???? } :)


HTMLAGILITYPACK et ASP.NET Données dynamiques!


Pouvez-vous en dire plus sur ce que la personne ferait dans leur travail?


9 Réponses :


0
votes

Le premier test que vous avez suggéré devrait prendre 10 minutes-40min pour un devis de base, j'utiliserais un robot Web que j'ai dans ma bibliothèque qui convertit HTML en XML, utilisez ensuite facilement LINQ vers XML.

Je testerais des expressions Lambda, des modèles de performance conservent des fichiers ou écrivez un objet à plusieurs fichiers de manière dynamique.

Peut-être que vous souhaitez tester le code, les pointeurs, etc.

Je n'en ai pas, je n'écradais-je que lorsque les choses se rendent dans mon esprit, j'ai écrit des choses difficiles pour moi de mettre en œuvre.


4 commentaires

C'est exactement le genre de solution que nous espérons voir! Mais au lieu de la résoudre, quel type d'essai ajouteriez-vous pour tester la connaissance du développeur? Quelque chose de base (pas trop basique) et spécifique .NET. Des idées?


Si vous recherchez des trucs de base, je pense écrire dans des fichiers, les comportements LINQ seront un bon test. Mais noter, vous pouvez lui demander écrire un code de 10 lignes de tout ce qu'il veut, puis vérifiez si son modèle de codage a du sens. chaîne x; x = "aaaaa"; Ce n'est pas ce que vous cherchez ... Je vous ai donné un exemple dur mais je pense que tu m'as eu.


C'est ce que je chercherai ensuite. Et je suis assez dur quand il s'agit d'utiliser le code au maximum. Mais Linq est une bonne suggestion! Reviele va probablement beaucoup de choses :-)


Content d'être utile, bonne chance avec votre copain ...



2
votes

Vous devriez vérifier geekinterview - une bonne source pour les questions d'entrevue Il y a des centaines de questions.


1 commentaires

En un coup d'œil, ce site semble avoir beaucoup de questions de type anecdote qui ne vous indiquera pas grand chose sur les capacités approfondies d'un candidat. En tant qu'intervieweur, je ne cherche pas beaucoup de questions, mais quelques questions efficaces qui inciteront des réponses instructives.



3
votes

J'aurais pensé qu'il serait préférable de créer simplement un test qui vous permettrait de mettre facilement des développeurs dans différents «godets de compétences».

Pourquoi ne pas avoir trois ou quatre sections ou caractéristiques que le développeur doit «caler» les caractéristiques des autres pour montrer leurs compétences de programmation et de conception.

  • partie 1 : mise en œuvre x difficulté facile Caractéristiques.
  • partie 2 : mise en œuvre x difficulté moyenne Caractéristiques.
  • partie 3 : mise en œuvre x difficile Caractéristiques.
  • partie 4 : implémentez x caractéristiques très difficiles.

    et donner au développeur 1 heure pour écrire l'application. Faites-le réaliste qu'ils puissent implémenter les fonctionnalités dans le délai donné.

    As Joel et Jeff disent sur le podcast Stackoverflow, il existe une corrélation directe entre les compétences et la vitesse du développeur.

    Pensez à la façon dont les examens sont structurés? Nous pouvons tous obtenir 100% des questions correctes dans n'importe quel examen que nous asseyons si nous avions un temps infini, mais en 1 heure?

    De cette façon, si un développeur prend votre test et implémente uniquement des fonctionnalités jusqu'à la section 2 dans la période de temps, vous devez disposer d'une indication de sécurité qu'elles ne conviennent pas au travail. Les caractéristiques de la section 3 sont toutes faites, alors elles sont suffisamment bonnes et la section 4 complète indique qu'ils sont très expérimentés et une légère coupe au-dessus du reste.

    Cependant, je regarderais également le polonais général que le développeur a donné au code. S'ils ont mis en place toutes les caractéristiques jusqu'à la section 4, mais mal, ils ne vont pas non plus être quelqu'un que vous voulez. Si un développeur n'a fait qu'à la section 3 mais a tout mis en œuvre très élégamment, je voudrais les embaucher.

    Je pense aussi que 1 heure est peut-être un peu trop longue. Je viserais à 10 à 40 minutes évidemment, vous devrez peut-être couper la section 4 que j'ai proposé.


2 commentaires

Parfois, il y a un bon codeur mais n'a pas d'imagination, rencontrera une grande difficulté: "Enfer, que puis-je penser, viens de me faire des tâches!"


S'ils n'ont pas d'imagination, alors je ne les appellerais pas un bon programmeur. La programmation est une résolution de problèmes et si vous ne pouvez pas fondre fondamentalement résoudre des problèmes, je dirais qu'il y a un problème là-bas.



1
votes

Dans le passé, nous avons utilisé des problèmes de Jam . Les problèmes dans les premiers tours sont plus faciles et ils deviennent progressivement plus difficiles. Ils sont une sorte d'algorithmique de nature, vous pouvez les résoudre dans la langue que vous aimez. Comme ils deviennent plus difficiles, il y a souvent une sorte de réponse «force brute» évidente qui ne fonctionnera pas à cause de la taille des données. Donc, vous devez penser à quelque chose de plus optimal.


0 commentaires

23
votes

La tâche que vous avez donnée est essentiellement une journée ou deux de codage si vous souhaitez avoir un code raisonnablement lisible. En une heure, je suppose que je le ferais, mais vous devez lire le code qui a des méthodes nommées cryptiquement nommées, des regexes illisibles, des rappels étranges, aucune gestion des erreurs et globalement est assez laid laid. En regardant, vous ne m'engageriez pas.

Avant de donner votre question aux candidats, assurez-vous d'abord que vos pairs / programmeurs peuvent le faire en premier. Et que vous pouvez le coder en moins de 60 minutes de manière à vous satisfaire.

Cela dit, je ne sais pas si le test est le meilleur choix d'embaucher n'importe qui. Quelques blogueurs d'interviews ont écrit sur leur expérience provenant de tonnes d'entretiens:

  • guérilla pour interviewer par Joel Spolksy
  • vérité sur interviewer , Obtenez ce travail sur Google (et beaucoup d'autres) par Steve Yegge

    Je suis totalement d'accord avec eux. Après avoir mené à propos d'un gazillion d'entretiens moi-même, je trouve que la poser des questions relatives à la technologie de base n'est pas aussi bonne que de demander de mettre en œuvre un peu de récursivité ou de pointeurs (si une personne prétend connaître C / C ++).

    En embauchant quelqu'un qui comprend la récursion / des algorithmes, vous obtenez un gars intelligent qui peut apprendre de nouvelles technologies. Lorsque vous embauchez une personne qui sait comment se connecter à une base de données, qui sait se connecter à une base de données mais pas nécessairement qualifiée pour faire beaucoup plus que cela.

    Il existe quelques sources de bonnes questions de programmation quelque part entre codage et algorithmes qui peuvent vous inspirer. Ils ne testent pas du tout .NET, mais sont un très bon indicateur des programmeurs intelligents.


1 commentaires

Je suis trop d'accord avec Marcin, la logique du programmeur Tesing est une plus grande qualité plutôt que d'être spécifique sur la technologie que vous recherchez. La personne qui peut créer une logique est sûrement une personne intelligente qui comprennent les concepts de base des structures de données. Donnez des problèmes logiques qui peuvent également être un temps réel. Découvrez le modèle d'entretien Sapides. Selon moi, cette entreprise choisit un programmateur crème



2
votes

Je pense que vous seriez beaucoup mieux à venir avec une seule question qui vous permettra de voir plus que des compétences de développement utilisant vos technologies cible. De solides compétences en résolution de problèmes sont aussi importantes que l'expertise dans une pile technologique spécifique.

Je vous recommanderais même que vous explorez les deux aspects d'un candidat dans différentes parties du processus. Je pose généralement un tas de questions sur la pile de technologies que nous utilisons sur notre projet pour évaluer le niveau de connaissances des candidats en ce qui concerne cette pile.

Puis je leur demande une question de résolution de problèmes purs et je leur permet d'utiliser la technologie les plus à l'aise pour résoudre le problème (leur choix de technologie peut être un indicateur important).

J'aime particulièrement Théorie graphique problèmes connexes. Les solutions candidates vous indiqueront une tonne de la manière dont elles s'approchent, résolvent des problèmes ainsi que leur validation de leurs solutions.

Dans le cadre de la partie de résolution de problèmes de l'entretien que vous devriez rechercher:

  • Conception appropriée de la structure de données
  • Mise en œuvre des meilleures pratiques de OO
  • solution appropriée (peut-ils déboguer des problèmes efficacement ... Un excellent moyen de voir que cela ne leur permet pas d'utiliser un ordinateur, de les créer sur un tableau blanc et de débogage dans leurs têtes)
  • Validation appropriée de la solution (viennent-ils avec des cas de test)

0 commentaires

2
votes

Mes 2 cents:

Nous avons un test de programmation dans ma société qui est facile. Fondamentalement, vous devez mettre en œuvre le modèle d'auditeur extension de la classe ArrayList, créer des tests d'unité (basés sur au moins ce dont nous avons besoin), documenter les cas d'angle, documenter le programme lui-même si vous voulez, puis envoyez-nous le test à nous.

Un développeur a 48 heures pour terminer ce test. Nous demandons une qualité de production dans le test. Nous voulons tester les éléments suivants:

  • était le développeur assez intelligent pour couvrir les cas d'angle?
  • est la mise en œuvre du développeur de multi-threading satisfaisant?
  • Les tests de l'unité sont-ils suffisamment bons? Couvrent-ils suffisamment de cas?
  • est le code bien écrit et documenté? Est-ce que quelqu'un sera capable de maintenir ce code à l'avenir?
  • S'agit-il de son code? A-t-il expliqué pourquoi il a fait "A" et pas "B"?

    Je ne pense pas que de courts tests soient capables d'évaluer un développeur. Vous pouvez demander un outil ou une technologie que quelqu'un n'utilisait pas au cours des derniers mois et que quiconque est testé pour cette technologie aura besoin de se mettre à la hauteur - mais si un développeur travaillait avec cela la veille, il le fera Connaître par mémoire Comment l'utiliser et il / elle semblera plus intelligemment que l'autre développeur, ce qui peut ne pas être vrai.

    Mais si vous demandez quelque chose qui est délicat et que vous interviewez le développeur, vous pouvez vérifier comment il va résoudre le problème - je ne pense pas que cela importe vraiment s'il ne peut pas obtenir la réponse à 100% à droite , tant qu'il / elle peut parler des problèmes que vous avez trouvés sur le code et montrez qu'ils comprennent réellement ce que vous leur avez expliqué.


3 commentaires

48 heures je veux dire vraiment ??


Que veux-tu dire? Que ce n'est pas assez de temps, ni que c'est trop de temps?


Selon moi c'est trop de temps !!!



4
votes

En 1 heure, vous ne pouvez tester que ses compétences en programmation, mais il ne suffit pas d'écrire l'échantillon de code.

Jetez un oeil à ce test C # / ASP.NET MVC:

http://testSs4Geeks.com/test/asp-net-mvc- C-Sharp

Une fois que le demandeur passera le test et le résultat sera bon, puis invitez-le à l'entretien et parler de son expérience. Posez des questions sur la plupart des fonctionnalités difficiles, qu'il a mis en œuvre dans ses projets. En d'autres termes, vous devez comprendre, s'il sache et peut faire assez pour participer à votre projet.

Si vous voulez toujours lui demander d'écrire du code. C'est une idée:

Il y a les étudiants et les sujets. S'il vous plaît demander à écrire 3 pages (ASP .NET MVC ou web-formulaires). Première et seconde - pour éditer le dictionnaire des étudiants et des sujets. La troisième forme doit contenir être la table. Les étudiants sont dans la colonne de gauche. Les sujets sont dans la rangée supérieure. Les marques sont à l'intersection. Chaque marque peut être éditée (zone de texte) et enregistrée. L'épargne pourrait être mise en œuvre en cliquant sur le bouton commun "Enregistrer". Ou il pourrait enregistrer chaque cellule automatiquement à l'aide de l'AJAX.

C'est un exemple très simple, mais cela vous montrerait comment l'utilisateur écrit le code, quelles techniques utilisent-il.


0 commentaires

0
votes

Il y a quelques jours, j'ai été invité à réussir le test de programmation C # sur le site Web de compétenceBox, il y avait 30 questions de questions et 45 fois pour le transmettre. Vous trouverez ci-dessous certains d'entre eux:

1) Qu'est-ce qui sera imprimé en exécutant le programme? xxx

2) Quel sera le résultat de l'appel de SOMEMETHOD (): xxx

voici un lien pour référence, Je pense que vous pouvez trouver plus de kzzes C # là-bas http://skillbox.io


0 commentaires