Что нужно для курса
Базовые знания Python
Если Вы умеете программировать на Python на начальном уровне, то этот курс точно для Вас!
Базовые знания HTML, CSS, JS
Если Вы знаете, что такое HTML теги и как текст сделать красным - этого будет достаточно
Чему научитесь
Создавать веб-приложения на Django и работать с Linux
Освоите инструменты
-
Git
-
GitHub
-
Django
-
Linux
-
SQL
-
Nginx
-
API
-
Ubuntu
-
PostgreSQL
-
Sentry
-
PyCharm
Git
Git – система контроля версий. Это программа, которая ставится на компьютер и следит за тем, что поменялось в файле. Можно сравнивать изменения, откатываться назад или найти того, кто накосячил.
GitHub
GitHub – облако, в которое выкладываются исходные коды IT проектов. Используется для командной разработки, имеет множество дополнительного, навороченного функционала.
Django
Django – самый мощный и самый популярный веб-фреймворк на Python для создания веб приложений. Абсолютно бесплатный. Главный спонсор Django – компания JetBrains (разработчики PyCharm).
Linux
Linux – семейство операционных систем. Linux – это не операционная система, это ядро, на котором созданы различные ОС, например Ubuntu. Такие системы отлично подходят для использования на серверах.
SQL
SQL (Structured Query Language) – язык программирования, на котором пишутся запросы к реляционным базам данных.
Nginx
Nginx (инжин-икс) – один из лучших по производительности веб-серверов. Используется на Unix система. Необходим для работы сайта. Сейчас на nginx работает 31% всех сайтов мира.
API
API (Application Programming Interface - программный интерфейс приложения) – конструкции программирования, с помощью которых одно приложение общается с другим. Например, facebook может написать функцию, которая возвращает друзей пользователя. На Python эту функцию можно вызвать.
Ubuntu
Ubuntu – операционная система на базе ядра Linux. Система Ubuntu отлично подходит для использования на выделенном сервере в сочетании с Nginx и PostgreSQL для развертывания приложения на Python.
PostgreSQL
PostgreSQL – реляционная система управления базами данных (СУБД). Используется на крупных проектах. Как правило, ставится на Unix системы, такие как Ubuntu.
Sentry
Sentry – сервис для удаленного мониторинга ошибок веб-приложений. Если в приложении возникает ошибка, то Sentry покажет строчку кода, на которой она возникла, а также выдаст множество дополнительной информации.
PyCharm
PyCharm – интегрированная среда разработки (IDE) для проектов на Python. Эта IDE создана и заточена специально для Python. Имеет множество функционала, позволяющего облегчить разработку и сократить количество ошибок.
Будете уметь
- Работать с фреймворком Django
- Разрабатывать backend, frontend и связывать их
- Создавать API на Django
- Работать с реляционными базами данных
- Писать запросы на языке SQL
- Работать с Linux, создавать и настраивать VPS - виртуальный выделенный сервер
- Работать с базой данных PostgreSQL
- Подключать и конфигурировать веб-сервер Nginx
- Настраивать Supervisor на Linux
- Использовать системы расширенного анализа логов
Получите вечный доступ к курсу
Доступ к курсу остается навсегда. Вы сможете пользоваться материалами курса как шпаргалкой.
Программа курса
Django - основные понятия и создание среды разработки
- Фреймворк Django - основные понятия
- Установка и настройка PyCharm
- Работа с командной строкой
- Создание виртуального окружения
- Установка Django и создание первого проекта
- Настройки проекта settings.py
- Создание первого приложения, базы данных, первые миграции
- Модели в Django
- Практика: первая практика по Django
- Админпанель Django, создание суперпользователя
- Практика: модели и типы полей
Система контроля версий Git
- Что такое git
- Что такое репозиторий
- Командная разработка с git
- Установка git
- Подготовка к работе с git и настройка git config
- Создание локального репозитория
- Индексация изменений
- Commit - создание версий файлов
- Удаление файлов из локального репозитория
- Удаление файла из отслеживания
Сервис GitHub
- Регистрация в GitHub
- Подключение к GitHub - SSH ключи
- Подключение к удаленному репозиторию на GitHub
- Git Push - отправка изменений в удаленный репозиторий
- Перенос структуры проекта на GitHub и удаление файлов
- Ветки
- Pull request
- Git Pull и клонирование репозиториев
- Git merge - объединение изменений
- Настройка исключений - .gitignore
- Удаление репозиториев
- Создание GitHub-репозитория для проекта Django
- Сервис Heroku - публикация сайта в интернете
Разработка архитектуры базы данных
- Реляционные базы данных
- Типы и свойства полей базы данных
- Разработка архитектуры базы данных - отношения между моделями в Django
- Практика: отношения между моделями
- Фикстуры
- Введение в Django ORM
- Практика: Django ORM
- Выполнение запросов к базе данных
- Практика: Django ORM - фильтры и сортировка
- Запросы к связанным моделям - RelatedManager
- Практика: Django ORM - RelatedManager
- Создание и редактирование записей в базе данных
- Создание правильной структуры проекта Django (и поле slug)
- Практика: отладка в PyCharm и метаданные моделей
- Расширенные настройки административной панели Django
Создание страниц сайта
- Создание представлений - view
- Создание URL адресов - контроллеры
- Практика: представления и контроллеры
- Шаблоны Django для создания HTML страниц
- Создание страницы списка объектов
- Практика: рендеринг шаблонов
- Язык шаблонов Django
- Шаблонные фильтры
- Практика: язык шаблонов Django
- Создание собственных фильтров
- Создание детальных страниц сайта
- Наследование шаблонов и настройки шаблонизатора
- Обработка статических файлов (static)
- Обработка медиа файлов (media)
- Создание дизайна сайта
- Практика: API на Django
Добавление и редактирование контента
- DetailView - базовый класс страницы объекта
- ListView - базовый класс для списка объектов
- Формы в Django и защита сайта от атак
- HTML оформление полей и ручная отрисовка формы
- Валидация форм
- HTML оформление ошибок формы
- CreateView - базовый класс создания объектов и модельные формы
- Базовые классы редактирования и удаления объектов
- Формсеты
- Миксины
- Инициализация значений в форме
Авторизация и аутентификация пользователей
- Пользовательские сессии и cookie
- Создание системы аутентификации
- Сигналы в Django
- Создание главной страницы сайта
- Создание личного кабинета пользователя
- Реализация сброса и восстановления пароля
- Подключение почты - отправка писем на email
- Подключение регистрации через социальные сети
Язык запросов SQL
- Введение в SQL
- Выбор данных - SELECT
- Практика: основы SQL
- Практика: условия и сортировка
- Практика: агрегатные функции
- Соединения (JOIN)
- Практика: соединения
- Группировки GROUP BY
- Практика: группировки
- Вложенные запросы
Оптимизация и ускорение сайта
- Django Debug Toolbar
- Оптимизация запросов - select_related
- Практика: select_related
- Аннотации, агрегации, группировки и Q-фильтры
- Практика: annotate
- Метод prefetch_related и объект Prefetch
- Практика: prefetch_related
- Вычисляемые поля и условия (Case, When, F)
- Отзывы и аренда машин
- Добавление фильтров
- Доработка главной страницы
- Принципы организации Django проекта
Кэширование и многопоточность
- Кэширование и мемоизация
- Кэширование в Django
- Redis - сервер для кэширования
- Теория асинхронности
- Threading - многопоточность
- CPU/IO-bound задачи
- Мультипроцессорность
Логирование проекта
- Логирование
- Логирование в Python
- Конфигурирование логгеров
- Использование нескольких обработчиков
- Логирование в Django
- Подключение sentry.io
Основы Linux и деплой на облачном VPS
- Dev, preprod и prod версии проекта
- Создание VPS
- Подключение к VM через SSH
- Основы Linux
- Трехзвенная архитектура
- Deploy Django-проекта на VPS. Часть 1
- Deploy Django-проекта на VPS. Часть 2
Дипломный проект
- Сервис бронирования отелей psBooking

