Чему вы научитесь
- Уметь находить достаточно быстрое решение для любой задачи с алгоритмического собеседования
- Распознавать и применять паттерны решения алгоритмических задач (например, два указателя)
- Уметь реализовывать его на своём языке программирования
- Уметь оценивать асимптотическую сложность алгоритмов
- Понимать, что означают оценки «о большое»
- Уметь реализовывать линейный и двоичный поиск на своём языке программирования
- Применять алгоритм поиска, наиболее подходящий под решаемую задачу
- Уметь реализовывать стек, очередь, дек, одно- и двусвязный список на своём языке программирования
- Понимать внутреннее устройство этих структур данных
- Применять наиболее подходящую структуру данных для решаемой задачи
- Уметь комбинировать базовые структуру данных для решаемой задачи
- Понимать, как работают быстрая сортировка и сортировка слияниями
- Уметь реализовывать эти сортировки на своём языке программирования
- Применять наиболее подходящий алгоритм сортировки для решаемой задачи
- Уметь реализовывать графовые алгоритмы: поиски в ширину и глубину, in-order, pre-order и post-order обходы деревьев.
- Понимать внутреннее устройство хеш-таблицы и асимптотики работы её операций
- Уметь реализовывать хеш-таблицу на своём языке программирования
О курсе
Не можете пройти алгоритмическую секцию в крупную IT-компанию? Здесь есть всё, чтобы закрыть этот пробел. 100 практических задач с автоматической проверкой по алгоритмам и структурам данных, концентрированная теория простыми словами от ex-Яндекс разработчика Ильи Шишкова — всё ради одной цели: сделать вас тем, кто уверен в своих силах на собеседовании и на работе. Этот курс даёт реальные навыки, которые позволят вам пройти интервью и будут каждый день пригождаться на работе.
Для кого этот курс
1. Программисты, которые уже заваливали алгоритмическое собеседование в крупной IT-компании и хотят наконец разобраться в теме, чтобы в будущем успешно пройти интервью в Google, Яндекс, Amazon, и другие ведущие компании.
2. Те, кто работает программистами, но всегда считал алгоритмы своей слабой стороной и хочет устранить этот пробел. Если вам интересно разобраться в алгоритмах и повысить свою уверенность — этот курс для вас.
3. Программисты, выходящие на международный рынок труда, которые хотят подготовиться к своему первому собеседованию в крупной зарубежной IT-компании. Курс поможет вам овладеть необходимыми алгоритмическими навыками и чувствовать себя уверенно на интервью.
4. Люди, которые работают в IT-сфере в какой-то роли (менеджер, системный администратор, тестировщик) и хотят перейти в разработку
Начальные требования
- Уметь программировать на одном из языков программирования C++, Go, Java, Python
- Неважно, какой язык для вас является основным, знакомство с С++ сильно упростит для вас прохождение курса
Преподаватели курса
Как проходит обучение
- Только нужные темы: Курс включает только те темы, которые необходимы для успешного прохождения алгоритмических собеседований и регулярно используются в реальной разработке. Никакой лишней теории — только то, что поможет вам стать сильнее.
- Разнообразный формат обучения: Материалы курса состоят из видеолекций, статей и практических заданий. Теория всегда подкрепляется практикой для лучшего усвоения.
- Более 100 практических задач: Вас ждут не менее 100 задач по программированию, которые позволят закрепить знания на практике. К задачам прилагаются видеолекции, объясняющие ключевые концепции и «паттерны решений».
- Автоматическая проверка решений: Все задачи проверяются автоматически — ваша программа, написанная на любом удобном для вас языке, отправляется на проверку, и через 1-2 минуты вы получаете результат. В случае ошибки вы можете повторять попытки до тех пор, пока не добьётесь правильного результата.
- Итеративный подход к обучению: Метод проб и ошибок — как в жизни. Вы учитесь шаг за шагом улучшать свои решения, что помогает сформировать прочный навык в решении задач.
Что вы получите
- 1. Уверенность на алгоритмических собеседованиях
- 2. Чёткое понимание внутреннего устройства стандартных алгоритмов и структур данных
- 3. Практический навык решения алгоритмических задач в ограниченное время
- 4. Навык распознавания "паттернов решений"
- 5. Систематизация знаний по алгоритмам и структурам данных
- 6. Новый подход к написанию кода, который снижает время на разработку
Нагрузка
Курс рассчитан на два месяца