Кураторский список типов вопросов, к которым нужно подготовиться

Недавно я брал интервью у Microsoft (специалист по данным II), Amazon (специалист по прикладному искусственному интеллекту) и Apple (разработка программного обеспечения: машинное обучение). Я написал о подготовке к машинному обучению и получил много вопросов по вопросам кодирования на собеседованиях.

Это основные типы вопросов, которые мне задавали. Очевидно, что сложность зависит от команды и компании. Не стесняйтесь добавлять вопросы!

Брать домашние задания

Это мои любимые типы тестов, потому что вы действительно можете продемонстрировать свои навыки. Вот несколько типов вопросов, которые мне задавали

  • Будет предоставлен набор данных, и вам нужно будет построить модели машинного обучения, чтобы показать, насколько ваша модель работает на тестовых данных за 24 часа по сравнению с другими. Задача обычно связана с вашей повседневной работой в компании.
  • Основы вопросов о вероятности и статистике. У меня был один вопрос, который заключался в нахождении некоторых ограничений для настраиваемого алгоритма и последующем его теоретическом доказательстве. Могут возникнуть вопросы для проверки гипотез и интерпретации результатов.

Несколько советов, которые вы можете иметь в виду при прохождении таких собеседований -

  • Поместите хорошую документацию для вашего кода
  • Покажите свои навыки объектно-ориентированного программирования, даже если вы пишете в jupyter notebook и на Python. Например. У вас может быть другой модуль визуализации.
  • Выполните часть анализа данных - это показывает, что вы пытались понять формулировку проблемы. Будет плюсом, если вы включите в свой анализ несколько проверок гипотез.

Вопросы о стандартной структуре данных и алгоритмах

Это вопросы типа leetcode. Обычно это не очень сложно, если ваша команда немного ориентирована на исследования или больше ориентирована на машинное обучение. На самом деле должно быть достаточно изучения некоторых основ алгоритмов и структуры данных. Убедитесь, что вы сможете написать простую задачу за 20–30 минут.

Живое кодирование

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

  • Вопросы DS / Algo. В этой части нужно практиковаться, так как вы сможете кодировать базовую структуру за несколько минут, чтобы вы могли больше сосредоточиться на решении проблемы. Например. Учитывая вопрос о графике, обязательно быстро закодируйте основной класс графа с некоторым обходом, если это необходимо.
  • Кодирование с глубоким обучением. Меня попросили закодировать простую классификацию изображений, от последовательности к модели последовательности. Интервьюер проверяет не ваш синтаксис, а поток. Пример: вы должны знать, как сформировать собственный загрузчик данных, почему вы обнуляете градиенты перед обратным распространением, и какой тип потерь вы будете использовать… и так далее.
  • Кодирование алгоритмов машинного обучения. Меня попросили закодировать случайный лес, за которым следовали бэггинг и бустинг (здесь не шучу!). Я понял, что интервьюер всего лишь пытался проверить, понимаю ли я различия и знаю, как это будет реализовано.