Recientemente descubrí que Facebook tenía un desafío de programación que, si se completaba correctamente, automáticamente recibías una entrevista telefónica.
Hay un desafío de muestra que le pide que escriba un algoritmo que pueda resolver un problema tipo Torre de Hanoi . Dado un número de clavijas y discos, una configuración inicial y final; Su algoritmo debe determinar la menor cantidad de pasos posibles para llegar a la configuración final y generar los pasos.
Este ejemplo de desafío le otorga un límite de tiempo de 45 minutos, pero le permite probar su código para ver si pasa una vez que expire su límite de tiempo.
No conocía ninguna solución matemática linda que pudiera resolverlo, y no quería buscar una, ya que creo que sería una trampa. Así que intenté resolver el desafío lo mejor que pude por mi cuenta.
Pude hacer un algoritmo que funcionó y pasó. Sin embargo, me tomó más de 4 horas para hacer, mucho más tiempo que el requisito de 45 minutos. Como me llevó mucho más tiempo que el tiempo asignado, no he intentado el desafío real.
Sin embargo, esto me hizo preguntarme, en realidad, ¿realmente importa que me haya tomado tanto tiempo? Quiero decir, ¿es esta una señal de que no podré conseguir un trabajo en un lugar como este (no solo Facebook, sino Google, Fog Creek, etc.) y necesito reducir mis aspiraciones, o el hecho de que realmente pasé? en mi primer intento a pesar de que tardó demasiado en ser tomado como bueno?