Contents tagged with вопросы на собеседовании

  • Обход бинарного дерева с помощью итератора

    Tags: вопросы на собеседовании, структуры данных, алгоритмы

    Исходники для статьи

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

    Задание, собственно, было такое. Напишите класс-итератор для обхода бинарного дерева. Первую половину – обход дерева breadth-first traversal – я решил довольно быстро, а вот со второй – inorder depth-first traversal возникли проблемы. Выполнить какое-либо действие (например, распечатать значение поля данных узла) для всех узлов с помощью рекурсии не представляет проблем, а вот с итератором у меня что-то не заладилось.

    Теория

    Для начал немного теории. Бинарное дерево – древовидная структура данных, в которой каждый узел имеет не более двух потомков (детей). Как правило, первый называется родительским узлом, а дети называются левым и правым наследниками.

    Далее по тексту я буду использовать следующее бинарное дерево.

    binary-tree-1

    Read more...

  • Вопросы для собеседования программистов

    Tags: идея, вопросы на собеседовании

    stackoverflow-logoМеня достали тупые, шаблонные вопросы на собеседованиях! Верхом тупости я считаю вопрос о том, как работает Garbage Collector. Грешен, я его сам задавал и не раз, но никогда не требовал от кандидатов полного отчёта о всех тонкостях его работы, никогда не ставил им в упрёк то, что они не знают с каких объектов GC начинает поиск мёртвых объектов. Работает и ладно. Будут проблемы с утечкой памяти, буду разбираться. Лично я считаю, что все эти энциклопедические знания никому не нужны. Ну, разве что игрокам в “Что, где, когда”. У нас всегда под рукой MSDN (или какая-то другая библиотека с документацией), блоги, и т.д. Так как быть?

    Однако я знаю по себе, как сложно придумать Хорошие вопросы. Сегодня меня осенило. Не надо мучать себя, надо воспользоваться тем, что уже есть. Думаю, всем программистам известен сайт Stack Overflow (есть и другие аналоги), на нём люди задают вопросы, касающиеся разработки программного обеспечения. Суть иди: идёшь на  Stack Overflow и подбираешь вопросы по нужной тематике и уровню, там их море с ответами и без. Да, многие вопросы требуют кодирования, но совсем не обязательно получать от кандидата готовое решение. Достаточно спросить о путях решения, которые он видит. В конце концов важно ведь не то, даст он правильный ответ за несколько секунд. Важно понять, как он ищет решение, как думает, как рассуждает, как ищет информацию. Хорош не тот программист, который знает все классы и методы сотни API, а тот, кто умеет быстро доходить до сути проблемы и знает как собрать нужную информацию для поиска решения, как поставить опыт (тест).

    Пользуйтесь, господа интервьюирующие! Идея бесплатна при условии ссылки на автора. Улыбка

    Read more...