Подготовка к LeetCode-интервью

Задачи на алгоритмы – одна из частей процесса технических интервью в крупных компаниях в РФ и заграницей. Сами алгоритмы и структуры данных лежат в основе Computer Science (информатики) и изучаются на первых курсах любого университета, где учат на программистов. Leetcode – сайт, где можно тренироваться решать такие задачи.

Сразу к делу

Я помогаю с изучением алгоритмов и структур данных, выполняя роль ментора / репетитора. Помогаю научиться решать задачи с литкода для прохождения собеседований, повышения качества кода и фана.

У меня есть программа обучения, основанная на задачах с литкода. Мы разбираем все основные темы, которые проходят студенты, учащиеся на программистов в вузе. Этого достаточно, чтобы пройти алгоритмическое собеседование в FAANG или в крупные российские компании.

Темы, которые мы разбираем

Это не исчерпывающий план, просто список задачек по темам, чтобы ничего не упустить. Решать все задачи по всем темам не обязательно. Я думаю, достаточно примерно 20 тем × 15 задач ≈ 300 задач всего.

Ответы на вопросы

Как проходят занятия

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

На каком языке программирования пишут алгоритмы

Лучше писать на том языке, на котором вам привычнее всего. Например, я пишу на джаваскрипте, потому что это мой основной язык на протяжении последних 10 лет. Самый популярный вариант это Python. В целом на языках с динамической типизацией писать проще. Но можно выбрать Java, C#, C++, Swift, Go или любой язык, который поддерживает LeetCode. На занятиях можем использовать любой язык, это не принципиально.

Насколько хорошо надо программировать

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

Сколько нужно решить задач, чтобы научиться

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

Зачем нужно изучать алгоритмы, если у меня на работе нет таких задач

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

Сколько это времени займет

Зависит от вас, но это месяцы подготовки. Я бы сравнил это с университетским курсом. Студенты, которые учатся на программистов, просто в расписании имеют такой курс, который называется «Алгоритмы и структуры данных», в базовом формате он занимает 2 семестра, каждую неделю одна лекция и одна практика. Хорошо, что мы не студенты и можем заниматься более эффективно.

Сколько стоит занятие

Столько же, сколько мое обычное занятие по программированию: 3000 ₽ за 60 минут. Можно записаться на 90 минут.

Что могу рассказать о себе

Я работаю программистом (сейчас в компании Циан) и занимаюсь репетиторством более 10 лет. За последние 5 лет помог найти первую работу или устроиться на лучшее место более чем сотне человек. Учился в Санкт-Петербурге в ФМЛ 239 и на мат-мехе СПбГУ. С десятками людей успешно готовились к алгоритмическим интервью.

Как со мной связаться