Сколько нужно на самом деле
Гораздо меньше, чем пугают. Новичку на собеседовании дают задачи, которые решаются за пятнадцать-двадцать минут и не требуют знания хитрых структур данных.
Готовиться месяцами по толстому учебнику не нужно. Двадцати-тридцати простых задач достаточно, чтобы чувствовать себя уверенно.
Что надо знать
Массивы и строки. Перебор, поиск, разворот, подсчёт, удаление повторов. Это основа большинства задач для новичков.
Словари и множества. Понимание, что поиск в них быстрый, а в списке — медленный. Половина задач решается тем, что вы догадались использовать словарь.
Сортировку — на уровне пользователя. Знать, что она есть, уметь сортировать по своему условию. Писать быструю сортировку с нуля не просят.
Сложность — на пальцах. Достаточно понимать разницу между «проходим один раз» и «для каждого элемента проходим весь список ещё раз». Про логарифмы можно ответить в общих чертах.
Рекурсию — базово. Понимать идею и уметь написать простое: факториал, обход дерева.
Чего знать не надо
Динамического программирования, графов, сложных деревьев, хитрых алгоритмов поиска. Если у новичка это спрашивают, чаще всего это либо перебор со стороны компании, либо задача со звёздочкой, которую вы не обязаны решить.
Типовые задачи
Прорешайте по два-три примера каждого вида:
- Развернуть строку или массив.
- Найти повторяющиеся элементы.
- Посчитать частоту символов или слов.
- Проверить, что скобки расставлены правильно.
- Найти два числа с заданной суммой.
- Слить два отсортированных списка.
- Проверить палиндром.
- Найти самое частое значение.
- Убрать повторы, сохранив порядок.
- Посчитать что-нибудь в тексте.
Этого набора хватает для подавляющего большинства собеседований на начальные позиции.
Как готовиться
Решайте вслух. Главный навык — не решить, а объяснить. Тренируйтесь проговаривать: что понял из условия, какой подход, почему такой, на чём проверю.
Записывайте себя. Неприятно, но полезно: услышите, где мямлите и где проглатываете рассуждение.
Не заучивайте решения. Заученное видно сразу, и на изменённом условии вы поплывёте.
На самом собеседовании
- Уточните условие. Что если пустой ввод? Могут ли быть отрицательные числа? Один вопрос перед началом производит очень хорошее впечатление.
- Проговорите подход до кода. «Пройду один раз, буду складывать в словарь, потом выберу максимум».
- Пишите и объясняйте одновременно. Молчание — худшее, что можно делать.
- Проверьте на крайних случаях. Пустой ввод, один элемент, все одинаковые. Про это забывают почти все, а вспомнить — заметный плюс.
Задача на собеседовании — это разговор, а не экзамен. Оценивают собеседника, а не олимпиадника.
Хватит читать — пора делать
На CohortX можно найти команду под пет-проект и получить тот самый опыт, о котором спрашивают на собеседовании.
Похожие статьи
- Fifteen SQL queries you'll be asked at an interviewStandard problems with notes on what each one tests, and the places beginners get them wrong.
- Пятнадцать запросов SQL, которые спросят на собеседованииТиповые задачи с пояснениями, что именно проверяет каждая, и разбор мест, где новички ошибаются.
- Online interviews: setup and preparationWhat to check before the call, how to behave on camera, and what to do when the connection fails at the worst moment.