Вводный курс 20 часов
Основы Python: бесплатный вводный курс
Во вводном курсе вы почувствуете себя в роли бэкенд-разработчика на Python. Это поможет вам понять, хотите ли вы развиваться в этом направлении. Вы узнаете, что такое бэкенд и какие задачи он решает, исследуете серверную часть приложения и поймёте, как она взаимодействует с пользователями и другими серверами. И самое главное — самостоятельно напишете код на языке Python, который будет делать то, что вы задумали.
- Переменные и типы
- Циклы и ветвления
- Функции
- Сетевые запросы
- Словари и множества
- Строки и форматирование
- Библиотеки
- Протокол HTTP
Углублённый Python
- Числовые типы
- Множества
- Создание функцийУсловные операторы
- Словари
- Настройка окружения
- Последовательности
- Типы данных
- Типы данных
Бэкенд на Django
На курсе вы будете работать с веб-фреймворком Django, программным «конструктором» для создания веб-проектов. Вы научитесь:
– обрабатывать HTTP-запросы,
– подключать к приложению базу данных,
– создавать веб-страницы,
– писать автоматические тесты для своих программ.
В каждом уроке есть практические задания, часть из которых вы будете выполнять не в тренажёре, а на своём компьютере. Для этого вы развернёте среду разработки. Кроме того, вы подключите к одному из проектов систему контроля версий Git и поработаете в командной строке. Главный результат прохождения курса — два полноценных проекта для вашего портфолио.
- Введение в базы данных
- Расширенные возможности SQL
- Самое необходимое об ООП
- Знакомство с командной строкой
- Настройка окружения
- Django: создаём проект
- Вёрстка для бэкендера
- Шаблоны и теги Django
- Django ORM
- Управление пользователями
- Декораторы
- Тестирование: библиотека Unittest
Проект 1
Модуль для фитнес-трекера. Он будет определять вид тренировки, рассчитывать результат и выводить о нём информационное сообщение. Вы напишете модуль и протестируете его работу.
Проект 2
Социальная сеть Yatube с авторизацией, персональными лентами, комментариями и подпиской на авторов. Вы напишете код, протестируете его и опубликуете проект в GitHub.
2 модуль 8 недель
API: интерфейс взаимодействия программ
Вы разберётесь, как сервисы в интернете получают друг от друга информацию: как на веб-проектах организуется авторизация через социальные сети, каким образом сайты кинотеатров и кафе указывают свои локации на картах Яндекса и Google. Узнаете что такое API и напишете три проекта, которые сможете положить в портфолио.
- JSON: формат передачи данных
- API First. Архитектура REST
- Механизмы авторизации, протокол OAuth 2.0
- Bot API в Telegram
- Django REST Framework
- Вьюсеты и роутеры
- Регулярные выражения
- Документирование API
- Throttling: ограничение количества запросов
- Документирование API
- Что такое API. Форматы обмена данными
Проект 3
Вы напишете телеграм-бота, который будет отслеживать статус проверки ваших финальных заданий. Добавите к проекту логирование, чтобы всегда вовремя реагировать на ошибки.
Проект 4
Вы продолжите работать с проектом Yatube и создадите для него программный интерфейс. Поработаете с регулярными выражениями и приведёте код в соответствие с документацией.
Проект 5
Yamdb — сервис-отзовик на книги, фильмы и музыку. Это будет ваш первый командный проект. Вы напишете бэкенд и API, и для этого используете все уже полученные за время обучения знания.
3 модуль 6 недель
Алгоритмы и структуры данных
Любую задачу можно решить медленно и неэффективно, а можно — быстро и экономно. Неэффективное программное решение может впустую занять все вычислительные ресурсы сервера и замедлить его работу. Изучение алгоритмов поможет избежать подобных ошибок и ускорить работу программ. Вы научитесь проектировать решения для разгрузки системы — это позволит вашим проектам работать эффективнее.
- Понятие алгоритма
- Линейный поиск
- Бинарный поиск
- Как решать алгоритмические задачи
- Оперативная память и представление данных
- Оперативная память и представление данных
- Структуры данных: стек, очередь, дек
- Рекурсивный и базовый случаи
- Рекурсивный перебор вариантов
- Алгоритмы сортировки
4 модуль 6 недель
Управление проектом на удалённом сервере
Работа с облачными сервисами, настройка серверов, тестирование и обновление кода — всё это рутинные операции, с которыми сталкивается любой программист. Вы самостоятельно настроите сервер в облаке, узнаете, как автоматизировать процессы тестирования и обновления кода, развернёте свой проект в docker-контейнерах на сервере.
- Инструменты для работы с командной строкой
- Создание удалённого сервера
- WSGI. Gunicorn
- Порты, nginx
- Шифрование и https
- PostgreSQL
- Контейнеризация. Docker
- Образ в облаке: Docker Hub
- Логи и мониторинг
- DevOps и Continuous Integration
- GitHub Actions: избавление от рутины
Проект 6
Упакуете проект Yamdb в контейнеры и отправите его в таком виде на проверку ревьюеру.
Проект 7
Настроите и запустите систему автоматизации тестирования и деплоя проекта Yamdb.
Финишная прямая 3 недели
Дипломный проект
Вы самостоятельно напишете веб приложение «Продуктовый помощник»: сайт, на котором пользователи будут публиковать собственные рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Сервис «Список покупок» позволит пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Карьерный трек 6 недель
Трудоустройство
Это курс для тех, кто решил найти работу в сфере разработки. Карьерный трек организован так же, как и предыдущие курсы: здесь есть теория и практика. Но вместо навыков программирования вы изучите стратегии поиска работы и узнаете о тонкостях выбора компании-работодателя, а вместо кода будете писать резюме и сопроводительные письма. Также вы подготовите портфолио и исследуете рынок трудоустройства.
- Поиск работы: с чего начать?
- Резюме и портфолио
- Сопроводительное письмо
- Подготовка к собеседованию
- Софт- и хардскилы
- Как не ошибиться при выборе компании
- Карьерный трек 8-24 недель
Акселерация: программа сопровождения
Вы ищете работу — мы консультируем и помогаем. Участвовать в программе могут те, кто прошёл курс «Трудоустройство» и активно ищет работу. Вы на практике примените полученные на курсе навыки, адаптируете их к собственной стратегии поиска работы и каждую неделю будете делиться своими результатами. Основной формат участия — индивидуальные консультации и публичные собеседования.