Что делает Web-разработчик?


В двух словах – создает веб-приложения. А веб-приложение – это не только то, как выглядит сайт, но и огромное количество невидимой глазу пользователя работы, без которой не сможет функционировать ни один современный сервис, начиная от сайта-одностраничника и заканчивая банковскими приложениями, соцсетями и приложениями по вызову такси. Это и проектирование хранилища данных, и грамотная оптимизация их сбора и использования, и описание логики того, что должен увидеть пользователь на том или ином экране сайта или приложения, а также продумывание модели данных, передаваемых с клиентского устройства на сервер и обратно. Сейчас практически невозможно себе представить любую сферу жизни без нетривиального веб-сервиса.

Твои навыки после обучения

Python, Django, HTML, CSS, JavaScript, Git, SQL, основы DevOps и др.

 

Содержание программы


1Python
- Использование Jupyter Notebook
- Синтаксис Python 1
- Синтаксис Python 2
- Типы данных
- Cтроки 1
- Cтроки 2
- Коллекции
- Списки, кортежи, словари
- Срезы
- Генераторы
- Даты и время
- Функции
- Аргументы функций
- Распаковка и анонимные функции
- Импорт библиотек
- Pip
- Виртуальное окружение
- Регулярки - 1
- Регулярки - 2
- Файлы
- JSON
- Yaml
- os, sys
- Pickle
- Классы
- Конструктор и атрибуты объекта
- Атрибуты класса
- Property
- Наследование
- Области видимости атрибутов
- Магические методы
- Магические поля вызываемых объектов
- Магические поля классов
- Магические методы классов
- Магические методы работы с атрибутами
- Работа с исключениями
- Собственные виды исключений
- Введение в декораторы
- Декораторы
- Проброс аргументов в обертку
- Фабрика декораторов
- Альтернативное применение - декораторов
- Сеть
- Исключения библиотеки requests
- Сборщик мусора
- Аннотации типов
- Логирование
- Датаклассы
- Введение в асинхронное программирование
- Обзор способов задания многопоточности. Библиотека asyncio
- Блокировка ресурсов
- Multiprocessing
- Asyncio API
- Корутины
- Применение оператора async
2СУБД
- Команды. Часть 1
- Команды. Часть 2
- Команды. Часть 3
- Введение в СУБД
- ПО для работы с СУБД
- Базовая структура запроса SQL
- Фильтрация выборки
- Группировка результатов и фильтрация по группам
- Подзапросы
- Джоины
- Оконные функции
- Транзакционность
- Создание и изменение таблиц
- Индексы
- Профилирование запросов
- Оптимизация запросов
- Удаление данных и таблиц
- ORM и sqlalchemy
- Создание таблиц и добавление данных через sqlalchemy
- Выборка данных через sqlalchemy
- Остальные операторы в sqlalchemy
- Модели данных sqlalchemy ORM
- Выборка данных через sqlalchemy ORM
3Веб-разработка
- Введение в алгоритмы и структуры данных
- Обзор популярных алгоритмов
- Оценка сложности алгоритмов
- Введение в системы контроля версий
- Хранение версий файлов в git
- Команды git
- Коммиты и ветки
- Слияние веток
- Инициализация репозитория в Gitlab
- Начало работы с репозиторием
- Реальная работа с ветками
- Решение конфликтов
- Краткая история развития всемирной паутины
- Введение в веб-разработку
- Знакомство с Django
- Установка Django
- Создание компонентов
- Мастер-класс по созданию компонентов
- Диспетчер URL
- VIEW функции и классы. Асинхронность
- Шаблоны
- Мастер-класс по использованию шаблонов и настройке роутинга
- Модели данных
- Фреймворки, библиотеки и чистый код
- Мастер-класс по добавлению моделей в структуру проекта
- Популярные HTML-теги
- Разработка сайта с использованием фреймворков
- Публикация Django проекта
- Мастер-класс - доработка проекта
- Введение в тестирование приложений
- Принципы тестирования
- Модуль Unittest
- Модуль Pytest
- Антипаттерны тестирования
- Django Tests
- Pytest-django
- Установка Selenium
- Возможности Selenium
4Фронтенд
- Базовая структура веб-сайта
- Каскадность, специфичность и наследование
- Относительные единицы измерения. Единицы em и rem
- Относительные единицы измерения: vh и vw, calc()
- Настройка ширины элемента страницы
- Настройка высоты элемента страницы
- Поля элементов
- Расстояние между элементами в контейнере
- Плавающие элементы
- CSS сетки
- Flexbox-верстка
- Размеры flex-элементов
- Направление flex-элементов
- Выравнивание и промежутки
- Фиксированное позиционирование
- Абсолютное позиционирование
- Относительное позиционирование
- Контексты наложения
- Липкое позиционирование
- Подход Mobile First
- Медиазапросы
- Резиновые макеты
- Адаптивные изображения
- DOM, Введение в JS
- Использование сторонних скриптов в своем проекте
- Препроцессоры CSS и другие утилиты для облегчения фронтенд-разработки
5Разработка и деплой приложений
- REST API, взаимодействие сервера и клиента
- Swagger
- WSGI, Gunicorn
- nginx, оптимизация нагрузки сервера
- Введение в контейнеризацию и Docker
- Запуск контейнера
- Создание собственного образа
- Docker-compose
- Введение в CI/CD
- Настройка Gitlab CI
- Подключение линтеров и тестов
- Деплой на внешние сервисы
6Безопасная разработка веб-приложений
- Нормативно-правовые акты в области информационной безопасности
- Основы ИБ веб-приложений
- Принципы безопасной разработки программного обеспечения
- OWASP Top 10
- Тестирование API (+ OWASP Top API 10)
- Безопасное хранение и передача данных
- Контроль доступа и управления привилегиями
- Безопасность облачных сервисов
7Итоговая аттестация

Подпишись на наш телеграм канал, чтобы не пропустить важные новости!

Команда программы

Остались вопросы? Пиши нам


Мы отвечаем в телеграме обычно в течение рабочего дня.

t.me/dc_bmstu_bot

По вопросам сотрудничества:

dc@bmstu.ru

Будь в курсе!
Подпишись на канал


В телеграм-канале мы публикуем новости Цифровой кафедры. Подпишись, чтобы быть в курсе событий

t.me/dc_bmstu