О разнице взглядов на привычные вещи

За последнее время мне пришлось побеседовать со многими соискателями на место разработчика в нашей команде. Нужно сказать, это было очень познавательно. Иногда - даже слишком.

Один из кандидатов, судя по резюме, очень и очень подходил под наши требования. Кроме того, у неги имелся солидный опыт за плечами. Несколько законченных проектов, каждый из которых подтверждал то или иное требование нашей позиции. В общем, очень многообещающий кандидат.

Пригласили мы его на интервью. Спрашиваю у него, какими проектами он занимался.

«Вот те раз, подумал Штирлитц». Ну ладно, подумалось, что тут такого? Ну, зарабатывает на жизнь себе человек системным программированием, ну и что?

Продолжаем разговор. Он вполне отвечает на вопросы, - видно, что он знает о чем говорит, причем, знает, похоже, из практического опыта. Хотя мы явно говорим на разных языках – от него сложно сходу получить ответ на мало-мальски общий вопрос. Он предпочитает думать о проблемах на конкретных примерах. Ну ладно, ничего особенного пока. Хотя немного странно. От Senior SDE ожидаешь умения обобщать.

Доходим до рисования кода на доске. Задача (тут я немного упрощаю): есть два произвольных бинарных дерева. Нужно сказать является ли второе дерево поддеревом первого дерева. В лоб это решается рекурсивным обходом дерева и рекурсивным сравнением в каждом узле дерева. Задача на внимательность – нужно постараться не пропустить граничных условий. А дальше следует дискуссия в таком вот ключе:

Я думал, что уж после этого дискуссия перейдет в более знакомое русло, но не тут-то было. Мы каким-то образом снова съехали к алгоритму построения дерева, вместо алгоритма его обхода.

После этого разговора состояние у меня было – офигеть, не встать. С одной стороны вроде бы знающий и опытный программист. С другой стороны – такая фиксация на конкретных проблемах и никаких попыток обобщения и анализа. И ведь я уверен, что где-то он вполне успешно будет работать.

comments powered by Disqus