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

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

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

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

Памятка

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

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

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

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

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

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

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

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

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

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

Исключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что дальше

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

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

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

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


Редактор

Максим Ильяхов


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

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


Корректор

Ира Михеева


Вёрстка

Маша Дронова


Соцсети

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

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

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

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

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

easy
ЭТО RAID
ЭТО RAID

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

medium
Странные программисты говорят про время

Суперзамороченная задача, которая решается в два счёта.

easy
Лучшие задачи, которые удивят каждого в 2024 году
Лучшие задачи, которые удивят каждого в 2024 году

Сможете решить их все?

hard
Задача про тест на собеседовании
Задача про тест на собеседовании

Пришёл программист на собеседование, и началось.

medium
Задачка от Джеффа Безоса. На размышление даётся 30 секунд
Задачка от Джеффа Безоса. На размышление даётся 30 секунд

Считается, что её могут загадать на собеседовании в «Амазон».

hard
Логическая задача
Задача имени Якубовича: три шкатулки с деньгами

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

hard
Два школьника и наггетсы

Как расплатиться за обед, если всем досталось поровну?

easy
easy