Как проходит обучение?
На протяжении всего обучения Вас консультирует опытный преподаватель
Уроки и практика
В удобное для Вас время Вы проходите уроки на нашей собственной платформе, решаете тесты и практические задачи
Консультации с преподавателем
Общаетесь с преподавателем в slack, получаете подробные консультации, можете скидывать код на ревью
Домашние задания
Выполняете домашние задания - их лично проверяет Ваш преподаватель и дает обратную связь с разбором ошибок
Дипломный проект
В конце курса выполняете дипломный проект, который сможете добавить в Ваше резюме
Дипломные проекты курса
Преподаватель курса
Запишитесь на курс
со скидкой 40%
Скидка действительна
до
18 000 ₽
30 000 ₽ без скидки
Скидка действительна
до
18 000 ₽
30 000 ₽ без скидки
Если у Вас есть вопросы, звоните +7 (499) 899-16-74
Ответы на вопросы
Можно ли общаться с преподавателем?
Конечно! Вы сможете общаться напрямую с преподавателем через личные сообщения в мессенджере slack. Вопросы можно задавать в любое время и сколько угодно. Это как whatsApp или telegram только удобнее.
Цена указана за месяц?
Нет. Указана полная стоимость за весь курс.
Где кодить?
В курсе мы кодим в PyCharm. Если вы привыкли к другому редактору - не проблема, можете кодить в любом удобном для вас редакторе.
Какой компьютер нужен?
Для комфортного обучения будет достаточно любого ноута или стационарного компьютера с доступом в интернет. Диагонали 13 дюймов вполне хватит. Python не требует много ресурсов - 2Gb оперативки подойдет.
Что если не буду успевать?
Ничего страшного – мы не ставим жестких ограничений по времени. Если у Вас завал на работе или учебе, ушли в отпуск или просто захотели сделать перерыв, то сможете потом вернуться к обучению. Доступ к материалам курса у Вас остается навсегда. Скинуть домашку на проверку тоже сможете позже – она будет проверена.
Сколько времени тратить на обучение?
В среднем наши студенты тратят 3-5 часов в неделю. Если сможете уделять 1.5-2 часа в день и заниматься 3-4 раза в неделю, то вообще хорошо. Мы подстраиваем обучение под Ваше свободное время.
Я ничего не знаю. Можно ли начинать учиться?
Если никогда раньше не программировали, то будет сложновато. Курс рассчитан на тех, кто уже имеет начальные знания Python и HTML.