Алгоритмы и стуктуры данных

33 темы + 100 задач

Ум != количество информации

Умение составлять алгоритмы отражает ваши навыки мышления в решении сложных задач.

Поэтому не имеет значения, как много теории вы знаете, если вы эту теорию не можете применить.

1
logN
√N
N
N*
logN
N2
2N
N!

Алгоритмы спрашивают в BigTech и во многих крупных международных компаниях

12 разделов

по всему Computer Science

Теория + Практика

  • 33 темы
  • 120 уроков
  • 100 задач
  • 17 часов

1. Битовые манипуляции

11 уроков

  • 1. Системы счисления
  • 2. Байты
  • 3. Логические битовые операторы
  • 4. Битовые сдвиги
  • 5. Битовый вектор
6 задач
Область применения:

Сетевые
протоколы

Драйверы

Микроконтроллеры

Rонтрольные
суммы

Оптимизация
памяти

Арифметические
операции

2. Оценка сложности алгоритмов

2 урока

  • 1. Оценка сложности алгоритмов по времени
  • 2. Оценка сложности алгоритмов по памяти
Для чего это нужно:

Скорость роста времени выполнения кода можно оценить в каждом алгоритме с помощью нотации BigO.
Такая оценка позволяет оптимизировать скорость выполнения кода и объем памяти, требуемый для его выполнения.
Это повышает качество кода и показывает ваш уровень как специалиста.
На основе этих знаний становится понятна суть использования всех последующих структур данных, потому что каждая из них работает с разной скоростью BigO.

3. Массивы

27 уроков

  • 1. Реализация структуры данных
  • 2. 2 указателя
  • 3. Строки
  • 4. Скользящее окно
  • 5. Матрицы
  • 6. Интервалы
25 задач
Область применения:

Анализ
графиков

Синхронизация
логов

Кодировки
строк

Финансовые
системы

Статистика
запросов

Сетевые
пакеты

Распознавание
лиц

Видеонаблюдение

Навигация

МРТ

Планировщики

Системы
бронирования

Пересечения
в играх

4. Стек и очередь

10 уроков

  • 1. Реализация стека
  • 2. Реализация очереди
  • 3. Монотонные последовательности
7 задач
Область применения:

Парсинг
HTML-кода

Арифметические
выражения

Навигация
в браузере

Сокращение
путей в ОС

Эмуляция
аппаратного стека

Асинхронная
передача данных

Запись на диск

Планировщики

Очередь
обслуживания

Анализ цен
на бирже

Мониторинг
температуры

Серверная
нагрузка

Удаление шума
в изображении

5. Связный список

8 уроков

  • 1. Однонаправленный связный список
  • 2. Двунаправленный связный список
6 задач
Область применения:

Компиляция

Кэширование

6. Хэш-таблица

7 уроков

  • 1. Метод цепочек
  • 2. Метод открытой адресации
6 задач
Для чего это нужно:

Универсальное хранение данных в формате "ключ:значение"

7. Рекурсия

12 уроков

  • 1. Раскрутка функций на стеке
  • 2. Виды рекурсий
  • 3. Поиск с возвратом
9 задач
Область применения:

Парсинг Json-файла

Файловые системы

Комментарии и чаты

Перебор вариантов

Перестановки

Сочетания

Генерация паролей

Построение маршрутов

Решение головоломок

8. Деревья

19 уроков

  • 1. Двоичное дерево
  • 2. Двоичное дерево поиска
  • 3. Двоичная куча
  • 4. Префиксное дерево
15 задач
Область применения:

Арифметические
операции

Машинное обучение

Сжатие

Базы данных

Планировщики

Передача данных
по сети

Мониторинг
запросов

Системы
бронирования

Подсказки
при поиске

9. Графы

10 уроков

  • 1. Поиск в глубину
  • 2. Поиск в ширину
8 задач
Область применения:

Системы сборки

Решение головоломок

Навигаторы
и карты

Рекомендации
в соц. сетях

Поиск
маршрутов

10. Сортировки

12 уроков

  • 1. Пузырьком
  • 2. Выбором
  • 3. Вставками
  • 4. Слиянием
  • 5. Кучей
  • 6. Хоара
  • 7. Ломуто
  • 8. Внешняя
4 задачи
Для чего это нужно:

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

11. Двоичный поиск

6 уроков

  • 1. Двоичный поиск
5 задач
Область применения:

12. Динамическое программирование

10 уроков

  • 1. Мемоизация
  • 2. Табуляция
8 задач
Для чего это нужно:

