9 votes

Test d'embauche en programmation - Testez les connaissances d'un développeur en C# / ASP.NET

Nous allons bientôt embaucher un développeur .NET, et on m'a demandé de créer un test qui prendrait environ une heure à résoudre. Un test qui testerait les connaissances du programmeur en (principalement) C# et ASP.NET.

Voici ce que j'ai trouvé jusqu'à présent :

  • Utilisez le projet #1 pour lire les données (HTML) à partir de l'URL spécifié et sortir tous les liens (ancres) contenant le nom de l'ancre "xxxxxxxxx". Vous êtes libre d'utiliser des bibliothèques tierces. Mon idée principale était de tester comment le développeur s'y prendrait pour résoudre le problème. Par exemple :

    • Créez une expression rationnelle qui analysera toutes les données nécessaires.
    • Créez une arborescence DOM et utilisez XPATH pour trouver tous les nœuds d'ancrage.
    • Interroger la chaîne entière et effectuer des comparaisons manuelles de chaînes.
  • Créez une nouvelle solution dans laquelle vous démontrez l'utilisation des masterpages .NET.

    • Connectez la solution à la base de données ********. Et affichez tous les clients de la table "********_customers".
    • Créez un nouveau bouton qui rafraîchit tous les utilisateurs en utilisant AJAX.

      C'est plutôt basique. Mais j'ai aussi ajouté celui qui se trouve en dessous. Principalement pour tester les connaissances en OO des développeurs. Pensez-vous que c'est trop "excessif", ou quel type de test suggéreriez-vous ? Si vous deviez engager un développeur ASP.NET, quel serait votre objectif principal ? ADO.NET ? IO ? manipulation des chaînes de caractères ?

  • Créez une interface/implémentation de classe abstraite démontrant la fonctionnalité du modèle Factory, Factory Method, Command ou Decorator. Vous n'avez pas besoin d'implémenter les fonctionnalités, utilisez simplement les commentaires dans votre classe abstraite.

Merci d'avance !

2voto

Ravi Wallau Points 5012

Mes deux centimes :

Dans mon entreprise, nous avons un test de programmation qui est facile. En gros, vous devez mettre en œuvre le modèle d'écouteur en étendant la classe ArrayList, créer des tests unitaires pour celle-ci (basés sur au moins ce que nous exigeons), documentez les cas particuliers, documentez le programme lui-même si vous le souhaitez, puis renvoyez-nous le test.

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

  • Le développeur a-t-il été suffisamment intelligent pour couvrir les cas particuliers ?
  • La mise en œuvre du multithreading par le développeur est-elle satisfaisante ?
  • Les tests unitaires sont-ils suffisamment bons ? Couvrent-ils suffisamment de cas ?
  • Le code est-il bien écrit et documenté ? Quelqu'un sera-t-il capable de maintenir ce code à l'avenir ?
  • Est-ce qu'il se soucie de son code ? A-t-il expliqué pourquoi il a fait "A" et pas "B" ?

Je ne pense pas que des tests courts soient capables d'évaluer un développeur. Vous pouvez demander un outil ou une technologie que quelqu'un n'a pas utilisé au cours des derniers mois, et celui qui est testé pour cette technologie aura besoin de temps pour se mettre à niveau - mais si un développeur a travaillé avec cela la veille, il saura de mémoire comment l'utiliser, et il/elle semblera plus intelligent que l'autre développeur, ce qui peut ne pas être vrai.

Mais si vous demandez quelque chose de délicat et que vous interrogez le développeur, vous pouvez vérifier comment il va résoudre le problème - je pense que cela n'a pas vraiment d'importance s'il ne peut pas donner la bonne réponse à 100%, tant qu'il peut parler des problèmes que vous avez trouvés dans le code et montrer qu'il comprend réellement ce que vous lui avez expliqué.

1voto

Simon P Stevens Points 17536

Dans le passé, nous avons utilisé les problèmes de Google code jam . les problèmes des premiers tours sont plus faciles et deviennent progressivement plus difficiles. Ils sont de nature algorithmique, vous pouvez les résoudre dans le langage de votre choix. Au fur et à mesure qu'ils se compliquent, il existe souvent une réponse évidente de type "force brute" qui ne fonctionne pas en raison de la taille des données. Vous devez donc trouver une solution plus optimale.

0voto

Shimmy Points 23393

Le premier test que vous avez suggéré devrait prendre de 10 à 40 minutes pour un développeur de base. J'utiliserais un moteur de recherche Web que j'ai dans ma bibliothèque et qui convertit le HTML en XML, puis j'utiliserais facilement Linq to XML.

Je testerais les expressions lambda, les modèles de performance, le maintien des fichiers ou l'écriture dynamique d'un objet dans plusieurs fichiers.

Peut-être souhaitez-vous tester du code non modifié, des pointeurs, etc.

Je ne sais pas, j'écris juste des choses qui me viennent à l'esprit, j'ai écrit des choses que j'ai eu du mal à mettre en place.

0voto

Il y a quelques jours, j'ai été invité à passer un test de programmation C# sur le site skillbox. Il y avait un quiz de 30 questions et 45 minutes pour le passer. Voici quelques-unes de ces questions :

1) Que va-t-on imprimer en exécutant le programme ?

    #if DEBUG
            Console.WriteLine("DEBUG");
    #else
            Console.WriteLine("RELEASE");
    #endif

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

    public static void SomeMethod()
    {
        string s1 = "a";
        string s2 = "b";
        Swap(ref s1, ref s2);
        Console.WriteLine(s1);
        Console.WriteLine(s2);
    }

    public static void Swap(ref Object a, ref Object b)
    {
        Object t = b;
        b = a;
        a = t;
    }

Voici un lien de référence, je pense que vous pouvez y trouver d'autres problèmes de C#. http://skillbox.io

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X