Форма обучения: очная с применением дистанционных технологий
Объем программы: 525 ак.ч.
Продолжительность обучения: 10 месяцев
Выдаваемый документ: Диплом о профессиональной переподготовке МФТИ
Старт обучения: сентябрь 2023
Стоимость обучения: 155 000 рублей
Краткое описание программы:Чтобы получить Профессию Backend-разработчик на Python, подтвержденную Дипломом о профессиональной переподготовке МФТИ установленного образца, необходимо пройти обучение на четырех самостоятельных курсах и двух интенсивах.
В течение обучения вы выполните несколько проектов для решения задач бизнеса, которые лягут в основу вашего портфолио. Проекты выполняются самостоятельно под руководством экспертов и преподавателей, позволяют закрепить весь спектр знаний и навыков, полученных на программе, и применить их к реальным задачам.
Успешное окончание каждого курса подтверждается Удостоверением о повышении квалификации МФТИ.
Содержание программы: 1. Курс: «Базы данных и SQL»
1,5 месяца - Понятия и синтаксис SQL запросов
- Разработка архитектуры базы данных
- Агрегация данных из разных источников
- Очистка и санитизация данных
- Паттерны хранения данных
- Инкрементальная загрузка и оптимизация запросов
2. Интенсив: «Linux / Git для начинающих»2 неделиБазовый WSL и VirtualBox - Чем отличается Windows и Linux
- Установка WSL. Запуск
- VirtualBox установка и использование
Основы Linux - Введение. Какие задачи он решает. Дистрибутив Ubuntu
- Консоль. Основа работы с Linux. tmux
- Скрипты. Продвинутая работа с консолью
- Файловая система
- Работа с сетью
- Серверное взаимодействие. SSH
WSL подробно - Краткий экскурс в историю появления. WSL1 и WSL 2
- Основные команды работы с WSL
- Файловая система
- Сеть WSL
- WSL USB
- CUDA и Windows Докер
Git - Введение. Цели. Разновидности систем контроля версий
- Базовые основы GIT. Популярные сценарии работы
- Серверные репозитории Git. Ветки. Merge request
- Сценарии отката изменений. Stash
3. Курс: «Разработка на Python»
5 месяцев
Базовый Python - Введение в Python. Работа в Jupyter Notebook и Google Colab. Базовые типы данных
- Условия и циклы. Итераторы и генераторы. Контейнеры
- Функции. Области видимости. Замыкания. Декораторы
- Основы ООП. Работа с классами в Python
- Работа с файлами
- Модули, пакеты в Python. Встроенные модули. Работа со сторонними библиотеками
Прикладной Python
- Введение в NumPy. SciPy
- Введение в Pandas
- Введение в визуализацию данныхРабота с текстом в Python. Регулярные выражения Веб-скрапинг и парсинг Ускорение программ в Python. Cython. Numba Тестирование в Python Асинхронное программирование в Python
- Работа с текстом в Python. Регулярные выражения
- Веб-скрапинг и парсинг
- Ускорение программ в Python. Cython. Numba
- Тестирование в Python
- Асинхронное программирование в Python
Создание веб-приложений на Python
- Введение в сети, HTTP, HTML
- Введение в Flask
- Введение в Django. Общая структура, отличие от Flask. Обработка запросов.
- Шаблоны и теги
- Знакомство с базами данных. Знакомство с Django ORM
- API, REST
- Тестирование Django-приложений
Продвинутая веб-разработка
- Асинхронная веб-разработка. Aiohttp
- Работа со статичными файлами
- Кеширование
- Event-based программирование. Django Signal
4. Курс: «Введение в алгоритмы и структуры данных»2 месяца - Математические основы программирования
- Линейные контейнеры
- Сортировки
- Динамическое программирование
- Хеш-таблицы
- Деревья поиска и графы
5. Интенсив: «Docker + CI/CD для начинающих»2 неделиОсновы Docker - Виртуализация и контейнеризация. Docker engine
- Docker image и Docker container
- Файловые системы в Docker. UnionFS и OverlayFS
- Работа с данными: добавление файлов, монтирование внешних директорий. Обмен данными с уже развернутым контейнером
- Рекомендации по работе с Docker. Как писать DockerFile, .dockrtignore. Базовая безопасность в docker
- Репозитории docker-контейнеров и работа с ними.
- Docker compose
CI/CD - Обзор актуальных инструментов CI/CD (GitLab CI, Jenkins, TravisCI, GitHub Actions)
- Настройка pipelines, jobs, stages. Написание конфигураций CI
- Создания собственного runner'a. Executors: shell, docker
6. Курс: Continuous Integration, Continuous Delivery и Continuous Deployment
1 месяц
Понятие непрерывных практик разработки - CI/CD/CD: различия между практиками
- Основные стадии непрерывной интеграции проектов
- Автоматическое тестирование и сборка проектов
- Понятие "агент" (runner) в непрерывных системах поставки
Инструменты Continuous Integration. Gitlab - Автоматическое тестирование
Статический анализатор кода
Continuous Delivery и Continuous Deployment: основные отличия - Сборка проектов в закрытом контуре
- Сборка установочных файлов для поставки на серверное окружение
- Возможные артефакты сборки проекта
Cпособы создания артефактов - Тестовые сценарии
- Покрытие кода тестами
- Сборка пакетов (Package Registry)
- Сборка контейнеров (Container Registry)
Continuous Deployment - Способы развертываний
- Типы окружений для развертывания - отличия между окружениями
- Настройка развертываний, приемочное тестирование
Создание окружений - Review/staging/production
- Откатка релизов и перемещение релизов между окружениями
- Проведение видов приемочного тестирования в автоматическом режиме (проверка процедур установки ПО)
GitOps - Способы выкатки приложений
- Push CD / Pull CD
- Способы версионирования приложений: Helm
Разбираем инструменты CD в стеке Kubernetes - ArgoCD/FluxCD
- Настраиваем GitOps Pipeline
Итоговый проект
Комплексное веб-приложение
Целевая аудитория курса: - Те, кто начинает карьеру в ИТ
Возможность изучить все необходимое для начинающего разработчика: алгоритмы, ООП, основы рабочего кода языка Python. Вы заложите крепкий фундамент для дальнейшего развития в сфере ИТ. - Начинающие ИТ-специалисты
Если у вас уже есть базовые знания, наш курс поможет структурировать их и получить комплексный практический опыт на реальных примерах. - Практикующие ИТ-специалисты
Тем, кто уже является действующим разработчиком, и хочет изучить новый язык программирования.
На программе вы: - Освоите новую востребованную профессию
- Станете крепким junior-разработчиком со знанием языка программирования Python
На всех курсах вы получите: - Постоянное живое общение с преподавателем МФТИ на вебинарах и в телеграмм-чате группы
- Ответы на все свои вопросы по ходу курса от преподавателя
- Обратную связь на интересные домашние задания