Python Basics Course
Программа курса
⚠️ Предупреждаю!
- Темы перечислены не в хронологическом порядке.
- Некоторые темы пропущенны или описаны не полностью.
- Какие-то задания еще только предстоит придумать.
Язык программирования Python
- Поговорить про языки программирования
- Синтаксис языка
- Операторы и основные инструкции
- Генераторы списков и словарей
- Функции в деталях
- Базовые типы в языке
- Функциональное программирование в
Python
- Функции высшего порядка
- [Практика] - ???
- Классы
- Создание классов
- Парадигма
ООП
- [Практика] Описание "фермы" с персонажами
- Модули и пакеты
- Итераторы и генераторы
- [Практика] Генератор случайных 'ФИО'
- Работа с исключениями
- Менеджеры контекста
- [Практика] Написание менеджера контекста предоставляющего доступ к файлу (самостоятельная реализация)
- Декораторы
- [Практика] Написание декоратора замеряющего время исполнения функций
- [Практика] Декоратор
memo/cache
Стандартная библиотека языка Python
- Модуль
os
- Модуль
os.path
- Модуль
io
- [Практика] Обход дерева папок и вывод их в консоль
- [Практика] Создание генератора файлов определенного размера
- Модуль
json
- [Практика] Запросы к
API
и агрегация информации изAPI
(Какое именноAPI
- не принципиально)
- [Практика] Запросы к
- Модуль
time
- Модуль
datetime
- Модуль
random
- Модуль
re
- [Практика] Парсинг
Open Graph
разметки сайта по урлу
- [Практика] Парсинг
Конкурентное программирование
- Модуль
threading
- Модуль
multiprocessing
HTTP
сервера
Разработка - Простой пример на сокетах
- Простой парсинг тела
HTTP
запроса - Роутинг запросов по регулярным выражениям
- Параллельная обработка запросов
Flask
Разработка Web-приложений на - Основы
Flask
- Вывод данных в шаблон и возврат
HTML
страниц пользователю - [Практика] Написание простого сайта с несколькими статическими страницами
- Авторизация пользователя используя сессии
- Взаимодействие с базой данных через написание
SQL
запросов - Получение
POST
запросов от пользователей и создание записей вDB
- [Практика] Написание блога с "админкой"
Django
Разработка Web-приложений на TODO: Перечислить темы
Дополнительные темы
- Основы работы с интерпретатором команд
Bash
-
Git
- Протокол
TCP
и протоколHTTP
- Паттерны
ООП
- Работа с базами данных и язык запросов
SQL
-
SOLID
принципы -
Type hints
и модульtyping
- Что такое
REST API
- Дебагинг
python
приложений
Практические задания не привязанные к какой-то теме
[Практика] Написание сервиса для сжатия ссылок
Сервис повторяющий логику: https://kutt.it/
[Практика] Написание бота, для сообщения в чат об обновлениях в
Knowledge Base
(Наш сайт)Бот должен будет сообщать в какой именно статье произошли изменения и только в том случае если статься добавлена в меню
[Практика] Консольная утилита сжимающая изображение до размера умещающегося в указанные рамки
CLI
утилита должна будет получить 3 параметра:- путь до файла
- максимальную ширину
- максимальную высоту
И по итогу своей работы положить рядом с оригиналом уменьшенную копию
[Практика] Написать markdown-renderer сервис.
Сайт должен состоять из одной страницы, разделенной на две части:
- В левой части должно находиться поле для ввода текста, в ней мы будем писать
Markdown
разметку - В правой части будет находиться превью разметки
При наборе текста в левой части осуществляется
POST
запрос на сервер в теле которого находитсяMarkdown
в ответ мы уже должны получатьHTML
который будет просто подставлен в правую частьПревью:
- В левой части должно находиться поле для ввода текста, в ней мы будем писать