Нещодавно я дізнався, що у Facebook виникло завдання з програмування, що якщо правильно виконати, ви автоматично отримаєте інтерв'ю по телефону.
Існує зразок виклику, який пропонує вам написати алгоритм, який може вирішити проблему типу Тауер Ханой . Враховуючи ряд кілочків та дисків, початкову та остаточну конфігурацію; Ваш алгоритм повинен визначити найменші кроки, які можна отримати, щоб дійти до остаточної конфігурації та вивести ці кроки.
Цей зразок виклику дає 45-хвилинний ліміт часу, але дозволяє все-таки перевірити свій код, щоб побачити, чи проходить він, як тільки закінчиться термін.
Я не знав жодного симпатичного математичного рішення, яке могло б його вирішити, і я не хотів шукати його, оскільки думаю, що це було б обманом. Тож я намагався вирішити завдання найкращим чином.
Я зміг скласти алгоритм, який працював і проходив. Однак мені знадобилося понад 4 години, набагато довше, ніж вимога 45 хвилин. Оскільки це зайняло у мене набагато більше часу, ніж відведений час, я не намагався зробити справжній виклик.
Це мене здивувало, хоча насправді це насправді важливо, що це зайняло мене так довго? Я маю на увазі, це знак того, що мені не вдасться влаштуватися на роботу в подібному місці (не лише Facebook, але Google, Fog Creek тощо) і мені потрібно знизити мої сподівання, або чи не факт, що я насправді пройшов з моєї першої спроби, хоча це зайняло занадто багато часу, щоб сприйняти як добре?