J'ai récemment découvert que Facebook avait un défi de programmation qui, s'il est terminé correctement, vous obtenez automatiquement un entretien téléphonique.
Il y a un exemple de défi qui vous demande d'écrire un algorithme qui peut résoudre un problème de type Tour de Hanoi . Étant donné un certain nombre de chevilles et de disques, une configuration initiale et finale; Votre algorithme doit déterminer le moins d'étapes possible pour arriver à la configuration finale et produire les étapes.
Cet exemple de défi vous donne un délai de 45 minutes mais vous permet de tester votre code pour voir s'il passe une fois votre délai expiré.
Je ne connaissais aucune solution mathématique mignonne qui pourrait le résoudre, et je ne voulais pas en chercher une car je pense que ce serait de la triche. J'ai donc essayé de résoudre le défi de mon mieux.
J'ai pu créer un algorithme qui a fonctionné et réussi. Cependant, cela m'a pris plus de 4 heures à faire, beaucoup plus longtemps que l'exigence de 45 minutes. Puisqu'il m'a fallu beaucoup plus de temps que le temps alloué, je n'ai pas tenté de relever le défi.
Cela m'a fait me demander, en réalité, est-ce vraiment important que cela m'ait pris aussi longtemps? Je veux dire, est-ce un signe que je ne serai pas en mesure d'obtenir un emploi dans un endroit comme celui-ci (pas seulement Facebook, mais Google, Fog Creek, etc.) et que je dois baisser mes aspirations, ou le fait que je sois effectivement passé sur ma première tentative, même si cela a pris trop de temps être considéré comme bon?