Часть 1. Введение
Модуль 1. Как учиться онлайн
Особенности обучения в онлайне
Как работать с образовательной платформой
Модуль 2. IT в современном мире
Основные термины
Сетевая инфраструктура
Часть 2. Введение в ИТ
Введение
IT в современном мире
Часть 3. Введение в Python
Модуль 1. Подготовка к работе
Как работать с документацией по Python
Модуль 2. Типы данных
Типы данных: строки, списки, кортежи, переменные, множества, булевы выражения, словари, коллекции
Типы float и int. Операции с числами. Логические операции, операции сравнения. Ввод/вывод (I/O)
Модуль 3. Условия и циклы
Условия: if, else, elif
Циклы: for, while.
Модуль 4. Функциональное программирование
Исключения и обработка ошибок
Функциональное программирование в Python. Функции и рекурсия
Итераторы и генераторы
Модуль 5. Задачи по пройденным темам
Задачи по Python: ветвление, циклы, декораторы
GitHub
Установить и настроить систему контроля версий (Git), создать локальный репозиторий, работа с коммитами, разобраться с принципами ветвления в Git, умение работать с ветками (в т.ч. разрешение конфликтов при слиянии веток)
Создать свою страничку на GitHub, синхронизировать локальный и удалённый репозитории.
Часть 4. ООП
Модуль 1. Введение в ООП
Объектно-ориентированное программирование для Python. Простые классы. Классы и объекты
ООП: наследование, инкапсуляция, полиморфизм, перегрузка методов и операторов
Модуль 2. Продолжение ООП
Продолжение работы с ООП (как реализовать общие для любого объекта методы, как можно удобно воплощать концепции ООП с помощью встроенных декораторов класса), работа с исключениями
Модуль 3. Модули и импорт. Работа с файлами и данными
Создание собственных классов исключений
Импорт модулей.
Модуль 4. Алгоритмы и структуры данных
Алгоритмы в Python: поиска, сортировки, деревья. О-нотация
Модуль 5. Итоговый проект по ООП «Телеграм-бот»
Инструменты, которые позволят взаимодействовать с web-контентом: открывать и загружать интернет-страницы через специальные модули Python, а не в привычном смысле через браузер.
Часть 5. Бэкенд-разработка на Python и Django
Модуль 1. Знакомство с Django
Развертывание проекта
Подключение стандартных приложений FlatPage
Установка и настройка дополнительных модулей CKEditor в админке
Верстка базового шаблона Bootstrap
Модуль 2. Реляционные базы данных, проектирование базы данных
Получение четкого представления о базах данных, их месте в современном мире, их значимости для компаний самого разного масштаба, сферах применения БД. Знание компонентов БД, Понимание как работать с информацией в БД
Умение проектировать БД, моделировать объекты реального мира для представления их в БД, моделировать свойства этих объектов и связи между ними.
Знание конкретного ПО и умение работать с ним — системы управления базами данных (СУБД), которое позволяет создавать БД и работать с ними.
Модуль 3. Язык SQL
Знакомство с языком SQL, умение создавать базы данных на основе спроектированной модели данных, изменять и удалять объекты БД, манипулировать данными
Модуль 4. Объекты, запросы, программирование в СУБД
Подготовленные запросы, параметры;
Объекты БД: последовательности, индексы, представления, пользовательские функции и некоторые другие;
Концепция программирования на уровне СУБД: преимущества и недостатки;
Использование триггеров, хранимых процедур и функций;
Расширения СУБД для выполнения различных задач: временные ряды, пространственные вычисления и пр.
Модуль 5. Модели
Проектирование схемы БД таблицы и связи +
Создание моделей данных + миграции
Модуль 6. Представления и шаблоны
Настройка представлений просмотра generics DetailView ListView
Верстка шаблонов Bootstrap
Модуль 7. Фильтры и формы
Фильтрация и пагинация DjangoFilter
Формы
Модуль 8. Создание контента и авторизация
Создание страниц добавления и редактирования CreateView, UpdateView
Авторизация и регистрация django-allauth
Модуль 9. Работа с почтой и выполнение задач по расписанию
Подтверждение email по почте отправка писем
Выполнение задач по расписанию (cron)
Создание списка рассылок
Модуль 10. Работа с асинхронными задачами через celery
Принципы работы синхронного и асинхронного взаимодействия компонентов приложения;
Знакомство с Celery, с разными брокерами сообщений;
Связывание Celery, Redis и Django в единую систему;
Добавление задачи в очередь;
Составление расписания задач.
Модуль 11. Кэширование
Знакомство с кэшированием, умение применять его в проекте для оптимизации отдельных страниц, частей шаблона и приложения в целом
Модуль 12. Качество кода
Тестирование
Статическая проверка кода flake8
Документирование кода
Аннотация типов, зачем это нужно
Модуль 13. Безопасность
Веб-безопасность, Распространенные угрозы, Методы защиты, Защита от угроз в Django
Модуль 14. Управляющие команды и настройка админки
Какие управляющие команды существуют, Команды для работы с данными, Создание собственных управляющих команд, Продвинутая работа с админкой
Модуль 15. Работа с PostgreSQL
Подключение PostgreSQL, Использование полей JSONField и ArrayField, Поиск текста по сайту, Использование представлений
Модуль 16. Продвинутые возможности работы с Django
Создание собственных тэгов и фильтров в шаблонах, Изучение работы middleware и создание собственного, Логирование, Что такое SEO и почему сегодня это важно, HTML блоки для SEO, Генерация sitemap. xml и добавление robots. txt
Модуль 17 Локализация и интернационализация
Включение поддержки разных языков и языковых настроек, Создание файла-перевода и генерация бинарного перевода, Локализация контента, Временные зоны
Модуль 18. REST архитектура
Взаимодействие программ через API, Что такое REST архитектура, Проектирование REST API, OpenAPI, Установка и первоначальная настройка Django Rest Framework (DRF), Cоздание CRUD API методов, Фильтрация и пагинация ресурсов, Авторизованный доступ
Модуль 19. Проект на Django «Доска объявлений»
Проектирование моделей для проекта, Создание представлений и шаблонов, Регистрация и авторизация пользователей, Работа с объявлениями, Работа с уведомлениями
Дипломная работа
2 кейса на выбор: разработка REST API для реального кейса от Федерации спортивного туризма или кейс из банковской сферы
Бонусный блок «Основы Linux»
Бонусный блок «Основы HTML и CSS»
Бонусный блок «Асинхронный Python»