Niedawno dowiedziałem się, że Facebook miał wyzwanie programistyczne, które po prawidłowym ukończeniu automatycznie powoduje rozmowę telefoniczną.
Istnieje przykładowe wyzwanie, w którym należy napisać algorytm, który może rozwiązać problem typu Wieża Hanoi . Biorąc pod uwagę liczbę kołków i dysków, początkową i końcową konfigurację; Twój algorytm musi określić jak najmniej kroków, aby dojść do ostatecznej konfiguracji i wygenerować kroki.
To przykładowe wyzwanie daje ci 45-minutowy limit czasu, ale pozwala ci nadal przetestować kod, aby sprawdzić, czy upłynie on po wygaśnięciu limitu czasu.
Nie wiedziałem o żadnym uroczym rozwiązaniu matematycznym, które mogłoby go rozwiązać, i nie chciałem szukać takiego, ponieważ uważam, że byłoby to oszustwo. Starałem się więc rozwiązać to wyzwanie najlepiej, jak mogłem.
Byłem w stanie stworzyć algorytm, który zadziałał i przeszedł. Jednak zajęło mi to ponad 4 godziny, znacznie dłużej niż 45 minut. Ponieważ zajęło mi to znacznie więcej czasu niż mi przydzielono, nie podjąłem rzeczywistego wyzwania.
Zastanawiam się jednak, czy w rzeczywistości to naprawdę ważne, że zajęło mi to tak długo? Mam na myśli to, że jest to znak, że nie będę w stanie znaleźć pracy w takim miejscu (nie tylko Facebook, ale Google, Fog Creek itp.) I muszę obniżyć swoje aspiracje, czy też fakt, że faktycznie zdałem przy mojej pierwszej próbie, mimo że zajęło to zbyt długo, aby być uznanym za dobry?