- Курсы лекций
- Книги онлайн
- По темам (+ краткий конспект)
- Внутренности питона
- Типы данных. Коллекции
- Циклы, условия, операторы
- Итераторы и генераторы. Сопрограммы
- Функции. Замыкания. Декораторы. ФП
- ООП. Магические методы. Протокол дескрипторов. Метаклассы. Статические методы и методы класса
- Возможности стандартной библиотеки
- Дебаггинг
- Обработка исключений. Контекстные менеджеры
- Пакеты и модули. Pypi. pip и easy_install. virtualenv
- Многопоточность. GIL. Многопроцессные приложения
- Асинхронное программирование. Event loop. Теория
- Асинхронные фреймворки и библиотеки
- Работа с памятью
- Вопросы производительности
- Профайлинг
- Логирование и трейсинг
- Модули на C и ctypes
- Тестирование
- Утилиты для улучшения качества кода
- Воспросы безопасности
- WCGI
- Работа с СУБД. Драйверы. Популярные ORM
- Работа с данными
- Работа с файлами
- Сетевое программирование
- GUI
- Мониторинг приложений средствами ОС
- Нагрузочное тестирование python-приложений
- Полезное
Курсы лекций ^
Хорошие курсы для начала
- Специализация Программирование на Python от МФТИ и Mail.Ru Group (все курсы хорошие) https://www.coursera.org/specializations/programming-in-python
- Академия Яндекса, Школа бэкенд-разработки 2019 на питоне https://www.youtube.com/playlist?list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s
- Computer Science Center, Программирование на Python, 2021, Преподаватель курса: Иван Бибилов https://www.youtube.com/playlist?list=PLlb7e2G7aSpQmGnhrxlqI4iMXNv4R7khy
- Computer Science Center, Программирование на Python, осень 2018, Преподаватель курса: Алексей Александрович Кладов https://www.youtube.com/playlist?list=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku
- Computer Science Center, Python, 2016, Преподаватель курса: Сергей Лебедев https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
- Технострим Mail.Ru Group, Прикладной Python (осень 2018) https://www.youtube.com/playlist?list=PLrCZzMib1e9qM62lMXC90SiFy7-1-kAPJ
- Python tricks (Intermediate and Advanced Features) от Дена Бадера https://www.youtube.com/playlist?list=PLP8GkvaIxJP0VAXF3USi9U4JnpxUvQXHx
- Intermediate Python Programming Course (freeCodeCamp.org) https://www.youtube.com/watch?v=HGOBQPFzWKo
- Курс "Python для сетевых инженеров" Н. Самойленко https://www.youtube.com/playlist?list=PLah0HUih_ZRnJFNdZsWr2pNWgYETauGXo
- Небольшие видео по основным темам от Михаила Корнеева https://www.youtube.com/channel/UC2-j4-hV33hboyK1FtukJ9w/videos
- Школа бэкенд-разработки 2021 от Яндекса по python https://www.youtube.com/playlist?list=PLQC2_0cDcSKCMKnywAS8eI_EgCcE3yx0r
Книги онлайн ^
- Книга Intermediate Python (Obi Ike-Nwosu) онлайн https://leanpub.com/intermediatepython/read
- The Hitchhiker’s Guide to Python https://docs.python-guide.org/
По темам (+ краткий конспект) ^
Внутренности питона ^
Разбор кода на токены -> построение AST -> оптимизации -> генерация байткода -> выполнение байткода в виртуальной машине. Стандартный интерпретатор - cpython (написан на языке C https://github.com/python/cpython). Альтернативные - pypy (написан на питоне, с JIT), ironpython (C#) и jython(java) - под специфические задачи, не без проблем и особым спросом не пользуются. Для решения проблем и получения ответов на свои вопросы полезно 1) уметь разбирать байткод 2) знать структуру cpython и уметь читать сишный код
- Что внутри у Питона: как работает интерпретатор https://www.youtube.com/watch?v=at30AmjPsy4
- Внутреннее устройство интерпретатора CPython https://www.youtube.com/watch?v=O9LeNPiftgk
- Внутри виртуальной машины Python. https://habr.com/ru/post/501338/ (ч1), https://habr.com/ru/post/501920/ (ч2)
- Your Guide to the CPython Source Code (Real python) https://realpython.com/cpython-source-code-guide/
- Внутреннее устройство интерпретатора CPython (урок от Otus) https://www.youtube.com/watch?v=O9LeNPiftgk
- Устройство CPython. Лекция из Академии Яндекса https://www.youtube.com/watch?v=PxIqLgjtQ5Y&list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s
- Understanding Python Bytecode. Learn about disassembling Python bytecode (Reza Bagheri) https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d
- Жизненный цикл кода на Python – модель выполнения CPython (Otus) https://habr.com/ru/company/otus/blog/442252/
- Официальная документация по модулю
dis
и список байткод-инструкций https://docs.python.org/3/library/dis.html#python-bytecode-instructions - HOW to use AST (Kamnee Maran) https://medium.com/@kamneemaran45/python-ast-5789a1b60300
- Online python ast explorer https://python-ast-explorer.com/
- Знай и люби свой CPython во имя луны и великой справедливости, Александр Кошкин https://www.youtube.com/watch?v=0_5_zEOo8kg
- Интересный разбор написания интерпретатора http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html
- Книга Inside The Python Virtual Machine (Obi Ike-Nwosu) онлайн https://leanpub.com/insidethepythonvirtualmachine/read
- Cpython Internals - разбор внутренностей cpython со схемами https://github.com/zpoint/CPython-Internals
- Статьи автора LinearLeopard: Реализация строкового типа в CPython (https://habr.com/ru/post/480324/), Немного внутренностей словарей в CPython (https://habr.com/ru/post/432996/), Реализация целого типа в CPython (https://habr.com/ru/post/455114/)
- Python Developer’s Guide (ресурс про разработку интерпретатора) https://devguide.python.org/
- Stepping Through CPython (Larry Hastings) https://www.youtube.com/watch?v=XGF3Qu4dUqk
- Bytecodes and stacks: A look at CPython’s compiler and its execution model (Petr Viktorin) (PyCon CZ 2018) https://www.youtube.com/watch?v=rOU-W_J-zFE
- A Deep Dive into Python Stack Frames (Nikhil Marathe) (PyCotham 2018) https://www.youtube.com/watch?v=smiL_aV1SOc
- Dominik ‘disconnect3d’ Czarnota - Python internals - how does CPython work? https://www.youtube.com/watch?v=4QJOEeldFUc
- CPython internals and the VM https://www.youtube.com/watch?v=cUyMnGeZ_3c
Типы данных. Коллекции ^
Все в питоне является объектом. Чтобы узнать тип объекта
x
, нужно вызватьtype(x)
, список методов и свойств -dir(x)
, справку по методу -help(x.some_method)
. Основные коллекции - list, tuple, dict, set, а также несколько интересных коллекций есть в модулеcollections
- Лекция про коллекции и модуль
collections
от CSC https://www.youtube.com/watch?v=kmdA7zJS9gw, лекция про строки, байты https://www.youtube.com/watch?v=VY95vgOROo8 - Basic Data Types in Python (real python) https://realpython.com/python-data-types/
- Dictionaries in Python (real python) https://realpython.com/python-dicts/
- Sets in Python (real python) https://realpython.com/python-sets/
- Lists and Tuples in Python (real python) https://realpython.com/python-lists-tuples/
- Linked Lists in Python: An Introduction (real python) https://realpython.com/linked-lists-python/
- Strings and Character Data in Python (real python) https://realpython.com/python-strings/
- Numbers in Python https://realpython.com/python-numbers/
- Модуль collections из стандартной библиотеки https://habr.com/ru/post/478934/
- The Python heapq Module: Using Heaps and Priority Queues (real python) https://realpython.com/python-heapq-module/
- Python Data Structures: Sets, Frozensets, and Multisets (real python) https://www.youtube.com/watch?v=b-K1ujf8u_k
- When to Use a List Comprehension in Python https://realpython.com/list-comprehension-python/
- Null in Python: Understanding Python's NoneType Object https://realpython.com/null-in-python/
- Common Python Data Structures (Guide) https://realpython.com/python-data-structures/
- Робот в лабиринте: обрабатываем в Python очереди с приоритетом (heapq) https://proglib.io/p/robot-v-labirinte-obrabatyvaem-ocheredi-s-prioritetom-v-python-2020-07-07
- Очередь для использования в многопоточных приложениях https://docs.python.org/3/library/queue.html
- Raymond Hettinger - Dataclasses: The code generator to end all code generators - PyCon 2018 https://www.youtube.com/watch?v=T-TwcmT6Rcw
Циклы, условия, операторы ^
Поведение объектов с тем или иным оператором определяется реализацией у него соответствующего магического метода.
- Operators and Expressions in Python (real python) https://realpython.com/python-operators-expressions/
- Operator and Function Overloading in Custom Python Classes (real python) https://realpython.com/operator-function-overloading/
- Conditional Statements in Python (real python) https://realpython.com/python-conditional-statements/
- Python "while" Loops (Indefinite Iteration) (real python) https://realpython.com/python-while-loop/
- Python "for" Loops (Definite Iteration) (real python) https://realpython.com/python-for-loop/
Итераторы и генераторы. Сопрограммы ^
- Лекция про итераторы, генераторы и корутины от CSC https://www.youtube.com/watch?v=Xxuy1zFCMhc
- Корутины для самых маленьких. Иван Гончарук, DAN https://www.youtube.com/watch?v=_obr60qv6rM
- Как устроены корутины? / Дмитрий Калугин-Балашов (Exnodes Inc.) https://www.youtube.com/watch?v=vhf5lU1suL0
- Itertools in Python 3, By Example https://realpython.com/python-itertools/
- How to Use Generators and yield in Python https://realpython.com/introduction-to-python-generators/
- Как работает yield https://habr.com/ru/post/132554/
- Презентации Д.Бизли по генераторам (http://dabeaz.com/generators/) и сопрограммам (http://dabeaz.com/coroutines/)
- Python 101: iterators, generators, coroutines, Mark McDonnell https://www.integralist.co.uk/posts/python-generators/
- What is a Coroutine Anyway? (John Reese, North Bay Python 2019) https://www.youtube.com/watch?v=GSiZkP7cI80
- Подробно о корутинах в C++ (сравниваются стековые и бесстековые корутины) https://habr.com/ru/company/piter/blog/491996/
- Александр Кошкин "Знай и люби свой yield. Корутины и генераторы за гранью for loop" https://www.youtube.com/watch?v=-E1V24zZJrs
Функции. Замыкания. Декораторы. ФП ^
Декоратор - часто используемый шаблон проектирования в питоне, для которого есть даже специальный синтаксический сахар
@deco\nmethod
- то же самое чтоmethod=deco(method)
как мы написали бы на других ЯП. В декораторы можно передавать аргументы.
- Лекция по ООП и декораторам от Акадении Яндекса https://youtu.be/Db19qjrMsYI?t=2596
- Функциональное программирование и работа с данными (+ декораторы) (урок OTUS) https://www.youtube.com/watch?v=iHT2OlrCBgs
- Скринкаст Олега Молчанова по декораторам https://www.youtube.com/watch?v=Ss1M32pp5Ew
- Лекции про функции https://www.youtube.com/watch?v=VrShEItN0Jc и декораторы https://www.youtube.com/watch?v=rkjg71GJPvA от CSC
- Optional Arguments in Python With
*args
and**kwargs
https://www.youtube.com/watch?v=WcTXxX3vYgY - How to Use Python Lambda Functions https://realpython.com/python-lambda/
- Python's map(): Processing Iterables Without a Loop https://realpython.com/python-map-function/
- Tutorial: Geir Arne Hjelle - Introduction to Decorators: Power Up Your Python Code (Pycon US) https://www.youtube.com/watch?v=T8CQwGIsrx4
- Reuven M. Lerner - Practical decorators - PyCon 2019 https://www.youtube.com/watch?v=MjHpMCIvwsY
ООП. Магические методы. Протокол дескрипторов. Метаклассы. Статические методы и методы класса ^
Все в питоне является объектом. Питон поддерживает множественное наследование, при этом порядок выбора метода определяется алгоритмом MRO. Соглашение об именовании методов (
_method
- приватный атрибут,__method
- искажение имени для избежания конфликтов наследников). Магические методы__method__
- задают поведение объекта с операторами, стандартными функциями, при доступе к атрибутам и т.д.
- ООП. Лекция Академии Яндекса https://www.youtube.com/watch?v=Db19qjrMsYI
- Руководство по магическим методам в Питоне (перевод статьи Rafe Kettler) https://habr.com/ru/post/186608/
- Магические методы и дескрипторы (урок Otus) https://www.youtube.com/watch?v=6Zd35hSvGio
- Руководство к дескрипторам (хабр) https://habr.com/ru/post/122082/
- Дескрипторы (В. Донец) https://www.youtube.com/watch?v=akyVo4BzYZo
- Алексей Кузьмин. Жизненный цикл Python-объекта https://www.youtube.com/watch?v=UndKVhoMNg8
- Лекция про классы https://www.youtube.com/watch?v=2pttEjdYJuo (ч.1) и https://www.youtube.com/watch?v=czqYT7103Eo (ч.2)
- Лекция про метапрограммирование от Технострима https://www.youtube.com/watch?v=bt6kU1kuHWA
- Python Descriptors: An Introduction https://realpython.com/python-descriptors/
- Supercharge Your Classes With Python super() https://realpython.com/python-super/
- Inheritance and Composition: A Python OOP Guide https://realpython.com/courses/inheritance-composition-python/
- Цикл статей по ООП с подробным разбором тем https://proproprogs.ru/python_oop
- Python Magic (Magic of Python) (урок OTUS) https://www.youtube.com/watch?v=rmIDwxyngWU
- Luciano Ramalho - Pythonic Objects: idiomatic OOP in Python - PyCon 2019 https://www.youtube.com/watch?v=mUu_4k6a5-I
- The Magic of Python - Darshan Markandaiah (Pyohio 2019) https://www.youtube.com/watch?v=X9poNqBfX4Q
- Mariano Anaya - Discovering Descriptors (EuroPython 2017) https://www.youtube.com/watch?v=TAuC086NNmo
- Ariel Ortiz - The Perils of Inheritance: Why We Should Prefer Composition - PyCon 2019 https://www.youtube.com/watch?v=YXiaWtc0cgE
- Ariel Ortiz - Design Patterns in Python for the Untrained Eye - PyCon 2019 https://www.youtube.com/watch?v=o1FZ_Bd4DSM
Возможности стандартной библиотеки ^
У питона богатейшая стандартная библиотека. Там есть все, что нужно и даже больше
- Официальная документация https://docs.python.org/3/library/
- Python 3 Module of the Week (разбор модулей стандартной библиотеки с примерами) https://pymotw.com/3/
Дебаггинг ^
Для питона есть консольный дебаггер - pdb, а также дебаггеры в популярных IDE
- Python Debugging With Pdb (Real python) https://realpython.com/python-debugging-pdb/
- Advanced Debugging in PyCharm (JetBrains) https://www.youtube.com/watch?v=k6j1NkVAsuU
- Как устроены дебаггеры (доклад Елизаветы Шашковой на pycon) https://www.youtube.com/watch?v=jK3D77b-DXk
- Отладка Python (статья от mail.ru с обзором дебаггеров) https://habr.com/ru/company/mailru/blog/205426/
- Time Travel Debugging for Python (с профайлингом) https://pytrace.com/
- Goodbye Print, Hello Debugger! - Nina Zakharenko https://www.youtube.com/watch?v=5AYIe-3cD-s
- PySnooper - Never use print for debugging again - Ram Rachum - PyCon Israel 2019 https://www.youtube.com/watch?v=XP5imOJc_TE
- Дока по использованию отладчика gdb для python-приложений https://devguide.python.org/gdb/
- Introduction to Debugging with Python (PyOhio, 2017) https://www.youtube.com/watch?v=BixeKmlKOJc
- Advanced Python Debugging Techniques Using GDB (PyOhio, 2016) https://www.youtube.com/watch?v=rB9rPdMRxIA
- Кирилл Борисов (Яндекс) - Отладка в Python: 2016 edition https://www.youtube.com/watch?v=nHhifqUm_Qg
Обработка исключений. Контекстные менеджеры ^
- Python Exceptions: An Introduction https://realpython.com/python-exceptions/
- Understanding the Python Traceback https://realpython.com/python-traceback/
- Python KeyError Exceptions and How to Handle Them https://realpython.com/python-keyerror/
- Devpractice Работа с исключениями https://devpractice.ru/python-lesson-11-work-with-exceptions/
- Григорий Петров: "Работа с ошибками. Как ловить исключения и что потом с ними делать." https://www.youtube.com/watch?v=hzVECcMI8ys
- Лекция про работу с исключениями от CSC https://www.youtube.com/watch?v=a6UtrJ4Xh-Y
- Python Context Managers and the "with" Statement (
__enter__
&__exit__
) (real python) https://www.youtube.com/watch?v=iba-I4CrmyA - How to Handle Exceptions in Python: A Detailed Visual Introduction https://www.freecodecamp.org/news/exception-handling-python/
- Всё об исключениях и работе с ними в Python (Диджитализируй!) https://www.youtube.com/watch?v=89wpfOAgrCk
- Mario Corchero - Exceptional Exceptions - How to properly raise, handle and create them https://www.youtube.com/watch?v=V2fGAv2R5j8
- Python 101: Context Managers, by Mark McDonnell https://www.integralist.co.uk/posts/python-context-managers/
Пакеты и модули. Pypi. pip и easy_install. virtualenv ^
- Ликбез по пакетам и шпаргалка по модулям в Python (Хекслет) https://ru.hexlet.io/blog/posts/likbez-po-paketam-i-shpargalka-po-modulyam-v-python
- Python Modules and Packages – An Introduction (real python) https://realpython.com/python-modules-packages/
- How to Publish an Open-Source Python Package to PyPI (real python) https://realpython.com/pypi-publish-python-package/
- Dependencies Handling in Python (Julien Danjou) https://julien.danjou.info/dependencies-handling-in-python-automatic-update/
- Лекция от CSC про модули https://www.youtube.com/watch?v=ISo-L-0xsoI
- Installing Python Packages with pip and virtualenv / venv (Real pyrhon screencast) https://www.youtube.com/watch?v=UqkT2Ml9beg
- Python import: Advanced Techniques and Tips https://realpython.com/python-import/
- How to Publish an Open-Source Python Package to PyPI https://realpython.com/pypi-publish-python-package/
- Python Virtual Environments: A Primer https://realpython.com/python-virtual-environments-a-primer/
- Как опубликовать свою Python библиотеку на PyPI https://proglib.io/p/kak-opublikovat-svoyu-python-biblioteku-na-pypi-2020-01-28
- How import works in Python (PyCon India 2018) https://www.youtube.com/watch?v=-mL5WBMseD4
- What happens behind execution of an
import
statement? (Shivashis) [PyCon JP 2020] https://www.youtube.com/watch?v=0far0mS2lY8 - Python Management and Project Dependencies, Mark McDonnell https://www.integralist.co.uk/posts/python-management/
- Григорий Петров / Управление зависимостями в Python: история боли https://www.youtube.com/watch?v=fP8oGx6ZA5o
- Unpack Python Packages – Deep dive into the wheels of python packaging https://www.youtube.com/watch?v=kO5Es7KKUIY
Многопоточность. GIL. Многопроцессные приложения ^
- Многопоточность и GIL. Лекция от Computer Science center https://www.youtube.com/watch?v=nR8WhdcRJwM
- What is the Python Global Interpreter Lock (GIL)? https://realpython.com/python-gil/
- An Intro to Threading in Python (real python) https://realpython.com/intro-to-python-threading/
- GIL (урок Otus) https://www.youtube.com/watch?v=hCOmbMRsJ8c
- GIL в Python: зачем он нужен и как с этим жить - Доклад Г. Петрова https://www.youtube.com/watch?v=AWX4JnAnjBE
- Злата Обуховская, Nvidia «Structured Concurrency. Что не так с асинхронностью в питоне?» https://www.youtube.com/watch?v=NmWzt7VdTgA
- GIL: почему это боль и как с ним жить. Иван Меньших, RaRe Technologies https://www.youtube.com/watch?v=GGUIt1o_TNc
- Константин Данилов. Многопоточность и синхронная/асинхронная обработка в Python https://www.youtube.com/watch?v=ZTBPpLfemaQ
- Как устроен GIL в Python https://habr.com/ru/post/84629/
- Global Interpreter Lock https://ru.wikipedia.org/wiki/Global_Interpreter_Lock
- Grok the GIL: How to write fast and thread-safe Python https://opensource.com/article/17/4/grok-gil
- Асинхронный Python: различные формы конкурентности https://habr.com/ru/post/421625/
- Слайды доклада Д.Бизли "Understanding the Python GIL" http://www.dabeaz.com/python/UnderstandingGIL.pdf
- Модуль
concurrent.futures
https://pymotw.com/3/concurrent.futures/ - Speed Up Your Python Program With Concurrency https://realpython.com/python-concurrency/
- Gevent для практикующего питониста https://vovkd.github.io/gevent-tutorial/
- Потоки и процессы (не смешивать), Станислав Рудаков (+ пример использования gdb) [Minsk Python Meetup] https://www.youtube.com/watch?v=mrXsn3yyuDM
- Tutorial: Santiago Basulto - Python Concurrency: from beginner to pro https://www.youtube.com/watch?v=18B1pznaU1o
- Thread (and AsyncIO) Concurrency Visualization of JetBrains Pycharm and Idea https://www.jetbrains.com/help/pycharm/thread-concurrency-visualization.html
- Python's Infamous GIL by Larry Hastings (для чего нужен GIL) https://www.youtube.com/watch?v=KVKufdTphKs
- Concurrency In Python Concepts, Frameworks And Best Practices - Stefan Schwarzer (PyCon DE) https://www.youtube.com/watch?v=Do7JtnPh1Mg
- Raymond Hettinger, Keynote on Concurrency, PyBay 2017 https://www.youtube.com/watch?v=9zinZmE3Ogk
- Jacek Kolodziej: GIL: What's the hassle and why should I care? (PyCon CZ 2017) https://www.youtube.com/watch?v=ZvWmAIODi-s
- Writing robust, readable, and maintainable concurrent programs in Python - PyCon APAC 2018 https://www.youtube.com/watch?v=DJnUctSQSGw
- Concurrency vs Parallelism - PyCon APAC 2018 https://www.youtube.com/watch?v=HNjAgkybAdQ
- Things I Wish They Told Me About The Multiprocessing Module in Python 3 (Pamela McANulty) (PyCon Cleveland 2019) https://www.youtube.com/watch?v=5dMOYf0b_20
- Grok the GIL Write Fast And Thread Safe Python (Jesse Jiryu Davis) PyCon 2017 https://www.youtube.com/watch?v=7SSYhuk5hmc
- Убирая ГБИ (GIL) из Питона: Гилектомия (Д. Бизли) pycon 2016, русский перевод https://www.youtube.com/watch?v=48l_HOtAqAI
- Действительно ли Python GIL уже мертв? (перевод статьи Anthony Shaw) https://habr.com/ru/company/otus/blog/458694/
- Многопроцессность, многопоточность, асинхронность в Python и не только. Что это и как работает? (Диджитализируй!) https://www.youtube.com/watch?v=JIp14T9bvvc
- «Обмен данными между процессами python» Yehor Nazarkin LvivPy#5 https://www.youtube.com/watch?v=IaW-1AoGAKc
- Chin Hwee Ong - Speed Up Your Data Processing | PyData Global 2020 https://www.youtube.com/watch?v=E9sv2B3Bb20
Асинхронное программирование. Event loop. Теория ^
- Асинхронное программирование в Python (урок OTUS) https://www.youtube.com/watch?v=LROBh6pgEp8
- async / await - лекция от Computer Science Center https://www.youtube.com/watch?v=x6JZmBK2I8Y
- Асинхронное программирование - Лекция Академии Яндекса https://www.youtube.com/watch?v=AXkOli6BsBY (ч.1), https://www.youtube.com/watch?v=IB4bJqmfjI0 (ч.2), https://www.youtube.com/watch?v=FFUYf8FHDlY (ч.3)
- Demystifying Python's Async and Await Keywords от JetBrainsTV https://www.youtube.com/watch?v=F19R_M4Nay4
- Алексей Кузьмин, ДомКлик «Асинхронность изнутри» https://www.youtube.com/watch?v=pZkerqks43Y
- Доклад Д. Бизли Конкурентность в Питоне с нуля. Вживую. https://www.youtube.com/watch?v=ys8lW8eQaJQ
- Аsync и await в production / Сергей Борисов (ДомКлик) https://www.youtube.com/watch?v=pN9A5kD_rK8
- Основы асинхронности в Python - Курс лекций Олега Молчанова https://www.youtube.com/watch?v=ZGfv_yRLBiY
- Что внутри у питона: откуда быть пошел async (доклад З. Обуховской, также рассказано про генераторы) https://www.youtube.com/watch?v=GX7AUAwpQ4I
- Школа программистов HH: Python Async (Р. Чекалов) https://www.youtube.com/watch?v=VWEISe8TXUE
- Дмитрий Ходаков, Avito «CPU bound задачи в веб-сервисах на Python» https://www.youtube.com/watch?v=OmBuXb7P9Ak
- Аsync и await в production / Сергей Борисов (ДомКлик) https://www.youtube.com/watch?v=pN9A5kD_rK8
- Что внутри asyncio. Александр Меренков, Antida software https://www.youtube.com/watch?v=V7iecSKgWLM
- Asyncio: understanding async and await in Python https://www.youtube.com/watch?v=a_wWnxH2o0Y
- Новый Python: Асинхронное всё, Иван Уваров https://cmc.basealt.ru/new-python.html
- Реализация epoll в Linux (цикл статей) https://habr.com/ru/company/ruvds/blog/523946/
- Юрий Селиванов, EdgeDB, Asyncio «Asyncio сегодня и завтра» https://www.youtube.com/watch?v=BhqeJGTji2I
- Асинхронное программирование в Python (Кузьмин, ДомКлик) https://www.youtube.com/watch?v=OEFsdk1tqAU
- Асинхронщина в Python (Полищук, MoscowPython) https://www.youtube.com/watch?v=lIkA0TDX8tE
- Understanding Concurrency in Python! - Annie Cook https://www.youtube.com/watch?v=9g5IZDkwAC0
- Miguel Grinberg Asynchronous Python for the Complete Beginner PyCon 2017 https://www.youtube.com/watch?v=iG6fr81xHKA
- Combining ayncio and threads in the same application (Marc-Andre Lemburg) [PyCon JP 2020] https://www.youtube.com/watch?v=ci9z1NM6F0Y&t=230s
- An introduction to concurrent programming with asyncio, Bruce Merry (PyCon SA 2018) https://www.youtube.com/watch?v=x1RXHcE3oVI
- Sanic: Async Python (uvloop) with a familiar flask like feel, (PyCon SA 2018) https://www.youtube.com/watch?v=QtXUwEQS2pg
- Thinking Outside the GIL with AsyncIO and Multiprocessing, John Reese (PyCon 2018) https://www.youtube.com/watch?v=0kXaLh8Fz3k
- Artisanal Async Adventures(Jonas Obrist) (пишем свой asyncio) (PyCon JP 2018) https://www.youtube.com/watch?v=6doZo6eySCg
- Deep Dive into Coroutine, Daehee Kim (PyCon Korea) (разбор байткода корутин. слайды на английском, понять можно) https://www.youtube.com/watch?v=NmSeLspQoAA
- Adopting Python Asyncio in Large Scale Project (Instagram) – Jimmy Lai – PyCon Taiwan 2018 https://www.youtube.com/watch?v=ACgMTqX5Ee4
- Running Python code in parallel and asynchronously (Michal Wysokinski) (EuroPython 2017) https://www.youtube.com/watch?v=ZKzCx4D5c3g
asyncio.get_event_loop()
→ what is that? (Kamal Marhubi) (Montreal-Python 2015) https://www.youtube.com/watch?v=2DmUvBtSdnI- Guide to Concurrency in Python with Asyncio, Mark McDonnell https://www.integralist.co.uk/posts/python-asyncio/
- Async/await: асинхронные возможности в Python 3+ https://xakep.ru/2017/01/11/python-3-asyncio/
- Лекция: Прикладной Python. Асинхронное программирование, Технострим https://www.youtube.com/watch?v=X9RRJG109a4 (+ семинар https://www.youtube.com/watch?v=h0Dm2TNXoP0)
- Python Junior подкаст. Про асинхронность в питоне https://www.youtube.com/watch?v=Q2r76grtNeg
- Что внутри asyncio, Александр Меренков https://habr.com/ru/post/453348/
- Асинхронное программирование на практике – Дмитрий Орлов [Школа бекенд-разработки Яндекса] https://www.youtube.com/watch?v=nysVwISk9_c
- Python Asyncio: The Complete Guide, Jason Brownlee https://superfastpython.com/python-asyncio/
Асинхронные фреймворки и библиотеки ^
Устаревшие (Twisted и Tornado), стандртные (asyncio, aiohttp), сыроватые новинки (sanic, vibora)
- Дмитрий Ходаков, Авито «Tornado vs Aiohttp» https://www.youtube.com/watch?v=BbyVHtsIM1M (и статья https://habr.com/ru/company/avito/blog/435532/)
- Различные асинхронные библиотеки от создателей
asyncio
https://github.com/aio-libs - Андрей Светлов, Python Core Developer «Aiohttp от автора» https://www.youtube.com/watch?v=5NrnBu1vcKo
- Yury Selivanov - Asyncio in Python 3.7 and 3.8 https://www.youtube.com/watch?v=ReXxO_azV-w
- Самые быстрые Python веб-фреймворки в 2019 (перевод статьи Maksim Larkin) https://habr.com/ru/post/440282/
- Андрей Светлов: "Подводные камни asyncio" https://www.youtube.com/watch?v=GLN_xo4Awcc
- Async IO in Python: A Complete Walkthrough https://realpython.com/async-io-python/
- Asyncio: understanding async and await in Python https://www.youtube.com/watch?v=a_wWnxH2o0Y
- uvloop — продвинутая реализация цикла событий для asyncio в Python https://habr.com/ru/post/282972/
- Understanding Tornado fundamentals (объяснение про
@gen.coroutine
) https://bhch.github.io/posts/2017/06/understanding-tornado-fundamentals/ - Я не люблю asyncio – Павел Камаев https://www.youtube.com/watch?v=Fj2t959Q7DA
- Lynn Root - Advanced asyncio: Solving Real-world Production Problems - PyCon 2019 https://www.youtube.com/watch?v=bckD_GK80oY
- Asyncio in the Wild, Ákos Hochrein (теория + обзор библиотек для asyncio) https://www.youtube.com/watch?v=EX4YsevmZBg
- An introduction to concurrent programming with asyncio (Bruce Merry) (PyCon SA 2018) https://www.youtube.com/watch?v=x1RXHcE3oVI
- Tornado in Depth [EuroPython 2012] (исторический доклад) https://www.youtube.com/watch?v=4Ztq-Yz1ero
- import asyncio: Learn Python's AsyncIO (цикл подробных лекций про asyncio) https://www.youtube.com/watch?v=Xbl7XjFYsN4&list=PLhNSoGM2ik6SIkVGXWBwerucXjgP1rHmB
- Екатерина Сударева - Асинхронность в Python. Начало https://www.youtube.com/watch?v=OmDKVuROsUM
- Trio – асинхронное программирование для людей https://habr.com/ru/company/barsgroup/blog/490872/
- Asyncio Coroutine Patterns (Yeray Diaz): Beyond await https://medium.com/python-pandemonium/asyncio-coroutine-patterns-beyond-await-a6121486656f и Errors and cancellation https://medium.com/@yeraydiazdiaz/asyncio-coroutine-patterns-errors-and-cancellation-3bb422e961ff
- Lynn Root - asyncio in Practice: We Did It Wrong https://www.youtube.com/watch?v=1lJDZx6f6tY (видео доклада) и https://www.roguelynn.com/words/asyncio-we-did-it-wrong/ (цикл статей)
- How to ensure asyncio task exceptions always get logged (Quantlane tech blog) https://quantlane.com/blog/ensure-asyncio-task-exceptions-get-logged/
Работа с памятью ^
Питон - очень неэкономный по памяти язык. Иногда возникают задачи, которые требуют знаний про то как питон работает с памятью (счетчик ссылок, арены и GC для циклических ссылок) и как можно эту память сэкономить.
- «Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС https://www.youtube.com/watch?v=D0vbuIDOV4c
- Python потребляет много памяти, или как уменьшить размер объектов. (доклад З.Шибзухова) https://www.youtube.com/watch?v=qUnzGUz_YxE
- Что внутри у питона: как устроена память (доклад З. Обуховской) https://www.youtube.com/watch?v=lSgoYx06L_s
- В. Синицын - Python: управление памятью https://www.youtube.com/watch?v=ZxvwZ4fX_qE
- Nina Zakharenko - Memory Management in Python - The Basics https://www.youtube.com/watch?v=URNdRl97q_0
- Всё, что нужно знать о сборщике мусора в Python (Artem Golubin) https://habr.com/ru/post/417215/
- Модуль GC стандартной библиотеки - официальная документация https://docs.python.org/3/library/gc.html
- Python memory managment 101 .Deeping garbage collector (J.M. Ortega, PyCon HK) https://www.youtube.com/watch?v=MHTJQao9Ex0
- Основы управления памятью в Python https://webdevblog.ru/osnovy-upravleniya-pamyatju-v-python/
- Memory Management in Python https://realpython.com/python-memory-management/ (перевод https://habr.com/ru/company/ruvds/blog/441568/)
- Управление памятью в Python https://habr.com/ru/company/mailru/blog/336156/
- Пару слов о профилировании памяти в Python https://otus.ru/nest/post/818/
- Finding and Fixing Memory Leaks in Python (Peter Karb, Buzzfeed) https://tech.buzzfeed.com/finding-and-fixing-memory-leaks-in-python-413ce4266e7d
- Pylint: о попытке снизить потребление памяти https://habr.com/ru/company/ruvds/blog/524940/
- Эффективно работаем со сложными структурами данных в Python 3.7+ (Диджитализируй!) https://www.youtube.com/watch?v=tsEG0WM3m_M
- Slots, slots, slots, everybody: an exploration of
__slots__
(Douglas Anderson) (PyCon Canada 2018) https://www.youtube.com/watch?v=AR3hD43HLNE - Python, Linkers, and Virtual Memory (PyCon US 2012) https://www.youtube.com/watch?v=twQKAoq2OPE
- Python Tutorials - Memory size Memory management of Python data structures https://www.youtube.com/watch?v=E07JCf87_C8
- Как работает память в Python, DomClick https://habr.com/ru/company/domclick/blog/530804/
- Ультимативный гайд по поиску утечек памяти в Python, DomClick https://habr.com/ru/company/domclick/blog/532030/
- How I Tried To Reduce Pylint Memory Usage https://rtpg.co/2020/10/12/pylint-usage.html
- Python Memory Deep Dive for Speed and Efficiency, Michael Kennedy https://www.youtube.com/watch?v=d9mSIEIcTpo
- Fabio Falzoi - An insight into Python Garbage Collection https://www.youtube.com/watch?v=pqCQ5AwCJqE
- Помнить всё. Как работает память в Python (ProgLib) https://proglib.io/p/pomnit-vse-kak-rabotaet-pamyat-v-python-2021-03-14
Вопросы производительности ^
Несмотря на то, что питон - не самый быстрый язык, интерпретатор постоянно оптимизируют
- Python — это медленно. Почему? https://habr.com/ru/company/ruvds/blog/418823/
- Что я узнал про оптимизацию в Python (перевод статьи Gregory Szorc's) https://habr.com/ru/company/otus/blog/457942/
- Which is the fastest version of Python? (статья Anthony Shaw, сравнение 2.7-3.7+pypy) https://hackernoon.com/which-is-the-fastest-version-of-python-2ae7c61a6b2b
- Оптимизации, сделавшие Python 3.6 быстрее Python 3.5 https://www.youtube.com/watch?v=zMECweCmuA4
- Anthony Shaw - Why is Python slow? (pycon) https://www.youtube.com/watch?v=I4nkgJdVZFA
- Python, производительность, перспективы // Кирилл Борисов (Pytup) https://youtu.be/brA7HLZEN4w?t=8669
- Что делать, если ваш код на Python тормозит / Григорий Бакунов (Яндекс) https://www.youtube.com/watch?v=77B2-Pk1fls
- Григорий Петров - Почему Python медленный? https://www.youtube.com/watch?v=39XNklRQJI4
Профайлинг ^
Как и для других ЯП, для питона существует ряд статистических (низкий оверхед и более низкая точность) и инструментальных (более высокая точность и высокий оверхед) профилировщиков
- Flamegraph семплирующий профайлинг https://www.youtube.com/watch?v=kRA0RZoycMQ
- PyConBY 2020: Christian Heimes - Introduction to low level profiling and tracing https://www.youtube.com/watch?v=PXEP97uU0NQ
- Summary Of Python Profiling Tools http://pramodkumbhar.com/2019/05/summary-of-python-profiling-tools-part-i/ (на этом сайте есть еще хорошие статьи о производительности)
- Профилирование и отладка Python (цикл статей от mail.ru): https://habr.com/ru/company/mailru/blog/201594/ (теория), https://habr.com/ru/company/mailru/blog/201778/ (ручное и статистическое), https://habr.com/ru/company/mailru/blog/202832/ (событийное)
- Крутой sampling-профайлер (строит флеймграфы также) https://github.com/benfred/py-spy (must-have, так как pyflame больше по поддерживается)
- Алексей Кузьмин, ДомКлик «Поиск и оптимизация узких мест в Python» (+ про память) https://www.youtube.com/watch?v=tDZHhIiACDA
- Flamegraph that! Self-service profiling tool for Node and Python services (Ruth Grace Wong, Pinterest) https://www.youtube.com/watch?v=w97I5q0hbkw
- Иван Ремизов "Сверхоптимизация кода на Python" (PiterPy) доклад старый, но полезный https://www.youtube.com/watch?v=4CsOOfdoU2A
- PyTrace — Time Travel Debugger для Python https://habr.com/ru/post/504908/
- Python Profiling and Performance Tuning in Production (Joe Gordon, Pinterest) https://www.youtube.com/watch?v=B9Kv3Fije1I, https://www.youtube.com/watch?v=bectZn_yNwg
- Production-time Profiling for Python (Julien Danjou) https://www.youtube.com/watch?v=kLO81hMRwgI
- Beyond cProfile: performance optimization with sampling profilers and logging https://www.youtube.com/watch?v=fOzVTPOWfQs
/usr/bin/time -v python3 my_script.py
(-l
для mac os)- Удобное профилирование простых скриптов в
ipython
https://jakevdp.github.io/PythonDataScienceHandbook/01.07-timing-and-profiling.html - Profiling Python by Example, Eyal Trabelsi (PyCon Sweden) Хороший обзор основных типов https://www.youtube.com/watch?v=9wfFXRCkkLE
- Python Profiling and Performance Tuning - PyCon APAC 2016 (Joe Gordon ) https://www.youtube.com/watch?v=noxCqWJieB4
- Python Profilers We Built for Efficiency – PyCon Taiwan 2019 https://www.youtube.com/watch?v=liOWqXkAy8s
- Emin Martinian - Statistical Profiling (and other fun with the sys module) - PyCon 2019 https://www.youtube.com/watch?v=d5SGUscT2GA
- Flame graph новый взгляд на привычное профилирование, Кирилл Борисов, Яндекс https://www.youtube.com/watch?v=pa_kAkXuOyA
- 9 nifty libraries for profiling Python code (InfoWorld) https://www.infoworld.com/article/3600993/9-nifty-libraries-for-profiling-python-code.html
- Новая интересная тулза для профилирования памяти https://github.com/bloomberg/memray
Логирование и трейсинг ^
- Трейсинг в микросервисной архитектуре на Python https://www.youtube.com/watch?v=DpndyJ-CK5s
- Читаем исходники open source Python библиотек. Библиотека Loguru (Диджитализируй!) https://www.youtube.com/watch?v=g6zzZxxifAw
- Про Jaeger: как мы внедряли распределенную трассировку запросов, Амангельды Кыдыл https://www.youtube.com/watch?v=O5I301lYjzM
- Mario Corchero - Effortless Logging: A deep dive into the logging module - PyCon 2018 https://www.youtube.com/watch?v=Pbz1fo7KlGg
- OpenTracing with Jaeger - Utah Go User Group https://www.youtube.com/watch?v=GccUVCI5TkM
- OpenTracing не только для распределенной трассировки. Константин Черкасов, Lazada https://www.youtube.com/watch?v=nHgfJ943z2I
- OpenTelemetry // Андрей Гейн (Pytup) https://www.youtube.com/watch?v=brA7HLZEN4w&t=1864s
Модули на C (C++, Rust, Go) и ctypes ^
Когда нужно писать модуль на C: тяжелые вычисления, чтобы отпустить gil, чтобы использовать какую-либо сишную библиотеку, при работе с бинарными данными, для низкоуровневых задач, когда требуется особая работа с памятью
- Building a Python C Extension Module (real python) https://realpython.com/build-python-c-extension-module/
- Производительность в Python. Легкий путь (o ctypes) https://habr.com/ru/post/157537/ (дока https://docs.python.org/3/library/ctypes.html)
- Python — Программирование расширений на C https://coderlessons.com/tutorials/python-technologies/vyuchit-piton/python-programmirovanie-rasshirenii-na-c
- C/C++ из Python (ctypes) (хабр) https://habr.com/ru/post/466499/
- Как писать модули для питона на C и go (первый доклад pytup'a) https://youtu.be/tpKs4UVe3Bk?t=487
- Андрей Светлов - Оптимизация производительности при помощи Cython https://www.youtube.com/watch?v=5-WoT4X17sk
- Anton Zhdan-Pushkin: Under the hood of calling C/C++ from Python https://azhpushkin.me/posts/python-c-under-the-hood
- Расширение Python на C: заставляем Python ползти быстрее // Бесплатный урок Otus https://www.youtube.com/watch?v=yUJwYluM9ao
- Cython as a Game Changer for Efficiency (Alex Orlov) PyCon 2017 https://www.youtube.com/watch?v=_1MSX7V28Po
- Why should you learn writing C extension? (Gavin Chan) (Hong Kong) - PyCon HK 2020 Spring https://www.youtube.com/watch?v=FOwV8apw_nQ
- Call C code quickly and compatibly with CFFI (Zachary Voase) (PyCon Canada 2018) https://www.youtube.com/watch?v=EdUa5Sbf-4U
- Bringing C performance to Python code, about Cython (Jan Škoda) (PyCOn CZ 2017) https://www.youtube.com/watch?v=G2yY3unaF0I
- Pumping up Python modules using Rust - PyCon APAC 2018 https://www.youtube.com/watch?v=rqmGnggorLI
- Любовь. Python. C++ // Александр Букин (Pytup) https://www.youtube.com/watch?v=brA7HLZEN4w&t=0s
- Writing Python extensions in Rust https://www.youtube.com/watch?v=BgzIaEzXEBU
- Tadas Barzdžius. Speeding up Python with Rust (PyCon LT) https://www.youtube.com/watch?v=5vkvy29tL28
Тестирование ^
Популярные библиотеки - pytests и unittest. Дата-провайдеры и фикстуры. Доктесты
- Введение в автотесты. Вебинар от OTUS https://www.youtube.com/watch?v=EBMXOsCL9AA
- Тестирование. Лекция из Академии Яндекса https://www.youtube.com/watch?v=2-EBSIRs0H4&list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s&index=4
- Лекция про тестирование от CSC https://www.youtube.com/watch?v=VomXaukdWxo
- TDD c pytest и без него. Урок OTUS https://www.youtube.com/watch?v=lxVv8cdSTsw
- Эффективное тестирование с pytest (урок OTUS) https://www.youtube.com/watch?v=saf1_VmMz5U
- Автоматизация тестирования API (pytest) https://www.youtube.com/watch?v=niDC5OlM8eI
- Сергей Борисов, ДомКлик, мастер-класс "Тестирование асинхронных приложений" https://www.youtube.com/watch?v=BXn30wqy-og
- Workshop: Modern Python Developer's Toolkit, Sebastian Witowski (в т.ч. про pytest) https://youtu.be/om4BSW-lpd8?t=3559
- Pytest: введение в автотесты (урок OTUS) https://www.youtube.com/watch?v=gEkF0He5L04
- Raphael Pierzina - Advanced pytest (EuroPython 2019) https://www.youtube.com/watch?v=gJtE-anbcww
- Productive pytest with PyCharm (JetBrainsTV) https://www.youtube.com/watch?v=ixqeebhUa-w
- How to Write Pytest Plugins - Darlene Wong (PyBay 2019) https://www.youtube.com/watch?v=QwDhzFkE9J4
- Automated testing with pytest and fixtures (PyGotham 2017) https://www.youtube.com/watch?v=8mp_1Jt-xHQ
- Mocking in Python, Mark McDonnell https://www.integralist.co.uk/posts/mocking-in-python/
Утилиты для улучшения качества кода ^
- Python Code Quality: Tools & Best Practices https://realpython.com/python-code-quality/
- Как прокачать линтер. Максим Мазаев https://www.youtube.com/watch?v=HZPRoz8V6jk (этот же доклад https://www.youtube.com/watch?v=ZKoBZkdYLiM и статья https://habr.com/ru/company/oleg-bunin/blog/433474/)
- Презентация "HOW TO WRITE PYLINT PLUGINS" Александра Тодорова https://piterpy.com/system/attachments/files/000/001/519/original/how_to_write_pylint_plugins_PiterPy_2018.pdf
- Аннотации типов в Python 3 (урок OTUS) https://youtu.be/I09iX8aoCsw?t=313
- «Модифицируй это!» или «Больше магии Python с помощью изменения AST» (А. Маршалов) https://www.youtube.com/watch?v=Zv6yT-ytIvg
- Инструменты для анализа кода Python https://proglib.io/p/python-code-analysis (ч.1), https://proglib.io/p/python-code-analysis-tools (ч.2)
- Г. Петров PyRe: еще один type checker https://www.youtube.com/watch?v=-Lz81ex3jP8
- Разработка плагинов к mypy / Владимир Пузаков https://www.youtube.com/watch?v=l7hDWA5uC0A
- Python Type Checking (Guide) https://realpython.com/python-type-checking/
- Bernat Gabor - Type hinting (and mypy) - PyCon 2019 https://www.youtube.com/watch?v=hTrjTAPnA_k
- Максим Мазаев, ЦИАН "Проверка типов в большом проекте" https://www.youtube.com/watch?v=iEuTGu1ks7I
- Łukasz Langa - Life Is Better Painted Black, or: How to Stop Worrying and Embrace Auto-Formatting https://www.youtube.com/watch?v=esZLCuWs_2Y
- Dustin Ingram - Static Typing in Python (pycon) https://www.youtube.com/watch?v=ST33zDM9vOE
- Как работать с типизацией в Python (tproger) https://tproger.ru/articles/python-typing/
- Alexander Todorov: "How to write pylint plugins" / #PiterPy https://www.youtube.com/watch?v=3CkSKUNMLJc
- Добровольная типизация в Python 3 (и не только), Максим Кольцов / PiterPy Meetup #12 https://www.youtube.com/watch?v=EU9DoJD1olo
- Refactoring Code With the Standard Library (AST/CST), John Reese, PyCon AU 2018 https://www.youtube.com/watch?v=9USGh4Uy-xQ
- A flake8 plugin from scratch (intermediate) anthony explains https://www.youtube.com/watch?v=ot5Z4KQPBL8
Вопросы безопасности ^
- Security considerations in Python Packaging https://www.youtube.com/watch?v=tHlMw9zFgQE
WCGI ^
- Введение в WSGI-серверы: Часть первая https://habr.com/ru/post/426957/
- Анализ производительности WSGI-серверов: Часть вторая https://habr.com/ru/post/427217/
- WSGI Servers (Full Stack Python) https://www.fullstackpython.com/wsgi-servers.html
Работа с СУБД. Драйверы. Популярные ORM ^
Самые популярные ORM для питона - SQLAlchemy и Django ORM, pewee.
- Introduction to Python SQL Libraries (real python) https://realpython.com/python-sql-libraries/
- "Let's Build an ORM" - Greg Back (Pyohio 2019) https://www.youtube.com/watch?v=6rw0p9AOYb8
- Object-relational Mappers (ORMs) (обзор, fullstackpython) https://www.fullstackpython.com/object-relational-mappers-orms.html
- Python: Работа с базой данных (хабр) https://habr.com/ru/post/321510/ (db-api), https://habr.com/ru/post/322086/ (orm)
- Асинхронные драйверы для работы с различными БД от создателей
asyncio
https://github.com/aio-libs - Список асинхронных драйверов для БД https://github.com/timofurrer/awesome-asyncio#database-drivers
- SQLAlchemy ORM: удобная работа с базами данных на Python (ITVDN) https://www.youtube.com/watch?v=PAKJpfxeXjc
- Сравнение технологий aiopg & asyncpg, Алексей Фирсов / PyDaCon meetup https://www.youtube.com/watch?v=bY6ZU0-26TA
- "SQLAlchemy: Python vs Raw SQL" Денис Катаев https://www.youtube.com/watch?v=jUGK-CtM-Mk
- "Пишем приложения на SQLAlchemy" Денис Катаев https://www.youtube.com/watch?v=vXBlOvmzs_0
Работа с данными ^
- Python NumPy Tutorial for Beginners (Freecodecamp.org) https://www.youtube.com/watch?v=QUT1VHiLmmI
- Pandas: How to Read and Write Files https://realpython.com/pandas-read-write-files/
- The Pandas DataFrame: Make Working With Data Delightful https://realpython.com/pandas-dataframe/
- Using Pandas and Python to Explore Your Dataset https://realpython.com/pandas-python-explore-dataset/
- NumPy, SciPy, and Pandas: Correlation With Python https://realpython.com/numpy-scipy-pandas-correlation-python/
- Python Statistics Fundamentals: How to Describe Your Data https://realpython.com/python-statistics/
- Data Analysis with Python - Full Course for Beginners (Numpy, Pandas, Matplotlib, Seaborn) https://www.youtube.com/watch?v=r-uOLxNrNk8
- 6 способов значительно ускорить pandas с помощью пары строк кода https://habr.com/ru/post/503726/
- A Beginner’s Guide to Optimizing Pandas Code for Speed https://engineering.upside.com/a-beginners-guide-to-optimizing-pandas-code-for-speed-c09ef2c6a4d6
- Kevin Markham - Data Science Best Practices with pandas - PyCon 2019 https://www.youtube.com/watch?v=ZjrUmNq41Eo
Работа с файлами ^
- Working With Files in Python https://realpython.com/working-with-files-in-python/
Сетевое программирование ^
- Python 3 — Сетевое программирование https://coderlessons.com/tutorials/python-technologies/izuchite-python-3/python-3-setevoe-programmirovanie
- Network Programming with Python Course (freeCodeCamp.org) https://www.youtube.com/watch?v=FGdiSJakIS4
- Сокеты в Python для начинающих https://habr.com/ru/post/149077/
GUI ^
На питоне можно разрабатывать программы с графическим интерфейсом - для этого есть несколько популярных библиотек
- Серия статей Python GUI Programming (RealPython). Обзор библиотек PySimpleGUI, Tkinter, PyQt, wxPython https://realpython.com/learning-paths/python-gui-programming/
- Python GUI: создаём простое приложение с PyQt и Qt Designer (tproger) https://tproger.ru/translations/python-gui-pyqt/
- 13 GUI-библиотек Python https://techrocks.ru/2018/04/26/13-python-gui-frameworks/
- Серия статей о PyQT5 с примерами http://zetcode.com/gui/pyqt5/
- Tkinter Course - Create Graphic User Interfaces in Python Tutorial (freecodecamp) https://www.youtube.com/watch?v=YXPyB4XeYLA
- Создание desktop-приложений на Python (доклад на MoscowPython) https://www.youtube.com/watch?v=nz6G_ta3of0
- PyQt Layouts: Create Professional-Looking GUI Applications (realpython) https://realpython.com/python-pyqt-layout/
Мониторинг приложений средствами ОС ^
- Более чем 80 средств мониторинга системы Linux https://habr.com/ru/company/ua-hosting/blog/281519/
- Strace в Linux: история, устройство и использование https://habr.com/ru/company/badoo/blog/493856/
- Краткий гайд по использованию GDB https://habr.com/ru/post/491534/
- Sysdig — инструмент для диагностики Linux-систем https://habr.com/ru/company/selectel/blog/222839/
- Perf и flamegraphs https://habr.com/ru/company/selectel/blog/437808/
- perf-tools by Brendan Gregg https://github.com/brendangregg/perf-tools, http://www.brendangregg.com/perf.html
- htop и многое другое на пальцах https://habr.com/ru/post/316806/
- Как посмотреть потоки процесса в Linux https://losst.ru/kak-posmotret-potoki-protsessa-v-linux
- Удивительно полезный инструмент: lsof https://habr.com/ru/company/ruvds/blog/337934/
- Brebdan Gregg: perf Examples (профилирующая тулза) http://www.brendangregg.com/perf.html
- Sysdig — инструмент для диагностики Linux-систем https://habr.com/ru/company/selectel/blog/222839/
- Отлаживаем развертывание ПО со strace https://habr.com/ru/company/southbridge/blog/478626/
- Как узнать оперативную память Linux https://losst.ru/ispolzovanie-operativnoj-pamyati-linux
- Чудеса трассировки: Решение проблем с приложениями при помощи утилиты strace https://xakep.ru/2011/01/13/54477/
- Файловая система proc в Linux https://losst.ru/fajlovaya-sistema-proc-v-linux
- Перевод комиксов Джулии Эванс про системные утилиты https://firstvds.ru/blog/julia_evans
- Изучаем трассировку с помощью eBPF: Руководство и примеры https://habr.com/ru/post/435142/
- Трассировка и профайлинг в Linux с помощью bcc/eBPF https://eax.me/bcc-ebpf/
- BpfTrace - наконец, полноценная замена Dtrace в Linux / Пётр Зайцев (Percona) https://www.youtube.com/watch?v=6ExXwQecMrs
- Introduction to profiling python performance with USDT https://www.youtube.com/watch?v=Zv3--YaaIe0
- Установка и простые примеры использования SystemTap https://eax.me/systemtap/
- Instrumenting CPython with DTrace and SystemTap https://docs.python.org/3/howto/instrumentation.html
- Dive into BPF performance tools using python Андрей Солдатенко https://www.youtube.com/watch?v=8S8zwJBOD0w
- Tracing, Profiling & Debugging in Production (eBPF) - Trent Lloyd (PyCon AU 2019) https://www.youtube.com/watch?v=jXzEzmz-oag
- Команда top в Linux https://losst.ru/komanda-top-v-linux
- Полнофункциональная динамическая трассировка в Linux с использованием eBPF и bpftrace https://www.itsumma.ru/knowledges/blog/tracing
- Velocity 2017: Performance Analysis Superpowers with Linux eBPF https://www.youtube.com/watch?v=bj3qdEDbCD4
- Jesús Cea Avión - Python and DTrace https://www.youtube.com/watch?v=HwqvHUGyGTE
- Root Cause Analysis with eBPF & Python - Pavel Rogovoy - PyCon Israel 2019 https://www.youtube.com/watch?v=hEBZ_htE0IQ
- Using Python to make sense of system traces (Jérémie Galarneau) (PyCon Canada 2017) (демки https://github.com/jgalar/PyConCanada2017) https://www.youtube.com/watch?v=gKmtmPqr6H8
- Вглубь ядра: знакомство с LTTng https://habr.com/ru/company/selectel/blog/300966/
- BPF code with Python: A Gentle Introduction to BPF part 2 (Michael Mullin) https://www.youtube.com/watch?v=ayxHANt1YaI
Нагрузочное тестирование python-приложений ^
- Python инструменты для нагрузочного тестирования https://www.youtube.com/watch?v=-kWm5V9pyCY
- Открытые бенчмарки для нагрузочного тестирования серверов и веб-приложений https://habr.com/ru/company/1cloud/blog/474474/
- Load Testing with Vegeta https://www.scaleway.com/en/docs/vegeta-load-testing/
- Locust: нагрузочное тестирование веб-сервисов / Алексей Романов https://www.youtube.com/watch?v=65Xa__DMhAw
Полезное ^
Must-read книги ^
- Лучано Рамальо: Python. К вершинам мастерства (Fluent Python) https://www.ozon.ru/context/detail/id/135305378/
- Данжу Джульен: Путь Python. Черный пояс по разработке, масштабированию, тестированию и развертыванию https://www.ozon.ru/context/detail/id/158868396/
- Бейдер Дэн: Чистый Python. Тонкости программирования для профи https://www.ozon.ru/context/detail/id/146393762/
- Mohamed Mustapha Tahrioui: asyncio Recipes. A Problem-Solution Approach https://www.apress.com/gp/book/9781484244005
- Caleb Hattingh: Using Asyncio in Python https://www.oreilly.com/library/view/using-asyncio-in/9781492075325/
Telegram-каналы ^
- pythonist.ru (статьи и задачки для собеседований) https://t.me/pythonist_ru
- Книги https://t.me/python_textbooks
- Задачки, в основном несложные https://t.me/pythonquestions
- Англоязычный канал со статьями https://t.me/pythonl
- Тесты https://t.me/pythontesti
- Proglib (статьи, не только питон) https://t.me/proglibrary
- Лучшие статьи https://t.me/zen_of_python
Тесты и задачки для проверки знаний ^
- Real Python Quizzes https://realpython.com/quizzes/
- PYnative Python Quizes https://pynative.com/python-quizzes/
- Еженедельная рассылка со свежими новостями и полезностями https://pycoders.com/
Митапы и конференции ^
- Moscow python meetup (+ Moscow python conf) https://www.youtube.com/user/moscowdjangoru
- Minsk python meetup https://www.youtube.com/user/pythonMinsk
- Python Meetup Chelyabinsk https://www.youtube.com/channel/UCpMh_XSn7yGPabFBYzY5hKg
- Python Новосибирск https://www.youtube.com/c/PyNSK/
- PyCon Russia https://www.youtube.com/user/videoitpeople/videos
- Moscow Python Conf++ https://www.youtube.com/channel/UCqC1iSQnRIDz_rOy8LHe69g
- EuroPython Conference https://www.youtube.com/c/EuroPythonConference