[Stepik] Основы компьютерных и веб-технологий с Python от Диджитализируй (Алексей Голобурдин)
О курсе
Чтобы быть эффективным веб-разработчиком, мало знать только синтаксис выбранного языка программирования, например, Python. Для уверенной разработки веб-систем нужно иметь понимание по всем технологическим блокам, работающим на разных слоях приложения.
Этих слоёв немало — это сам Интернет с его архитектурой и протоколами, это и серверные операционные системы Linux, и бэкенд стек технологий, включающий в себя выбранный язык программирования, фреймворки, базы данных, системы планирования выполнения и прочее, это и целый спектр фронтенд-технологий.
Вне зависимости от того, работаешь ты бэкенд или фронтенд разработчиком, только фундаментальное понимание всех слоёв системы позволяет тебе быть эффективным, уверенным в своих силах специалистом, способным к красивому решению задач веб-разработки.
Цель этого курса — дать тебе это понимание.
Для кого этот курс
Этот курс создан специально для тебя, если:
- ты готов к серьёзной проработке веб-технологий
- ты ещё не начал погружаться в тему веб-разработки и хочешь начать это делать правильно — от фундамента к первому этажу и выше
- ты уже начал изучать язык программирования, но как полноценно создавать веб-системы и как они работают, у тебя понимания нет
- ты уже разрабатываешь веб-системы, но хочешь стать более эффективным мощным бойцом, понимающим, как всё работает на всех уровнях приложения
- О курсе
- Как работать на курсе
- Просто о компьютерном железе, битах и байтах
- Об операционных системах, GUI и терминале
- Устанавливаем Debian Linux в WSL
- Hex-редакторы, файлы и кодировки
- Программы и языки программирования
- Компилируемые и интерпретируемые языки программирования
- Алгоритмы
- Основы Linux и bash
- grep
- Почему это важно понимать
- Компьютерные сети и оборудование
- Локальные и глобальные сети
- Сетевые протоколы
- IP протокол, NAT
- Клиент-сервер
- Прокси-сервера и VPN
- DHCP
- DNS
- Доменные зоны
- Система DNS серверов
- DNS-записи
- Как посмотреть DNS записи любого домена
- Файл hosts и доменное имя localhost
- HTTP
- Изучаем HTTP с Telnet
- HTTP в Chrome Developer Tools
- HTTP2 и HTTP3
- URI и URL
- Как данные передаются на сервер
- HTTPS
- Аутентификация и авторизация
- Хеш-функции
- Хранение паролей, механизм аутентификации
- Cookies — кто и как устанавливает и использует
- Работа Cookies, безопасность
- Цифровая подпись Cookies
- Фронтенд и бэкенд. Компонены фронта и бэка
- HTML, CSS
- Запуск локального HTTP сервера
- Делаем сайт, доступный внутри квартиры без Интернет
- HTML формы
- Chrome developer tools
- Браузерный JavaScript
- Хакаем игру Dino в Google Chrome
- Установка Python и настройка VS Code
- Снова о блокноте
- О практике
- Переменные
- Про вывод данных в консоль
- Типы данных, строки
- Массивы, циклы
- Кортежи
- Работа с аргументами командной строки, if-else
- Множества
- Словари
- Функции
- Области видимости переменных
- Рекурсия
- Нейминг, type hinting, комментарии
- Объекты
- Исключения
- Пакеты, модули
- Синтаксический сахар
- Работа с датами и временем, таймзоны
- Удобные няшки стандартной библиотеки
- Virtualenv, pip и сторонние библиотеки
- Баги и работа с ними
- Критерии хорошей программы
- Веб-сервер и сервер приложений
- CDN
- Базы данных
- Какую базу данных выбрать, SQL
- Планировщики и очереди заданий
- Контейнеризация и Docker
- Постановка задачи
- Установка Windows Terminal
- Пишем HTTP сервер на голом Python
- О фреймворках
- Hello World на FastAPI
- Создаём HTML шаблон
- Создаём и стилизуем форму логина
- Отправка и проверка логина и пароля
- Сохраняем пользователя в Cookies
- Читаем Cookie запись на бэкенде
- Цифровая подпись Cookies
- Хеширование паролей
- JavaScript и AJAX
- SPA и JS фреймворки
- Варианты передачи данных в запросе
- Веб-сокеты
- Git
- Покупка и настройка домена
- Настройка сервера
- Покупка и настройка SSL сертификата
- Итоги и выводы по курсу, направления дальнейшего развития