Используется для оптимизации рекурсивных задач путем запоминания результатов вычисления или сохранения вычислений в таблицу.

Кому подходит

Курс подойдёт всем, кто хочет сэкономить своё время и получить быстрый рост карьеры в IT

Ты уже учишься, но

  • Нет единой системы знаний
  • Нет понимания что учить
  • Медленное развитие и выгорание

Единая практическая система знаний по CS поможет быстро прокачать навыки и сэкономить время на поиске информации

Ты уже работаешь, но

  • Не получается вырасти в должности
  • Не растет зарплата
  • Не получается перейти в более крупные компании

Фундаментальная алгоритмическая подготовка закроет пробелы в знаниях CS и подготовит к техническому интервью

Что нужно знать

Для прохождения обучения нужно знать основы любого из этих языков + ООП.
Всё остальное мы разберем вместе.

С++
Java
С#
Python
JS
PHP
Go
Rust
Ruby
Kotlin
Swift

Стоимость

Трансформируй свои навыки в IT за 3 месяца

Алгоритмы и структуры данных

3 месяца обучения (по 1-2 урока в день)

33 темы (теоретический материал)

100 задач (видео-разбор + анимация)

Доступ ко всем материалам в записи навсегда

Общий чат учеников

Ответы на вопросы и поддержка

или
сразу

55000 руб.

единым платежом

в рассрочку

18800 руб.

в месяц на 3 месяца

Начать обучение

Популярные вопросы

На какой площадке будут выходить уроки

Все уроки я буду публиковать в 2-х закрытых каналах.
Первый - в телеграме.
Второй - в ВК.
Все материалы будут дублироваться в оба канала сразу.
Задавать вопросы по урокам можно будет и там, и там.

На каком языке мы будем писать код

Писать и разбирать код мы будем на Java.
Java больше других похожа на универсальный псведоязык для алгоритмов. Из-за чего её код легко читается и будет понятен для всех, кто знаком с си-подобными языками.
Поэтому вы сможете писать код задачи как на Java, так и на другом языке.

Как оплатить из РФ

Оплатить можно картой любого российского банка.
Для получения ссылки на оплату вам нужно написать мне в соц. сетях:
- Telegram: https://t.me/osadin
- ВК: https://vk.com/osadin
После оплаты вам придет чек о покупке доступа к закрытому каналу.

Как оплатить не из РФ

Если вы находитесь в Беларуси, то оплатить можно картой МИР.

Из любой другой страны оплатить можно через карты Visa/Mastercard.
Но есть ряд санкционных банков, через которые оплата может не пройти.
Для выяснения деталей напишите мне в соц. сетях:
- Telegram: https://t.me/osadin
- ВК: https://vk.com/osadin
Я отвечу на ваши вопросы и пришлю ссылку на оплату.

Можно ли вернуть деньги, если не понравились уроки

Чтобы сложить мнение об обучении, вы можете посмотреть первый урок бесплатно и понять для себя, нравится вам моя подача материала или нет.

После оплаты вернуть деньги можно не более чем через 7 дней с момента получения доступа к материалам.

Выдается ли сертификат в конце обучения

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

Так как я не собираю с вас личную информацию, то я не могу формировать и выдавать сертификаты в автоматическом режиме.
Всем желающим получить сертификат после прохождения обучения нужно будет запросить его лично у меня, предоставив своё ФИО и email.

На сколько дается доступ к материалам

Доступ к закрытым каналам со всеми материалами выдается разово и навсегда.

В каком формате будут выходить уроки

Все материалы будут публиковаться в формате смонтированных видео-уроков.
Это позволяет существенно экономить время, быстро освежать в памяти материал и что самое главное - позволяет увидеть визуализацию работы алгоритма шаг за шагом.

В каждом разделе будет как теория, так и практика в виде решения задач.

Сколько времени нужно на прохождение уроков

Время на прохождение уроков зависит от темпа обучения, который вы выберете для себя сами.
Я советую изучать по 1-2 урока каждый день, чтобы и не перегрузить психику, и не утратить регулярность в обучении.
В таком темпе вы сможете изучить все материалы за 3 месяца.

Можно ли задавать вопросы по урокам

Под каждым постом с уроком в комментариях можно задавать вопросы по пройденному материалу, если после просмотра какой-то момент остался непонятным.

На вопросы, которые будут выбиваться из темы урока я отвечать не смогу, так как это перейдет в форму индивидуального наставничества, которое в рамках большого количества учеников невозможно.
Пример такого вопроса, на который не будет дан ответ: "Почему у меня не работает этот же алгоритм на другом языке?".