Top.Mail.Ru
Программа обучения Python middle
1 Этап: Введение. Основы синтаксиса
Время прохождения : 2 месяца
Содержание:
Результат:
1. Напишете 20 небольших программ с использованием полученных знаний
2. Напишете 20 небольших программ с использованием полученных знаний
3. Освоите синтаксис языка Python для написания простейших программ
Работа с Git. Система контроля версий. Основные команды: push, commit, pull, pull-request. Ветки, слияние
Конструкции условий. Операторы if, else, elif. Логические операторы or, and, not. Тернарный оператор. Синтаксический сахар в условиях
Циклы: for, while. Операторы break, continue. Функции range, enumerate, zip. Вложенные циклы
Обратная связь
Содержание:
Время прохождения : 1 месяц
Типы данных. Числа, строки, коллекции, булевые значения
Принципы ООП: наследование, инкапсуляция, полиморфизм. Класс object. Функция super(), множественное наследование. Сокрытие атрибутов и методов, уровни доступа к ним. Наследование инкапсулированных свойств
2 Этап: Структуры данных. Парадигма ООП
Классы и объекты. Атрибуты и методы классов/объектов. Различие класса и объекта и их атрибутов
Специальные методы. Методы создания объектов __init__, __new__. Методы арифметических и логических операций. Методы представлений: __str__, __repr__.
Практика:
1. Проект 1: Консольное приложение “Система регистрации пользователей”.
2. Проект 2: 2D игра “Арканоид” + 10 домашних заданий
Результат:
1. Получите навык создания собственных типов данных
2. Приобретете опыт в проектировании приложений с большим содержанием кода
Практика:
1. Проект 1: Консольная игра “Крестики-нолики”
2. Проект 2: Приложение с графическим интерфейсом “Калькулятор”. + 20 домашних заданий
Функции. Пространства имён: локальное, глобальное. Параметры: позиционные, именованные. Распаковка параметров. Оператор return - возврат значения. Рекурсия. Встроенные функции
Работа с модулями. Подключение модулей, операторы: import, from. Пакеты модулей. Пространство имён модулей, конфликты имён.
Этап 3. Углубленное изучение Python
Содержание:
Время прохождения: 1 месяц
Работа с файлами. Байты и кодировки. Открытие файлов, чтение/запись данных. Контекстный менеджер with. Директории операционной системы
Исключения. Обработка исключений - конструкция try/except(finaly, else). Traceback, исключения в стеке вызовов. Создание пользовательских исключений
Функциональное программирование. Lambda-функция. Создание функций-генераторов, встроенные генераторы. Замыкание, декораторы. Итераторы
Тестирование. Пакет unittest: классы TestCase, TestSuit; методы инициализации и финализации: SetUp, TearDown и др. Декораторы тестов. Логирование: уровни, конфигурация, ошибки
Асинхронность. Асинхронное выполнение функций. Написание телеграм-бота: библиотека iogram: конфигурации, handlers, отправка сообщений, клавиатуры кнопок
Практика:
1. Проект 1: Приложение с графическим интерфейсом “Проводник файлов”
2. Мини-проект: “Имитация работы ресторана”
4. Проект 2: “Бот продажи настольных игр” + 30 домашних заданий
3. Мини-проект: "Создание картинок”
Мультипоточность. Потоки Thread, их назначение и работа. Проблема гонки потоков. Блокировка интерпретатора. Очереди в потоках. Многопроцессорность
Работа с библиотеками. Виртуальные окружения: создание, зависимости. Сторонние библиотеки: где находить, установка, использование. Интроспекция
1. Приобретете навыки работы с файлами операционной системы
2. Расширите знания о функциях на практике
Результат:
3. Усвоите инструменты ускорения работы кода
4. Приобретете опыт в работе с сторонними библиотеками и базами данных
5. Напишете 4 проекта
Библиотека для работы с базами данных. Встроенная библиотека SQLite3: создание БД, функции SQL-запросов, ORM модели. SQLAlchemy
Этап 4. Специализированные инструменты
Содержание:
Время прохождения: 2 месяца
Нейронные сети и машинное зрение. Google Collab. Искусственный интеллект: история, концепции, направления. Машинное обучение: глубокое обучение, обучение с подкреплением
Web-разработка. FastAPI. Маршрутизация, валидация данных, crud-функции, шаблоны и HTML, формы отправки данных. Базы данных: SQLAlchemy в FastAPI, миграции/пакет alembic, категоризация функций
Web-разработка. Django. Структура проекта Django. Маршрутизация и представления. Базовые инструменты front-end: HTML, CSS файлы. DTL - язык шаблонов Django. HTTP запросы и ответы. Формы отправки данных. Базы данных: ORM модели, QuerrySet запросы, Postgree. MVT паттерн. Админ-панель. Django REST Framework. Отладка проекта Django/Debug
Практика:
1. Проект 1: “Магазин-товаров”
2. Мини-проект: “Собственная модель ИИ” 30 домашних заданий
Этап 5. Основы алгоритмов и структур данных
Содержание:
Время прохождения: 2 месяца
Введение в алгоритмы и структуры данных
Понятие алгоритмов: шаги, сложность выполнения, понятие «big O».
Основные типы структур данных и их применение
Списки и массивы
Создание, добавление, удаление элементов, индексация
Разбор временной и пространственной сложности
Структуры данных
Сравнение массивов и списков, их преимущества и недостатки в различных задачах
Словари и множества
Введение в хеширование, эффективность операций поиска и вставки
Применение словарей для быстрого поиска по ключам, уникальность данных в множествах
11
Практика:
1. Проект 1: Консольное приложение «Система управления задачами» с приоритетами
2. Проект 2: Разработка интерактивной игры с использованием алгоритмов поиска пути.
20 домашних заданий для закрепления навыков
1. Освоение базовых алгоритмов и структур данных для эффективной обработки данных
2. Понимание, как выбирать подходящие структуры данных для решения различных задач
Результат:
3. Умение реализовывать и оптимизировать алгоритмы
Стек и очередь
12
Очередь: принципы FIFO, реализация на списках и deque.
14
Продвинутые сортировки: быстрая сортировка (QuickSort), сортировка слиянием (MergeSort), пирамидальная сортировка (HeapSort).
15
Применение для управления данными в различных сценариях (например, стек вызовов функций).
13
Понимание и сравнение сложности алгоритмов сортировки
16
Алгоритмы поиска:
17
Применение для управления данными в различных сценариях (например, стек вызовов функций).
18
Очередь: принципы FIFO, реализация на списках и deque.
19
Линейный поиск: применение в простых структурах данных
20
Бинарный поиск: работа с отсортированными данными, сложность O(log n).
21
Поиск в строках: алгоритм Кнута-Морриса-Пратта (KMP) для эффективного поиска подстроки
22
Работа с рекурсией:
23
Принципы работы рекурсивных функций, когда и как использовать рекурсию
24
Рекурсивные алгоритмы на примере алгоритма вычисления факториала и поиска чисел Фибоначчи
25
Проблемы рекурсии: переполнение стека, оптимизация через мемоизацию и динамическое программирование
26
Графы и деревья
27
Основы работы с деревьями: бинарные деревья поиска, операции вставки, удаления и поиска
28
Обходы дерева: в глубину (DFS), в ширину (BFS), рекурсивные и итеративные подходы
29
Введение в графы: представление графов (матрицы смежности, списки смежности), применение для задач на поиск кратчайшего пути и других
30
Жадные алгоритмы и динамическое программирование
31
Введение в жадные алгоритмы и примеры их применения (например, задача о рюкзаке).
32
Основы динамического программирования, решения сложных задач с минимальными вычислениями
33
Примеры использования для решения реальных задач
34
Этап 6. Углубленное изучение основ ООП и структур данных
Содержание:
Время прохождения: 1 месяц
1. Понимание и глубокое освоение принципов ООП
2. Умение проектировать и оптимизировать более сложные программы
Результат:
3. Работа с различными структурами данных и алгоритмами для улучшения эффективности кода
Объектно-ориентированное программирование (ООП)
Полиморфизм, инкапсуляция, наследование и абстракция
Продвинутая работа с классами: статические и классовые методы, методы перегрузки операторов
Практика:
1. Проект 1: Разработка системы учета заказов (консольное приложение).
2. Проект 2: 2D игра с использованием фреймворка Pygame
Оптимизация корутин для повышения производительности
Продвинутая обработка исключений и создание пользовательских исключений
Работа с шаблонами проектирования (например, Singleton, Factory)
Работа с исключениями
Логирование и отладка кода
Структуры данных
Продвинутая работа с коллекциями (множества, словари, очереди, стеки).
Алгоритмы поиска и сортировки (сравнение по времени выполнения и сложности).
11
Эффективная работа с большими объемами данных
12
Итераторы и генераторы
13
Продвинутое использование итераторов и генераторов для оптимизации работы с данными
14
Создание собственных итераторов и генераторов
15
Функциональное программирование
16
Глубокое погружение в функциональные конструкции Python
17
Использование декораторов и замыканий
18
Lambda-функции и функции высшего порядка
19
Этап 7. Работа с многопоточностью, асинхронностью и базами данных
Содержание:
Время прохождения: 1 месяц
1. Умение проектировать многопоточные и асинхронные приложения
2. Знание работы с базами данных и ORM
Результат:
3. Опыт работы с API и асинхронными запросами
Многопоточность и многозадачность
Различие между многопоточностью и многозадачностью
Проблемы синхронизации потоков и способы их решения
Практика:
1. Проект 1: Чат-приложение с использованием асинхронных функций
2. Проект 2: Бот для обработки заказов через телеграм API
Асинхронные функции, asyncio, работа с асинхронными запросами
Разработка высоконагруженных систем с использованием асинхронных технологий
Блокировки, очереди и потоки
Асинхронное программирование
Работа с базами данных
Введение в реляционные базы данных (PostgreSQL, MySQL).
ORM (SQLAlchemy, Django ORM), работа с миграциями и транзакциями
Продвинутая работа с запросами (JOIN, агрегирующие функции)
11
Интеграция с API
12
Взаимодействие с REST API, отправка и обработка HTTP-запросов
13
Работа с JSON и XML форматами данных
14
Асинхронные запросы к API (aiohttp, requests)
15
Этап 8. Оптимизация производительности и тестирование
Содержание:
Время прохождения: 1 месяц
1. Навык оптимизации производительности кода
2. Умение разрабатывать устойчивые и масштабируемые приложения
Результат:
3. Освоение методов автоматизированного тестирования и мониторинга приложений
Оптимизация производительности
Профилирование кода (timeit, cProfile).
Управление памятью, оптимизация использования ресурсов
Практика:
1. Проект 1: Оптимизация существующего приложения (улучшение работы с памятью и процессором).
2. Проект 2: Разработка и тестирование высоконагруженного веб-приложения
Автоматизированное тестирование: pytest, unittest
Модульное и интеграционное тестирование
Мемоизация и кэширование данных для ускорения
Тестирование
Контроль качества кода: статический анализ (pylint, flake8).
Введение в реляционные базы данных (PostgreSQL, MySQL).
CI/CD и DevOps для разработчиков
Основы непрерывной интеграции и доставки
11
Использование Docker и виртуализации
12
Настройка автоматизированных сборок и деплоя с использованием GitLab CI или Jenkins
13
После успешного завершения обучения:
Сертификат
Персональный сертификат о прохождении специализации. По запросу на английском языке.
Развитие карьеры и бизнеса:
У вас будет:
Консультации с ментором в течение обучения.
У вас будет:
Подборки вакансий, инсайты рынка труда.
У вас будет:
Проекты в ваше портфолио.
У вас будет:
Реальный опыт на крауд-платформах.