Головоломки для ИТ-собеседований

Четыре метода, которые помогают с решением.

Головоломки для ИТ-собеседований

Американские корпорации задали тренд на головоломки при собеседовании ИТ-специалистов — даёшь нестандартную задачу и наблюдаешь, как кандидат действует в условиях неопределённости. Обычно это нужно в двух ситуациях: при высокой конкуренции на вакансию или когда работа связана с креативом. Сегодня мы разберём четыре метода, которые упрощают решение подобных головоломок.

Памятка

👉 Не все ИТ-компании пользуются головоломками и положительно к ним относятся. Однако если спросят — лучше быть готовым. 

👉 Если интервьюер задаёт сложную головоломку, то, по его мнению, вы её способны решить или должны задать уточняющие вопросы для упрощения. 

👉 Ход мыслей важнее правильного ответа. Поэтому озвучивайте варианты и не бойтесь ошибаться — нормальные интервьюеры всегда подсказывают. 

👉 Не существует универсального решения для всех головоломок — помогает только тренированность и интерес к самостоятельному разбору новых задач.

Декомпозиция

Суть. Вы читаете головоломку и переносите условие в таблицу из трёх блоков: исходные данные, действия и результат. Таблица структурирует информацию и помогает понять, с чего начать рассуждение и какие данные можно игнорировать. 

Когда использовать. В случае длинного или запутанного условия. 

Пример. У фермера двадцать кур, две коровы и один щенок. Каждые три дня в 5:00 фермер доит корову, кормит щенка и забирает три яйца от трёх кур. Посчитайте, сколько яиц снесут все куры за девять дней? 

Перед нами задача с разными переменными и процессами — это значит, что за множеством условий скрыта какая-то деталь или они нужны для отвлечения внимания. Чтобы быстро сориентироваться — составим таблицу: в исходные данные запишем объекты; в действия — выполненные процессы; в результат — ответ, который нужно получить. Если условие разложено по полочкам, то легко найти отправную точку и выделить необходимые данные для расчёта.

Всё красное — лишняя информация. Отправная точка — момент, когда мы рассчитываем, сколько яиц курица несёт за три дня

Исключение

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

Когда использовать. Если нужно упорядочить данные. 

Пример. Встретились три подруги: Ира, Катя и Света. У одной девушки были красные туфли, у другой — чёрные, у третьей — синие. Платья тоже были красного, чёрного и синего цвета. Известно, что только у Иры платье и туфли были одного цвета. Света была в синих туфлях. На Кате не было ничего чёрного. Определите, какого цвета платья и туфли были у каждой из подруг? 

Туфли и платья — это два типа данных, которые мы разделим на две таблицы и сгруппируем. Теперь заполняем таблицы и находим неизвестные переменные: 

  • Света: отмечаем синие туфли; исключаем чёрные и красные туфли, синее платье.  
  • Катя: исключаем чёрные туфли и платье.
  • Катя: отмечаем красные туфли; исключаем красное платье; отмечаем синее платье. 
  • Ира: отмечаем чёрное платье и туфли. 
  • Света: отмечаем красное платье. 

Результат: Ира в чёрном платье и чёрных туфлях; Катя в красных туфлях и синем платье; Света в красном платье и синих туфлях.

Задачи на исключение удобно распутывать с помощью таблиц — они помогают не запоминать громоздкое условие и постепенно обрабатывать данные

Худший случай 

Суть. Если задача предполагает неограниченное количество попыток или шагов — считаем, что нам не повезёт, и делаем расчёты для наихудшего варианта. 

Когда использовать. Если с разными объектами совершают однотипные действия: их взвешивают, считают, перекладывают, переливают и так далее. 

Пример. В ящике 100 разноцветных треугольников: 30 чёрных, 15 синих, 15 красных, 10 зелёных, 10 розовых, 10 оранжевых, 5 фиолетовых и 5 коричневых. Сколько треугольников нужно вытащить, чтобы среди них был один фиолетовый?  

В данном случае худший вариант будет таким: мы вытянем 95 треугольников и среди них не будет ни одного фиолетового. Поэтому если мы вытащим 96 треугольников, то среди них точно будет один фиолетовый.

Если повезёт, то мы вытащим нужный треугольник с первой попытки. Однако если в задаче ничего не указано про количество попыток — ориентируемся на худший вариант

Действуем от противного

Суть. Нужно перевернуть исходные данные и доказать, что они неверны. В результате мы подтвердим своё предположение или найдём противоречие. 

Когда использовать. Если известно суждение и его нужно подтвердить или опровергнуть ограниченным количеством информации.

Пример. Есть круг из 15 смайликов зелёного и красного цвета. Докажите, что хотя бы у одной пары соседних смайликов будет один цвет?

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

Проверяем предположение: рисуем через один все смайлы, получаем одну пару с общим цветом и подтверждаем наше доказательство

Что дальше

Прочтите книгу Уильяма Паудстоуна «Найти умного. Как проверить логическое мышление и творческие способности кандидата». Она о том, как проверяют логическое мышление программистов при собеседовании в Microsoft. 

Потренируйтесь на наших задачах из раздела «Как решить».Посетите braingames.ru — это сайт, где тренируется руководитель группы рекомендательных систем лаборатории ИИ Сбера Алексей Васильев. На следующей неделе у нас с ним выйдет интервью, стей тюнед.

Текст и иллюстрации

Александр Бабаскин



Заглавная иллюстрация

Даня Берковский


Корректор

Ира Михеева


Вёрстка

Маша Дронова


Соцсети

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
Что такое стек и как он устроен
Что такое стек и как он устроен

И почему так страшен стек-оверфлоу.

medium
Что такое SCRUM
Что такое SCRUM

Модное слово в разработке. Нужно ли оно?

easy
ЭТО RAID
ЭТО RAID

Как устроено избыточное хранение данных.

medium
Задача про ШОК-КОНТЕНТ: можно доказать, что 2 + 2 = 5!
Задача про ШОК-КОНТЕНТ: можно доказать, что 2 + 2 = 5!

Добавить нечего

easy
Задача: как успеть на презентацию
Задача: как успеть на презентацию

Мы собрали всех IT-знаменитостей вместе, чтобы выяснить, как они ведут себя в темноте.

easy
Нестандартная задача про наши счастливые годы: 2020-й и 2021-й
Нестандартная задача про наши счастливые годы: 2020-й и 2021-й

С виду она очень простая, но это не так

medium
Как научить Эксель самому находить деньги на телефон
Как научить Эксель самому находить деньги на телефон

Мы ставим задачу, а Эксель её решает

medium
Хитрая головоломка про мандарины, секрет которой поймут только те, кто умеет логически мыслить
Хитрая головоломка про мандарины, секрет которой поймут только те, кто умеет логически мыслить

Секрет прост, но его нужно сформулировать

easy
Сложная логическая задача на повышение
Сложная логическая задача на повышение

Как одним вопросом получить ОЧЕНЬ МНОГО информации.

easy
easy