Дарья Сидорова
Разработчик ПО Гарима Раджпут поделилась полезными источниками и советами, которые помогли ей устроиться в Google. Они пригодятся тем, кому нужно подготовиться к собеседованию в компанию.
Темы
Ниже приведен список тем, с которых стоит начать подготовку.
- Анализ алгоритмов: асимптотические обозначения.
- Алгоритмы поиска и сортировки.
- Парадигмы разработки алгоритмов: разделяй и властвуй, жадный алгоритм, динамическое программирование, поиск с возвратом.
- Структуры данных: массив, список, дерево, граф, хеш-таблица, стек, очередь.
- Обход графа/дерева: поиск в глубину, поиск в ширину.
Источники
В процессе подготовки к собеседованию важно выбрать качественные источники информации. Чтобы не запутаться в изобилии онлайн-ресурсов и учебных материалов придерживайтесь следующих рекомендаций.
- Новичкам стоит начать с книги «Алгоритмы: построение и анализ» (Introduction to Algorithms, CLRS): она ознакомит со всеми темами, перечисленными выше. GeeksForGeeks — еще один полезный ресурс.
- Отточить навыки помогут эти платформы: InterviewBit, LeetCode, HackerRank. Также обратите внимание на раздел «Обсуждения» на LeetCode: там можно найти темы, которые пригодятся для собеседований и в другие компании.
- Выясните, какие подходы используют другие специалисты. Это поможет по-новому взглянуть на проблему.
- Участвуйте в еженедельных соревнованиях, проводите пробные собеседования, а также отслеживайте свои успехи и анализируйте ошибки.
- Смотрите ролики о решениях задач LeetCode на YouTube.
Советы
- Готовьтесь постепенно. Начинайте с решения задач простого уровня. Выработайте привычку делать это регулярно.
- Не расстраивайтесь, если решение приходит не сразу.
- Постарайтесь выявить закономерности в похожих вопросах.
- Расширяйте количество используемых инструментов.
- Не торопитесь отправлять готовое решение. Пробно запустите код и продумайте крайние случаи. Это упражнение поможет на настоящем собеседовании.
- Попробуйте поучаствовать в соревнованиях по программированию. Это не обязательно, но поможет развивать полезные навыки.
Задачи
- Двоичный поиск. Решите эту задачу. Разберитесь, как можно применять двоичный поиск для решения подобных проблем. Также обратите внимание на этот пост.
- Динамическое программирование. Попробуйте применить этот метод при решении таких задач, как House Robber и Min Cost.
- Граф. Решите эти две задачи (первая и вторая) и проанализируйте временную и пространственную сложность алгоритма.
- Дерево. Обратите внимание на эту проблему.
- Здесь еще одна интересная задача.
Фото на обложке: achinthamb / Shutterstock
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Материалы по теме
-
Пройти курс «Как попасть в топ поисковой выдачи Ozon»
- 1 Восемь ошибок, которые могут испортить онлайн-собеседование
- 2 А+ за собеседование: о чем спрашивают в зарубежных компаниях и как отвечать на эти вопросы на английском
- 3 Четыре навыка, которые помогут пройти любое собеседование
- 4 Вам предстоит собеседование на английском. Какие вопросы может задать рекрутер?