Содержание пакета (3 курса)
1. Bash Linux + Git: от новичка до уверенного пользователя 4.80
Введение в курс
2 урока
1.
Приветствие
↗
2.
Работа с bash в Windows
↗
Введение в Bash
4 урока
1.
Что такое командная строка и зачем она нужна?
↗
2.
Основные команды
↗
3.
Перенаправление ввода\вывода
↗
4.
Задачи
↗
Работа с файлами и текстом
4 урока
1.
Чтение, создание и редактирование файлов
↗
2.
Потоковая обработка (grep, sed, awk)
↗
3.
Регулярные выражения
↗
4.
Задачи
↗
Скрипты Bash
5 уроков
1.
Написание первых скриптов
↗
2.
Переменные и аргументы
↗
3.
Условные конструкции (if, case)
↗
4.
Циклы (for, while, until)
↗
5.
Задачи
↗
Функции и массивы
4 урока
1.
Функции
↗
2.
Массивы
↗
3.
Ассоциативные массивы
↗
4.
Задачи
↗
Пишем скрипты
4 урока
1.
Фильтрация валентинок
↗
2.
Фильтрация валентинок 2
↗
3.
Фильтрация валентинок 3
↗
4.
Фильтрация валентинок 4
↗
Работа с процессами и задачами
3 урока
1.
Управление процессами (jobs, ps, kill, nohup)
↗
2.
Автоматизация задач (cron, at)
↗
3.
Задачи
↗
Работа с сетью и безопасностью
3 урока
1.
Основы сетевых команд (ping, netstat, curl, wget)
↗
2.
Разрешения файлов и управление пользователями
↗
3.
Практические кейсы
↗
Сложные скрипты
5 уроков
1.
Фильтрация валентинок 5
↗
2.
Фильтрация валентинок 6
↗
3.
Фильтрация валентинок 7
↗
4.
Фильтрация валентинок 8
↗
5.
Итоги курса
↗
Введение в Git
4 урока
1.
Что такое системы контроля версий (VCS) и зачем использовать Git
↗
2.
Установка и настройка Git
↗
3.
Основные команды Git: быстрый обзор
↗
4.
Задачи
↗
Работа с ветками и управление историей
4 урока
1.
Ветвление и слияние
↗
2.
Управление историей коммитов
↗
3.
Интерактивный ребейз и рефракторинг истории
↗
4.
Задачи
↗
Работа с удалёнными репозиториями
4 урока
1.
Основы работы с удалёнными репозиториями и GitHub
↗
2.
Совместная работа и Pull Requests
↗
3.
Автоматизация с GitHub Actions
↗
4.
Задачи
↗
Git и GitHub в различных IDE
4 урока
1.
Работа с Git в Visual Studio Code (VSCode)
↗
2.
Git в PyCharm и других IDE JetBrains
↗
3.
Работа с Git в Eclipse и Android Studio
↗
4.
Задачи
↗
Расширенные возможности Git
4 урока
1.
Git Hooks и автоматизация процессов
↗
2.
Работа с тегами и Git stash
↗
3.
Подмодули и работа с большими файлами
↗
4.
Задачи
↗
Стратегии ветвления и интеграция Git с другими сервисами
4 урока
1.
Стратегии ветвления в Git
↗
2.
Интеграция Git с CI/CD
↗
3.
Интеграция Git с таск-трекерами и другими сервисами
↗
4.
Задачи
↗
Оптимизация работы с Git и работа с комплексным репозиторимем
3 урока
1.
Создание и работа с комплексным репозиторием
↗
2.
Оптимизация работы с Git
↗
3.
Завершающий урок — Советы и лучшие практики работы с Git
↗
2. Python для профессионалов 5.00
Введение
1 урок
1.
Приветствие
↗
Итераторы и генераторы
6 уроков
1.
Итерации в Python: итерируемые объекты
↗
2.
Протокол итератора: функции iter() и next(), метод __next__
↗
3.
Создание пользовательских итераторов
↗
4.
Генераторы: функции-генераторы и ключевое слово yield
↗
5.
Генераторные выражения
↗
6.
Продвинутые возможности генераторов
↗
Декораторы
5 уроков
1.
Функции высшего порядка и области видимости
↗
2.
Зачем нужны декораторы: изменение поведения функций
↗
3.
Синтаксический сахар для декораторов: оператор @
↗
4.
Декораторы с параметрами
↗
5.
Декорирование методов и классов
↗
Менеджеры контекста
4 урока
1.
Оператор with и протокол менеджеров контекста
↗
2.
Использование встроенных менеджеров контекста (пример: файл)
↗
3.
Создание своего менеджера контекста
↗
4.
Библиотека contextlib: упрощение создания менеджеров контекста
↗
Асинхронное программирование (async/await, asyncio)
5 уроков
1.
Конкурентность vs параллелизм: зачем нужна асинхронность
↗
2.
Основы async/await: определение и вызов корутин
↗
3.
Библиотека asyncio и цикл событий
↗
4.
Пример: асинхронная обработка веб-запросов
↗
5.
Асинхронные генераторы и менеджеры контекста
↗
Метапрограммирование
5 уроков
1.
Интроспекция и динамические возможности Python
↗
2.
Дескрипторы: управление доступом к атрибутам
↗
3.
Метаклассы: классы, создающие классы
↗
4.
Примеры использования метаклассов
↗
5.
Динамическое создание и модификация классов
↗
Стандартная библиотека
5 уроков
1.
Модуль functools: функции для функций
↗
2.
Модуль itertools
↗
3.
Модуль collections: расширенные контейнеры
↗
4.
Модуль concurrent.futures: простая параллельность
↗
5.
Другие полезные модули стандартной библиотеки
↗
Внутреннее устройство Python
3 урока
1.
CPython: интерпретатор и байткод
↗
2.
GIL: Глобальная блокировка интерпретатора
↗
3.
Сборка мусора в Python: подсчет ссылок и циклический GC
↗
Оптимизация и профилирование
4 урока
1.
Профилирование времени выполнения: cProfile и анализ результатов
↗
2.
Измерение времени отдельных операций: модуль timeit
↗
3.
Профилирование памяти: memory_profiler, tracemalloc
↗
4.
Приёмы оптимизации Python-кода
↗
Современные возможности языка (фичи Python 3.8+, актуальные PEP)
5 уроков
1.
Оператор присваивания в выражениях (PEP 572, Python 3.8)
↗
2.
Позиционные только параметры (PEP 570, Python 3.8)
↗
3.
Объединение словарей и улучшения Python 3.9
↗
4.
Структурное сопоставление (match/case, PEP 634, Python 3.10)
↗
5.
Новое в Python 3.11 и далее: оптимизация и другие PEP
↗
Заключение
2 урока
1.
Формочка для обратной связи
↗
2.
Заключение
↗
3. Алгоритмы и структуры данных: полный курс 5.00
Введение в алгоритмы и структуры данных
2 урока
1.
Краткий обзор структуры курса
↗
2.
Что такое алгоритмы?
↗
Оценка сложности алгоритмов
6 уроков
1.
Асимптотическая сложность и нотация большого O
↗
2.
Пространственная сложность (потребление памяти)
↗
3.
O, o, Θ, Ω(осторожно, матан)
↗
4.
Таблица распространенных сложностей
↗
5.
Примеры оценки сложности алгоритмов
↗
6.
Задачи
↗
Основные структуры данных
8 уроков
1.
Массивы
↗
2.
Списки: односвязанные, двусвязанные
↗
3.
Применение списков
↗
4.
Очередь и стэк: принципы FIFO и LIFO
↗
5.
Реализация и задачи
↗
6.
Задачи
↗
7.
Проект 1: Стэк
↗
8.
Проект 2: Очередь
↗
Алгоритмы поиска и сортировки
10 уроков
1.
Линейный и бинарный поиски
↗
2.
Модификации и тесты на алгоритмы поиска
↗
3.
Сортировка пузырьком
↗
4.
Сортировка вставками
↗
5.
Сортировка слиянием (merge sort)
↗
6.
Быстрая сортировка (Quick Sort)
↗
7.
Quick Select
↗
8.
Детерменированный Quick Sort
↗
9.
Задачи
↗
10.
Проект 3: детерминированный Quick Sort
↗
Кучи и алгоритмы на их основе
4 урока
1.
Двоичная куча: свойства, использование в алгоритмах.
↗
2.
Построение кучи
↗
3.
Встроенные кучи в C++ и Python
↗
4.
Задачи
↗
Дерево отрезков
8 уроков
1.
Что такое ДО?
↗
2.
Построение дерева
↗
3.
Обновление значений
↗
4.
Обработка запросов
↗
5.
Сжатие координат
↗
6.
Неявное дерево отрезков
↗
7.
Задачи
↗
8.
Проект 4: Дерево отрезков
↗
Бинарные деревья
9 уроков
1.
Что такое дерево?
↗
2.
Что такое бинарное дерево поиска (BST)
↗
3.
Операции в бинарном дереве поиска
↗
4.
Обходы дерева
↗
5.
Проверка дерева на соответствие BST
↗
6.
Минимум и максимум в BST
↗
7.
Уравновешенные BST
↗
8.
Использование BST в реальных задачах
↗
9.
Задачи
↗
Сбалансированные деревья
7 уроков
1.
Типы сбалансированных деревьев
↗
2.
AVL-дерево
↗
3.
Splay-дерево
↗
4.
Декартово дерево
↗
5.
Красно-черное дерево
↗
6.
Задачи
↗
7.
Проект 5: Set
↗
Хэш-таблицы
7 уроков
1.
Основная идея и примеры
↗
2.
Коллизии: как их обрабатывать
↗
3.
Частотный анализ
↗
4.
Хранение уникальных элементов
↗
5.
Простая хэш-таблица на основе массива
↗
6.
Обработка коллизий метод цепочек
↗
7.
Задачи
↗
Алгоритмы на графах
8 уроков
1.
Введение в графы
↗
2.
Обходы графа (DFS и BFS)
↗
3.
Компоненты связанности
↗
4.
Кратчайшие пути
↗
5.
Поиск минимального остовного дерева
↗
6.
Топологическая сортировка
↗
7.
Алгоритм Флойда-Уоршелла
↗
8.
Алгоритм А и его примение
↗
Геометрические алгоритмы
6 уроков
1.
Введение в геометрию
↗
2.
Определение выпуклого многоугольника
↗
3.
Пересечение отрезков
↗
4.
Выпуклая оболочка (Convex Hull)
↗
5.
Алгоритм триангуляции Делоне
↗
6.
Геометрические алгоритмы в графике
↗
Теория чисел и криптография
6 уроков
1.
Основы теории чисел
↗
2.
Расширенный алгоритм Евклида
↗
3.
Быстрое возведение в степень
↗
4.
Решето Эратосфена и тесты простоты
↗
5.
Китайская теорема об остатках
↗
6.
RSA и основы криптографии
↗
Динамическое программирование и оптимизация
7 уроков
1.
Базовые принципы ДП
↗
2.
Классические задачи ДП
↗
3.
ДП с восстановлением ответа
↗
4.
Задача о рюкзаке
↗
5.
ДП по деревьям
↗
6.
ДП по маскам
↗
7.
Комбинированные техники ДП
↗
Параллельные и потоковые алгоритмы
5 уроков
1.
Основы многопоточного программирования
↗
2.
MapReduce и обработка больших данных
↗
3.
Алгоритмы для многопоточных систем
↗
4.
Lock-free структуры данных
↗
5.
Параллельные алгоритмы сортировки
↗
Завершающий модуль
1 урок
1.
Итоги курса
↗