1. Как учиться эффективно
- Построение плана обучения
- Работа с книгами и статьями
- Подход к обучению новой темы
- Тайм-менеджмент обучения
- Трекер учебы
2. Введение в профессию Python-разработчик
- Организация разработки
- Кто такой Python-разработчик и чем он занимается
- Профессия разработчика
- Устройство frontend-разработка: HTML, CSS, JS
- Устройство backend-разработка
- Инструменты и навыки Python-разработчика
- Карта компетенций Python-разработчика
3. Введение в IT
- Характеристики оперативной памяти существуют
- Процессоры и графические ускорители
- Устройство компьютера
- Постоянная память
- Дисковые массивы
- Монитор и какие его характеристики важно знать
- Интерфейсы
- Сервер и в чем его особенности
- Операционная система и в чем её особенности
- Программа
- Межпроцессное взаимодействие
- Прерывание
- Запуск программы
- Устройство программирования
- Навыки работы с кодом
- Современные языки и среды программирования
- Навыки программирования на любом языке
- Архитектура программного обеспечения
4. Основы программирования
- Абстракции и как с ними работать
- Математика для IT-специалистов
- Выбор IDE для написания кода
- Понятия true и false в логике
- Простые типы данных
- Сложные типы данных
- Множества
- Выражение, ветвление и цикл
- Функции и окружение
- Рекурсия, рекурсивный и итеративный процессы
5. Начало работы с Python
- Методология изучения Python
- Язык программирования Python
- Введение в языки программирования
- Установка Python и вывод фразы «Hello, world!»
- IDE для работы с Python
- IDE PyCharm для работы с Python
- Подключение к Github из PyCharm
- Установить Visual Studio Code
- Работа с системой контроля версий Git
- Подключение к GitHub из Visual Studio Code и загрузка проектов
- Стандарты PEP 8 и их применение
- Настройка окружения
6. Типы данных в Python
- Начало программирования на Python
- Работа числами в Python
- Работа с булевскими переменными
- Работа со строками в Python
- Работа со списками
- Работа с кортежами
- Работа с множествами
- Работа со словарями
7. Функции
- Функция и её создание
- Начало работы с функциями
- Аргументы и работа с ними
- Конструкции args и kwargs
- Работать с локальными и глобальными переменными
- Документирование функции и возвращение нескольких значений из функции
8. Условия, циклы и рекурсии
- Понятие условий и работа с ними
- Условный оператор if — elif — else
- Использование условных операторов в функциях и комбинирование условий
- Тернарный оператор и the Anti-IF Campaign
- Условный оператор в коде: методика раннего прерывания
- Избегание длинных условий в коде
- Избегание дублирований
- Как не усложнять код
- Циклы в Python и работа с ними
- Рекурсии в Python
9. Модули, библиотеки и файлы
- Импорт модулей и элементы модулей
- Создание модулей
- Основные модули в Python и работа с ними
- Работать с файлами
10. Углублённое программирование
- Лямбда-функция в Python
- Comprehensions в Python
- Итераторы и генераторы в Python
- Исключения в Python
- Оператор в Python
- Работа с датами и временем в Python
- Работа с регулярными выражениями в Python
11. Основы объектно-ориентированного программирования (ООП)
- Создание класса и его объекта
- Инкапсуляция
- Наследование
- Полиморфизм
- Написание кода на Python в рамках ООП
12. Алгоритмы и структуры
- Алгоритмы
- Структуры данных в алгоритмах
- Работа алгоритмов с деревьями данных
- Работа алгоритмов динамического программирования
13. Качественный код
- Организованный код
- Организация и форматирование кода в Python
- Организация Python-проект
- Управление зависимостями в Poetry
- Дебаггинг, рефакторинг и оптимизация
- Исключения в Python
- Общие принципы анализа кода
- Code review
14. Работа с Linux
- Введение в ОС Linux
- Командная оболочка Bash
- Скрипты в Bash
- Работа с удалёнными серверами и логами
15. Backend
- Этапы разработки IT-продукта
- Клиент-серверная архитектура
- Отличие монолитных приложений и микросервисов
- Выбор вида архитектуры приложения
- Задачи backend-разработчика в IT-продукте
- Декомпозиция задач backend-разработки
16. Работа с базами данных
- Работа с базами данных в Python
- Зачем бизнес использует базы данных
- Проектирование, установка и настройка базы данных
- Подключение к базе данных с помощью Dbeaver
- Типы данных в PostgreSQL
- Выбор данных из таблицы
- Шаблон для поиска значений в таблице
- Установка фильтра с помощью условных операторов
- Функции для обработки данных
- Транзакции и работа с ними
- Анализ ER-диаграммы
- Выбор и соединение данных из разных таблиц
- Группировка строк и вычисления над ними
- Анализ данных о бизнесе с помощью SQL
- Транспонирование таблицы с помощью группировки
- Создание подзапросов в SQL
- Оконные функции в SQL
- Описание структуры базы данных с помощью операторов DDL
- Экспорт данных и SQL-запросы
- Работа с базами данных в Python
17. Потоки, процессы и асинхронность
- Многозадачность и многопоточность
- Процессы в Python
- Особенности языков с GIL
- Асинхронность в Python
- Как работать с асинхронностью в Python
18. Работа с фреймворком Django
- Преимущества Django
- Установка Django и создание первого проекта
- Views, templates и models в Django
- Model Manager в Django
- Авторизация и формы
19. Работа с фреймворком FastAPI
- Модели данных и формы в FastAPI
- Установка FastApi и создание первого приложения
- Какие возможности для разработки дает фреймворк FastAPI
- Эндпойнты и CRUD-операции в FastAPI
- Шаблоны и настройка frontend для приложения на FastAPI
- Административная панель сайта с помощью FastAPI
- Аутентификация и авторизация в FastAPI
20. API и RestAPI
- Устройство API и REST API
- Архитектура REST API
21. Системы контейнеризации
- Виртуализация
- Контейнеризация
- Упаковка приложения в контейнер
- Ускоренная сборка контейнера и оптимизация Dockerfile
22. Подготовка к запуску
- Процесс тестирования backend-кода
- Unit-тесты
- Интеграционные тесты
- Рефакторинг
- Работа над качеством кода
- Введение в DevOps
- Развёртывание программного обеспечения
- Развёртывание приложения в облачных системах
- Развёртывание приложения при помощи виртуализации
- Принципы и практики CI/CD
- Настройка пайплайнов
- Настройка пайплайнов в GitLab CI
24. Как построить карьеру разработчика
- Первый опыт работы junior-разработчика и поиск работы в IT
- Подготовка резюме и портфолио
- Описание своего опыта по модели STAR
- Использование LinkedIn для построения карьеры
- Подготовка к собеседованию на должность в IT
- Подготовка к тестовому заданию и техническому собеседованию
- Карьерный путь Python-разработчика
- Путь от junior до CTO
- Коммуникация на IT-темы на английском языке
25. Жизненный цикл ПО
- Введение в Agile
- Принципы командной работы по Agile
- Введение в SCRUM
- Модели SDLC и Waterfall
- Таск-менеджеры: Trello и Asana, Jira
26. Удалённая работа
- 10 мифов об удалённой работе
- Организация своего дня на удалённой работе
- Построение отношений с коллегами в распределённой команде
- Организация совместной работы над проектом в разных часовых поясах
- Написание текста для рабочего письма
- Трудности удалённой работы
- Особенности удалённой работы для экстравертов
- Как избежать выгорания, работая удалённо
27. Дипломный проект