Написать пост

Как быстро подготовиться к вопросам по алгоритмам на IT-собеседовании — отвечают эксперты

Аватар Никита Прияцелюк

Как в сжатые сроки подготовиться к собеседованию по алгоритмам? На этот вопрос вам подробно ответят наши эксперты.

Обложка поста Как быстро подготовиться к вопросам по алгоритмам на IT-собеседовании — отвечают эксперты

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

Начните с поиска примеров возможных вопросов в Интернете и самостоятельно порешайте задачи. Что нужно повторить в первую очередь:

  • Структуры данных — массивы, списки, деревья, двоичное дерево поиска, очереди, стек, хэш-таблица (конечно, нужно знать, что такое хэш). Как устроен каждый тип структур данных. Обратите внимание на то, какие структуры данных лучше всего подходят для конкретных задач.
  • Алгоритмы сортировки — метод пузырька, сортировка Хоара (quick sort), сортировка слиянием. Здесь необходимо понимание и способность объяснить, как работает каждый из алгоритмов.
  • Алгоритмы поиска — линейный и бинарный (метод деления пополам).

Затем нужно вспомнить или разобраться со сложностью алгоритмов и стандартных операций со структурами данных (доступ, вставка, удаление, поиск элементов). Ключевые слова для поиска: «O» большое, временная сложность алгоритма.

Думаю, что знаний по этим вопросам должно будет хватить для прохождения первичного собеседования, однако требования к специалистам могут отличаться от компании к компании.

Рейтинг полезности ответа:
5.5

Чтобы быстро подготовиться к такому собеседованию, представьте себя на месте работодателя: чаще всего он задаёт вопросы по алгоритмам, чтобы понять, хорошо ли вы соображаете и насколько легко сможете решать самые разнообразные аналитические задачи. Быстро научиться хорошо соображать, к сожалению, невозможно. Но можно потренироваться, чтобы «расшевелить мозги» и вспомнить кое-что, чему учили в университете.

На интервью в GoodsForecast мы в основном предлагаем решать задачи трёх типов:

  1. Базовые алгоритмы и их алгоритмическая сложность. Например: какие вы знаете алгоритмы сортировки массивов, чем одни лучше других и почему? Помимо сортировки, это могут быть основы дискретной математики, теории графов и т. д. Если вы сильно «плаваете», исправить это быстро будет сложно, но вспомнить университетский курс или почитать специальную книжку точно не будет лишним.
  2. Задачи «на сообразительность», не требующие специальных знаний, но требующие гибкости, мышления и логики. Лучше всего их решают «олимпиадники», но даже если вы к ним не относитесь, навык решения подобных заданий можно натренировать. Задач такого типа полно в Интернете, решайте их десятками, чем больше, тем лучше.
  3. Геометрические задачи. Например, как найти геометрическое место точек, равноудалённых от концов заданного отрезка. Для тренировки можно взять хороший задачник по геометрии для 9-го класса. Уверяю вас, получите удовольствие.
    Удачи на собеседованиях и хорошей работы!
Рейтинг полезности ответа:
0.3

Фундаментально и быстро к собеседованию подготовиться довольно сложно, но возможно. Как бы я стал готовиться и на какие моменты обратил внимание при подготовке?

День 1

Рекомендую начать с тем, которые вам нужно вспомнить/почитать/посмотреть. Выберите сами:

  • что такое сложность алгоритма, какая бывает;
  • от чего зависит потребляемая память алгоритма и его скорость;
  • как самому рассчитать вышеперечисленные признаки.

День 2

Повторите базовые алгоритмы сортировки:

  • пузырьком;
  • выбором;
  • слиянием;
  • быстрая сортировка.

Обязательно посмотрите примеры кода и визуализацию.

День 3

Обязательно пройдитесь по базовым алгоритмам поиска:

  • поиск в хэш-таблице;
  • бинарный поиск;
  • деревья (красно-чёрное дерево).

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

День 4

Рассмотрите применение алгоритмов на практике — где применяются деревья и почему? Отмечу, что (в зависимости от специфики собеседования) существуют узконаправленные алгоритмы, например, для параллельной обработки данных, блокчейн, алгоритмы машинного обучения. Важно выбрать направление и просмотреть материалы, отражающие сегодняшние тренды определённой технологии.

День 5

Берите план и кратко пересказывайте коллеге всё то, что освоили/повторили/изучили за предыдущие 4 дня.

Если у вас в запасе больше двух месяцев на подготовку, я рекомендую пройти следующие курсы:

Желаю успехов на собеседовании!

Рейтинг полезности ответа:
13.9

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

А если с опытом всё в порядке — просто освежите теорию по алгоритмам сортировки (от простых вроде пузырька до гибридных) и алгоритмам поиска (алгоритмы бинарных деревьев, алгоритмы хэш-таблиц).

Рейтинг полезности ответа:
0.1
Следите за новыми постами
Следите за новыми постами по любимым темам
48К открытий48К показов