Интервью по кодированию на доске: отчет о действиях

Итак, у меня наконец-то было собеседование по программированию на доске. Я подал заявку на должность младшего разработчика в небольшой стартап-компании в районе Бостона. Перед сеансом у доски у меня было часовое интервью с двумя инженерами. После небольшого перерыва и смены караула два новых инженера задали новые вопросы. Затем последовал вопрос о доске.

Мне описали проблему. Я схватил маркер и встал перед доской, внутренним окном в конференц-зале. Я записал входные и выходные данные, ожидаемые от функции, которую я должен был написать. Я определил язык, который выбираю, JavaScript. Я спросил, есть ли какие-либо предположения, например, могут ли мои входные данные быть строками или дробями.

Так закончилась легкая часть. После этого я столкнулся с решением проблемы в домене, с которым был знаком лишь бегло. К счастью, мне в конце концов предлагались подсказки всякий раз, когда я застревал. В конце концов я пришел к решению.

В будущем мне нужно лучше озвучивать то, что я думаю. Часто я молча смотрел в пространство, наполовину надеясь, что боль прекратится. Решение проблемы в режиме реального времени, под давлением, мягко говоря, нервирует. Было предложено решить конкретный экземпляр задачи, тогда, естественно, я мог обобщить решение. Это подход, который я буду использовать в будущем.

Если бы я мог предложить какие-то конкретные мысли, они:

  • Напишите название языка, который вы используете, на доске, если у вас есть выбор
  • Напишите входные данные, которые получит ваша функция
  • Запишите выходные данные, которые получит ваша функция.
  • Запишите любые предположения, которые вы можете безопасно сделать
  • Рисуйте картинки, графики, каракули — все, что поможет понять проблему.
  • Решите конкретный экземпляр проблемы, а затем обобщите его.
  • Проверьте, есть ли какие-либо крайние случаи, в которых ваше общее решение не работает.

В моем интервью мы не рассматривали влияние решения на производительность, но, тем не менее, понимание большой нотации O полезно.

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

Удачи.