Ich habe kürzlich herausgefunden, dass Facebook eine Programmierherausforderung hat, bei deren korrekter Ausführung Sie automatisch ein Telefoninterview erhalten.
Es gibt eine Beispielherausforderung, bei der Sie aufgefordert werden, einen Algorithmus zu schreiben, mit dem ein Problem vom Typ Tower of Hanoi gelöst werden kann. Bei einer Reihe von Stiften und Scheiben eine anfängliche und endgültige Konfiguration; Ihr Algorithmus muss die wenigsten möglichen Schritte bestimmen, um zur endgültigen Konfiguration zu gelangen und die Schritte auszugeben.
Diese Beispielherausforderung gibt Ihnen ein Zeitlimit von 45 Minuten, aber Sie können Ihren Code trotzdem testen, um festzustellen, ob er nach Ablauf Ihres Zeitlimits abgelaufen ist.
Ich kannte keine niedliche mathematische Lösung, die es lösen könnte, und ich wollte keine suchen, da ich denke, das wäre Betrug. Also habe ich versucht, die Herausforderung so gut wie möglich alleine zu lösen.
Ich konnte einen Algorithmus erstellen, der funktionierte und bestand. Die Herstellung dauerte jedoch mehr als 4 Stunden, viel länger als die 45-Minuten-Anforderung. Da ich so viel länger als die vorgesehene Zeit gebraucht habe, habe ich die eigentliche Herausforderung nicht versucht.
Das hat mich allerdings gefragt, ob es in Wirklichkeit wirklich wichtig ist, dass ich so lange gebraucht habe? Ich meine, ist dies ein Zeichen dafür, dass ich an einem Ort wie diesem (nicht nur Facebook, sondern auch Google, Fog Creek usw.) keinen Job bekommen kann und meine Bestrebungen senken muss oder die Tatsache, dass ich tatsächlich bestanden habe bei meinem ersten Versuch, obwohl es zu lange gedauert hat, als gut genommen zu werden?