Вам предстоит решить 5 задач за 5 часов. Сделать это можно в течение недели с момента получения письма. Но после нажатия кнопки «Начать» — сработает таймер, который нельзя будет поставить на паузу.
Перед стартом рекомендуем прорешать задачи из подборки CodeRun — там собраны тестовые задания прошлых лет.
Решать задачи можно на любом языке. Все решения проверяются автоматически. Если ваше решение не проходит проверку, попробуйте учесть возможные краевые случаи, написать стресс‑тесты, более тщательно проанализировать возможные ошибки или обратитесь к инструкции к Контесту. Также обращаем внимание, что все решения проходят проверку на антиплагиат, рекомендуем решать задачи самостоятельно.
И главное — помните: необязательно выполнить все задачи, чтобы пройти на следующий этап. Начните с малого, а мы оценим ваши знания и навыки.
В совместном онлайн‑редакторе вас попросят решить 2–3 задачи на написание кода, алгоритмы и структуры данных, а также ответить на несколько теоретических вопросов по ходу решения задач. Мы будем проверять знание языка и умение находить оптимальные решения. Советуем потренироваться в решении задач с таймером, чтобы уложиться в 60 минут. Возможности запускать код не будет. Количество собеседований зависит от качества прохождения предыдущих этапов.
Залог успешного прохождения технического интервью — хорошее знание алгоритмов и выбранного языка программирования. На интервью решать задачи нужно на том языке программирования, который вы указывали в заявке. Если хотите его поменять, то заранее сообщите об этом рекрутеру.
Важно уметь оценивать сложность алгоритмов, писать читаемый код, внимательно проверять ошибки, не забывать про краевые случаи. Не менее важно уметь коммуницировать с интервьюером — слышать подсказки и реагировать на них, не бояться задавать вопросы, рассуждать вслух, озвучивать возникающие идеи.
Чтобы чувствовать себя увереннее, рекомендуем прочитать пост в нашем Telegram-канале про финальные встречи с командами. Опыт самостоятельных проектов — учебных, рабочих или личных — всегда преимущество. Будет полезно, если вы заранее вспомните пару таких примеров и поделитесь с нами на собеседовании.
Начните с решения 10–20 задач уровня Easy (зелёные) по каждой теме. Обычно эти задачи требуют применения только одного алгоритма или структуры данных для решения.
Цель:
Для минимизации количества попыток нужно внимательно проверять свой код на наличие синтаксических ошибок, придумывать примеры с краевыми условиями (например, входящий массив — пустой) и проверять решение на них.
Далее переходите к задачам уровня Medium (жёлтые). Как правило, для их решения потребуется скомбинировать 2–3 алгоритма или структуры данных. Рекомендуем решить не менее 10 задач по каждой теме. Примерно такого уровня задачи будут на собеседовании.
Книги:
Скотт Мейерс «Эффективный и современный С++»
Клеппман Мартин «Высоконагруженные Приложения»
Курт Гантерот «Оптимизация программ на C++»
Роберт Седжвик «Фундаментальные алгоритмы на C++»
Книги:
«Fluent Python» (на русском «Python. К вершинам мастерства») Luciano Ramalho
Книги:
Шилдт Г. «Java. Руководство для начинающих»
Шилдт Г. «Java. Полное руководство»
Goetz B. «Java Concurrency in Practice»
Книги:
Тейва Харшани «100 ошибок Go и как их избежать»
Алан А. А. Донован, Брайан У. Керниган «Программирование на Go»
Не рекомендуем: машину, торговые центры, переполненные кофейни
Напишите, если остались вопросы: intern@yandex-team.ru