Coding интервью
Алгоритмическая секция
Алгоритмическая (whiteboard) секция может быть разной сложности, зависит от компании.
Но к ней подготовиться просто, потому что задачи часто повторяются и похожи друг на друга.
Важен навык определять подход для решения — и решать задачу. Чтобы его прокачать, нужно решить много-много задач.
Во время решения важно показать, как ты рассуждаешь, как выбираешь путь решения, процесс тестирования и прочее.
Подготовка
Егор Бирюков предлагает такой путь:
- Пройти курс по алгоритмам, например Специализация Структуры и алгоритмы данных
 - Изучить одну из книг:
 - Полистать старую книжку Cracking the Coding Interview
 - Решать задачи с ЛитКода или аналогов с целью научиться считывать паттерны и определять тип задач (например, прорешав набор задач) до понимания
 - Можно провести мок-интервью на interviewing.io, Pramp, CodeSignal или со знакомыми.
 
Поведение на интервью
- Поздороваться, поговорить
 - Выслушать задачу
 - Задать вопросы и уточнить условия: в каком виде данные, сколько их, требования по памяти и времени, кто будет пользоваться функцией, можно ли препроцессить данные — никаких предположений
 - Оптимальный способ vs в лоб
 - Проговорить алгоритм
 - Написать аккуратный код
 - Во время написания кода говорим: продумываем решение вслух, размышляем об альтернативах и сложности
 - Оцениваем сложность
 - Обсудить альтернативы, плюсы и минусы
 
СОВЕТ
Постоянно говорить даже если непонятно, с чего начать, предлагать даже плохие решения и отметать их.
Ссылки
- Blind 75 LeetCode Questions — задачи, разбитые по группам (2019)
 - Coding interview study plan — обновлённый список (2022)
 - Grind 75 — Конструктор персонального плана
 - Algorithms-Javascript — Algorithms resolution in Javascript. Leetcode - Geeksforgeeks - Careercup, Ignacio Chiazzo Cardarello, Github
 - JavaScript Modern Interview Code Challenges — Sadanand Pai, GitHub (2022)
 - Собеседования на JavaScript. Как не облажаться? — Реализация функций filter, map, some, Ivan Petrychenko (2021)
 - Ihor Codes — LeetCode, YouTube Channel
 - Telegram-чат «Leetcode heroes»
 - Coding interview blog archive — Coding interview & system design problems (in Russian), Viktor Karpov, GitHub (2022)