Как быстро подготовиться к вопросам по алгоритмам на IT-собеседовании — отвечают эксперты
Как в сжатые сроки подготовиться к собеседованию по алгоритмам? На этот вопрос вам подробно ответят наши эксперты.
49К открытий50К показов
Когда знаешь, что на собеседовании будут задавать вопросы про алгоритмы, хочется хорошо подготовиться в сжатые сроки и понять, что вообще нужно повторить. Мы решили спросить у экспертов, как быстро подготовиться к такому собеседованию.
Как быстро подготовиться к вопросам по алгоритмам на IT-собеседовании?
Игорь Павлов
руководитель группы разработки Waves Node
Начните с поиска примеров возможных вопросов в Интернете и самостоятельно порешайте задачи. Что нужно повторить в первую очередь:
- Структуры данных — массивы, списки, деревья, двоичное дерево поиска, очереди, стек, хэш-таблица (конечно, нужно знать, что такое хэш). Как устроен каждый тип структур данных. Обратите внимание на то, какие структуры данных лучше всего подходят для конкретных задач.
- Алгоритмы сортировки — метод пузырька, сортировка Хоара (quick sort), сортировка слиянием. Здесь необходимо понимание и способность объяснить, как работает каждый из алгоритмов.
- Алгоритмы поиска — линейный и бинарный (метод деления пополам).
Затем нужно вспомнить или разобраться со сложностью алгоритмов и стандартных операций со структурами данных (доступ, вставка, удаление, поиск элементов). Ключевые слова для поиска: «O» большое, временная сложность алгоритма.
Думаю, что знаний по этим вопросам должно будет хватить для прохождения первичного собеседования, однако требования к специалистам могут отличаться от компании к компании.
Даниил Каневский
директор по аналитике компании GoodsForecast
Чтобы быстро подготовиться к такому собеседованию, представьте себя на месте работодателя: чаще всего он задаёт вопросы по алгоритмам, чтобы понять, хорошо ли вы соображаете и насколько легко сможете решать самые разнообразные аналитические задачи. Быстро научиться хорошо соображать, к сожалению, невозможно. Но можно потренироваться, чтобы «расшевелить мозги» и вспомнить кое-что, чему учили в университете.
На интервью в GoodsForecast мы в основном предлагаем решать задачи трёх типов:
- Базовые алгоритмы и их алгоритмическая сложность. Например: какие вы знаете алгоритмы сортировки массивов, чем одни лучше других и почему? Помимо сортировки, это могут быть основы дискретной математики, теории графов и т. д. Если вы сильно «плаваете», исправить это быстро будет сложно, но вспомнить университетский курс или почитать специальную книжку точно не будет лишним.
- Задачи «на сообразительность», не требующие специальных знаний, но требующие гибкости, мышления и логики. Лучше всего их решают «олимпиадники», но даже если вы к ним не относитесь, навык решения подобных заданий можно натренировать. Задач такого типа полно в Интернете, решайте их десятками, чем больше, тем лучше.
- Геометрические задачи. Например, как найти геометрическое место точек, равноудалённых от концов заданного отрезка. Для тренировки можно взять хороший задачник по геометрии для 9-го класса. Уверяю вас, получите удовольствие.
Удачи на собеседованиях и хорошей работы!
Сергей Сердюк
методист образовательного курса «Андроид-разработчик» университета онлайн-профессий «Нетология», главный разработчик «Альфа-банка»
Фундаментально и быстро к собеседованию подготовиться довольно сложно, но возможно. Как бы я стал готовиться и на какие моменты обратил внимание при подготовке?
День 1
Рекомендую начать с тем, которые вам нужно вспомнить/почитать/посмотреть. Выберите сами:
- что такое сложность алгоритма, какая бывает;
- от чего зависит потребляемая память алгоритма и его скорость;
- как самому рассчитать вышеперечисленные признаки.
День 2
Повторите базовые алгоритмы сортировки:
- пузырьком;
- выбором;
- слиянием;
- быстрая сортировка.
Обязательно посмотрите примеры кода и визуализацию.
День 3
Обязательно пройдитесь по базовым алгоритмам поиска:
- поиск в хэш-таблице;
- бинарный поиск;
- деревья (красно-чёрное дерево).
В интернете довольно много вариантов реализации этих алгоритмов на разных языках. Нужно посмотреть каждый из них на примерах и, конечно, визуализацию. Почитайте про их сравнение и детально разберитесь в работе каждого.
День 4
Рассмотрите применение алгоритмов на практике — где применяются деревья и почему? Отмечу, что (в зависимости от специфики собеседования) существуют узконаправленные алгоритмы, например, для параллельной обработки данных, блокчейн, алгоритмы машинного обучения. Важно выбрать направление и просмотреть материалы, отражающие сегодняшние тренды определённой технологии.
День 5
Берите план и кратко пересказывайте коллеге всё то, что освоили/повторили/изучили за предыдущие 4 дня.
Если у вас в запасе больше двух месяцев на подготовку, я рекомендую пройти следующие курсы:
- практика на HackerRank;
- специализация Algorithms на Coursera;
- специализация Data Structures and Algorithms на Coursera.
Желаю успехов на собеседовании!
Данил Головизин
продакшн-директор digital-агентства Rutorika
Самое главное: если вы никогда не работали с алгоритмами — от быстрой подготовки толку не будет. Программист должен уметь распознавать алгоритмы в бизнес-задачах, выводить собственные и знать, какие алгоритмы используются в его инструментах. Если вы просто погуглили популярные алгоритмы, на собеседовании вас подловят на вопросе, для ответа на который нужен боевой опыт. Лучше сразу сказать, что у вас небольшой опыт работы с алгоритмами, и получить работу с другими компетенциями.
А если с опытом всё в порядке — просто освежите теорию по алгоритмам сортировки (от простых вроде пузырька до гибридных) и алгоритмам поиска (алгоритмы бинарных деревьев, алгоритмы хэш-таблиц).
Итак, как быстро подготовиться к собеседованию, на котором будут задавать вопросы по алгоритмам?
Если вы ничего не знаете, то лучше так и скажите — толку от изучения всей доступной теории с нуля не будет. Если у вас с этим всё не так плохо, то повторите базовые структуры данных, алгоритмы сортировки и поиска. Изучите их реализации, вспомните, в чём их разница и в каких случаях стоит их применять. Попробуйте разобраться, почему тот ли иной алгоритм эффективнее в конкретно взятом случае. Закрепите знания на практике — решайте побольше задачек.
Помните, что при должном уровне усердия и подготовки у вас обязательно всё получится!
Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на experts@tproger.ru, мы расскажем, как это сделать.
49К открытий50К показов