Что такое OICE? О, это мило ...

Схема установки для технических собеседований и белой доски

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

Я знаю, что Гейл МакДауэлл в своем знаменитом Cracking the Coding Interview предлагает структуру из семи шагов для решения технических вопросов (кстати, она потрясающая). Теперь ее подход - отличный способ проработать реальный процесс решения проблемы, но OICE - отличный механизм, который я узнал, чтобы помочь вам с начальной настройкой для решения проблемы.

Настройка

Итак, вы начинаете собеседование и проходите все формальности с интервьюером. Затем он / она спрашивает вас: «Как насчет того, чтобы обсудить технический вопрос вместе?» Конечно, вы должны реагировать с энтузиазмом, готовые преодолеть все стоящие перед вами задачи. Но, прежде чем приступить к делу, обязательно уделите время настройке параметров вопроса.

Что-то вроде: «Звучит здорово! Вы не возражаете, если я потрачу некоторое время на изучение структуры, чтобы помочь нам лучше подумать над этой проблемой? »

Вы мгновенно отделились от конкурентов:

  1. Проявление уравновешенности и налаживание связи с вашим интервьюером - мне так много раз говорили, что ошибка №1, которую делают собеседники, - это нервничать и замолчать в безмолвной гибели.
  2. Дайте себе время, чтобы логически обдумать данный вопрос. Стресс технических собеседований заставляет замолчать даже самых умных людей. Интервьюер хочет увидеть ваши навыки критического мышления и решения проблем, а не только в том случае, если вы можете получить правильный код.
  3. Расширьте свои знания об этом крутом способе решения технических проблем. Это показывает, что вы действительно подготовлены и серьезно отнеслись к процессу собеседования.

Теперь о OICE…

Выходы

  • Продумайте результаты, которых от вас ждут. Задайте своему интервьюеру информативные и уточняющие вопросы: «Значит, это решение должно включать в себя создание функции, возвращающей массив отсортированных строк? Если ответ 0, должен ли я возвращать 0, null или undefined? »

Входы

  • Первоначально у вас могут быть определенные предположения о том, что вы можете принять. Уточнение того, что именно ваше решение (скорее всего, в функции) должно принимать в качестве входных данных, поможет вам продумать, что вы могли бы сделать с этими входными данными. «Всегда ли этот тип ввода будет числом или строкой? Будет ли это целое число или отрицательное значение? Должен ли я возвращать ошибку, если введенные данные неверны? »

Ограничения / сложности

  • «Есть ли ожидаемая временная или пространственная сложность?» Есть ли какие-то другие ограничения, о которых мне следует знать? » Что касается ограничений, то определенно важно научить себя писать чисто и ясно на доске, чтобы на доске было достаточно места для вашей настройки и кода. Это, вероятно, означает, что вам следует попрактиковаться в использовании ручки и бумаги или доски. Сладкая ирония технических проблем или проблем с доской состоит в том, что обычно вы не можете пользоваться компьютером ...

Примеры / крайние случаи

  • Придумайте пару тестовых примеров, чтобы помочь себе справиться с проблемой. Кроме того, придумывание более сложных крайних случаев может помочь вам лучше понять, что именно вы должны делать, чтобы сформировать свое решение.

Что ж, это структура OICE для вас. Сначала это может показаться глупым, но этот процесс настройки имеет значение днем ​​и ночью, помогая вам работать над решением.

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

  • Как пройти собеседование по программированию
  • Элементы интервью по программированию
  • Руководство по разработке алгоритмов
  • Интервью по программированию