Di recente ho scoperto che Facebook aveva una sfida di programmazione che, se completata correttamente, riceve automaticamente un'intervista telefonica.
C'è una sfida 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; L'algoritmo deve determinare il minor numero possibile di passaggi per arrivare alla configurazione finale e generare i passaggi.
Questa sfida di esempio ti dà un limite di tempo di 45 minuti ma ti consente di testare ancora il tuo codice per vedere se passa una volta scaduto il limite di tempo.
Non sapevo di alcuna soluzione matematica carina che potesse risolverlo, e non volevo cercarne una poiché penso che sarebbe barare. Quindi ho cercato di risolvere la sfida il meglio che potevo da solo.
Sono stato in grado di creare un algoritmo che ha funzionato e superato. Tuttavia, mi ci sono volute più di 4 ore per fare, molto più lungo del requisito di 45 minuti. Dal momento che mi ci è voluto molto più tempo del tempo assegnato, non ho tentato la vera sfida.
Questo mi ha fatto pensare, in realtà importa davvero 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 che ho bisogno di abbassare le mie aspirazioni, o fa il fatto che in realtà sono passato al mio primo tentativo anche se ci è voluto troppo tempo per essere considerato buono?