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запроса - Роутинг запросов по регулярным выражениям
- Параллельная обработка запросов
Разработка Web-приложений на Flask
- Основы
Flask - Вывод данных в шаблон и возврат
HTMLстраниц пользователю - [Практика] Написание простого сайта с несколькими статическими страницами
- Авторизация пользователя используя сессии
- Взаимодействие с базой данных через написание
SQLзапросов - Получение
POSTзапросов от пользователей и создание записей вDB - [Практика] Написание блога с "админкой"
Разработка Web-приложений на Django
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который будет просто подставлен в правую частьПревью:
- В левой части должно находиться поле для ввода текста, в ней мы будем писать