Recentemente ho scoperto che Facebook aveva una sfida di programmazione che, se completata correttamente, ottiene automaticamente un'intervista telefonica.
Esiste una prova di esempio che ti chiede di scrivere un algoritmo in grado di risolvere un problema di tipo Torre di Hanoi . Dato un numero di pioli e dischi, una configurazione iniziale e finale; Il tuo algoritmo deve determinare il minor numero di passi possibili per arrivare alla configurazione finale e mostrare i passi.
Questa sfida di esempio ti offre un limite di tempo di 45 minuti, ma ti consente comunque di testare il codice per vedere se passa una volta scaduto il tuo limite di tempo.
Non sapevo di nessuna soluzione matematica carina che potesse risolverlo, e non volevo cercarne una perché pensavo che sarebbe stato un imbroglio. Così ho cercato di risolvere la sfida il meglio che potevo da solo.
Sono riuscito a creare un algoritmo che ha funzionato e superato. Tuttavia, mi ci sono volute più di 4 ore per fare, molto più a lungo dei 45 minuti richiesti. Dal momento che mi ci è voluto molto più tempo del tempo assegnato, non ho provato la vera sfida.
Questo mi ha fatto pensare, in realtà è davvero importante che mi ci sia voluto così tanto tempo? Voglio dire, è un segno che non sarò in grado di trovare un lavoro in un posto come questo (non solo Facebook, ma Google, Fog Creek, ecc.) E ho bisogno di abbassare le mie aspirazioni, o il fatto che io in realtà sia passato al mio primo tentativo, anche se ci è voluto troppo tempo per essere considerato buono?