└── README.md
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Обучающие материалы по питону (roadmap) 🐍
3 |
4 |
5 | * [Курсы лекций](#courses)
6 | * [Книги онлайн](#books_online)
7 | * [По темам (+ краткий конспект)](#parts)
8 | * [Внутренности питона](#internals)
9 | * [Типы данных. Коллекции](#datatypes)
10 | * [Циклы, условия, операторы](#instructions)
11 | * [Итераторы и генераторы. Сопрограммы](#iterators)
12 | * [Функции. Замыкания. Декораторы. ФП](#functions)
13 | * [ООП. Магические методы. Протокол дескрипторов. Метаклассы. Статические методы и методы класса](#OOP)
14 | * [Возможности стандартной библиотеки](#stdlib)
15 | * [Дебаггинг](#debugging)
16 | * [Обработка исключений. Контекстные менеджеры](#exceptions)
17 | * [Пакеты и модули. Pypi. pip и easy_install. virtualenv](#modules)
18 | * [Многопоточность. GIL. Многопроцессные приложения](#gil)
19 | * [Асинхронное программирование. Event loop. Теория](#async)
20 | * [Асинхронные фреймворки и библиотеки](#async_libs)
21 | * [Работа с памятью](#memory)
22 | * [Вопросы производительности](#performance)
23 | * [Профайлинг](#profiling)
24 | * [Логирование и трейсинг](#logging)
25 | * [Модули на C и ctypes](#clang)
26 | * [Тестирование](#testing)
27 | * [Утилиты для улучшения качества кода](#quality)
28 | * [Воспросы безопасности](#security)
29 | * [WCGI](#wcgi)
30 | * [Работа с СУБД. Драйверы. Популярные ORM](#databases)
31 | * [Работа с данными](#datalibs)
32 | * [Работа с файлами](#files)
33 | * [Сетевое программирование](#network)
34 | * [GUI](#gui)
35 | * [Мониторинг приложений средствами ОС](#os)
36 | * [Нагрузочное тестирование python-приложений](#load_testing)
37 | * [Полезное](#useful)
38 |
39 |
40 |
41 | ## Курсы лекций [^](#index "к оглавлению")
42 |
43 | > Хорошие курсы для начала
44 |
45 | 1. Специализация Программирование на Python от МФТИ и Mail.Ru Group (все курсы хорошие) https://www.coursera.org/specializations/programming-in-python
46 | 2. Академия Яндекса, Школа бэкенд-разработки 2019 на питоне https://www.youtube.com/playlist?list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s
47 | 3. Computer Science Center, Программирование на Python, 2021, Преподаватель курса: Иван Бибилов https://www.youtube.com/playlist?list=PLlb7e2G7aSpQmGnhrxlqI4iMXNv4R7khy
48 | 4. Computer Science Center, Программирование на Python, осень 2018, Преподаватель курса: Алексей Александрович Кладов https://www.youtube.com/playlist?list=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku
49 | 5. Computer Science Center, Python, 2016, Преподаватель курса: Сергей Лебедев https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
50 | 6. Технострим Mail.Ru Group, Прикладной Python (осень 2018) https://www.youtube.com/playlist?list=PLrCZzMib1e9qM62lMXC90SiFy7-1-kAPJ
51 | 7. Python tricks (Intermediate and Advanced Features) от Дена Бадера https://www.youtube.com/playlist?list=PLP8GkvaIxJP0VAXF3USi9U4JnpxUvQXHx
52 | 8. Intermediate Python Programming Course (freeCodeCamp.org) https://www.youtube.com/watch?v=HGOBQPFzWKo
53 | 9. Курс "Python для сетевых инженеров" Н. Самойленко https://www.youtube.com/playlist?list=PLah0HUih_ZRnJFNdZsWr2pNWgYETauGXo
54 | 10. Небольшие видео по основным темам от Михаила Корнеева https://www.youtube.com/channel/UC2-j4-hV33hboyK1FtukJ9w/videos
55 | 11. Школа бэкенд-разработки 2021 от Яндекса по python https://www.youtube.com/playlist?list=PLQC2_0cDcSKCMKnywAS8eI_EgCcE3yx0r
56 |
57 |
58 | ## Книги онлайн [^](#index "к оглавлению")
59 | 1. Книга Intermediate Python (Obi Ike-Nwosu) онлайн https://leanpub.com/intermediatepython/read
60 | 2. The Hitchhiker’s Guide to Python https://docs.python-guide.org/
61 |
62 |
63 | ## По темам (+ краткий конспект) [^](#index "к оглавлению")
64 |
65 |
66 | ### Внутренности питона [^](#index "к оглавлению")
67 |
68 | > Разбор кода на токены -> построение AST -> оптимизации -> генерация байткода -> выполнение байткода в виртуальной машине. Стандартный интерпретатор - cpython (написан на языке C https://github.com/python/cpython). Альтернативные - pypy (написан на питоне, с JIT), ironpython (C#) и jython(java) - под специфические задачи, не без проблем и особым спросом не пользуются.
69 | > Для решения проблем и получения ответов на свои вопросы полезно 1) уметь разбирать байткод 2) знать структуру cpython и уметь читать сишный код
70 |
71 | 1. Что внутри у Питона: как работает интерпретатор https://www.youtube.com/watch?v=at30AmjPsy4
72 | 2. Внутреннее устройство интерпретатора CPython https://www.youtube.com/watch?v=O9LeNPiftgk
73 | 3. Внутри виртуальной машины Python. https://habr.com/ru/post/501338/ (ч1), https://habr.com/ru/post/501920/ (ч2)
74 | 4. Your Guide to the CPython Source Code (Real python) https://realpython.com/cpython-source-code-guide/
75 | 5. Внутреннее устройство интерпретатора CPython (урок от Otus) https://www.youtube.com/watch?v=O9LeNPiftgk
76 | 6. Устройство CPython. Лекция из Академии Яндекса https://www.youtube.com/watch?v=PxIqLgjtQ5Y&list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s
77 | 7. Understanding Python Bytecode. Learn about disassembling Python bytecode (Reza Bagheri) https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d
78 | 8. Жизненный цикл кода на Python – модель выполнения CPython (Otus) https://habr.com/ru/company/otus/blog/442252/
79 | 9. Официальная документация по модулю `dis` и список байткод-инструкций https://docs.python.org/3/library/dis.html#python-bytecode-instructions
80 | 10. HOW to use AST (Kamnee Maran) https://medium.com/@kamneemaran45/python-ast-5789a1b60300
81 | 11. Online python ast explorer https://python-ast-explorer.com/
82 | 12. Знай и люби свой CPython во имя луны и великой справедливости, Александр Кошкин https://www.youtube.com/watch?v=0_5_zEOo8kg
83 | 13. Интересный разбор написания интерпретатора http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html
84 | 14. Книга Inside The Python Virtual Machine (Obi Ike-Nwosu) онлайн https://leanpub.com/insidethepythonvirtualmachine/read
85 | 15. Cpython Internals - разбор внутренностей cpython со схемами https://github.com/zpoint/CPython-Internals
86 | 16. Статьи автора LinearLeopard: Реализация строкового типа в CPython (https://habr.com/ru/post/480324/), Немного внутренностей словарей в CPython (https://habr.com/ru/post/432996/), Реализация целого типа в CPython (https://habr.com/ru/post/455114/)
87 | 17. Python Developer’s Guide (ресурс про разработку интерпретатора) https://devguide.python.org/
88 | 18. Stepping Through CPython (Larry Hastings) https://www.youtube.com/watch?v=XGF3Qu4dUqk
89 | 19. 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
90 | 20. A Deep Dive into Python Stack Frames (Nikhil Marathe) (PyCotham 2018) https://www.youtube.com/watch?v=smiL_aV1SOc
91 | 21. Dominik ‘disconnect3d’ Czarnota - Python internals - how does CPython work? https://www.youtube.com/watch?v=4QJOEeldFUc
92 | 22. CPython internals and the VM https://www.youtube.com/watch?v=cUyMnGeZ_3c
93 |
94 |
95 | ### Типы данных. Коллекции [^](#index "к оглавлению")
96 | > Все в питоне является объектом. Чтобы узнать тип объекта `x`, нужно вызвать `type(x)`, список методов и свойств - `dir(x)`, справку по методу - `help(x.some_method)`. Основные коллекции - list, tuple, dict, set, а также несколько интересных коллекций есть в модуле `collections`
97 | 1. Лекция про коллекции и модуль `collections` от CSC https://www.youtube.com/watch?v=kmdA7zJS9gw, лекция про строки, байты https://www.youtube.com/watch?v=VY95vgOROo8
98 | 2. Basic Data Types in Python (real python) https://realpython.com/python-data-types/
99 | 3. Dictionaries in Python (real python) https://realpython.com/python-dicts/
100 | 4. Sets in Python (real python) https://realpython.com/python-sets/
101 | 5. Lists and Tuples in Python (real python) https://realpython.com/python-lists-tuples/
102 | 6. Linked Lists in Python: An Introduction (real python) https://realpython.com/linked-lists-python/
103 | 7. Strings and Character Data in Python (real python) https://realpython.com/python-strings/
104 | 8. Numbers in Python https://realpython.com/python-numbers/
105 | 9. Модуль collections из стандартной библиотеки https://habr.com/ru/post/478934/
106 | 10. The Python heapq Module: Using Heaps and Priority Queues (real python) https://realpython.com/python-heapq-module/
107 | 11. Python Data Structures: Sets, Frozensets, and Multisets (real python) https://www.youtube.com/watch?v=b-K1ujf8u_k
108 | 12. When to Use a List Comprehension in Python https://realpython.com/list-comprehension-python/
109 | 13. Null in Python: Understanding Python's NoneType Object https://realpython.com/null-in-python/
110 | 14. Common Python Data Structures (Guide) https://realpython.com/python-data-structures/
111 | 15. Робот в лабиринте: обрабатываем в Python очереди с приоритетом (heapq) https://proglib.io/p/robot-v-labirinte-obrabatyvaem-ocheredi-s-prioritetom-v-python-2020-07-07
112 | 16. Очередь для использования в многопоточных приложениях https://docs.python.org/3/library/queue.html
113 | 17. Raymond Hettinger - Dataclasses: The code generator to end all code generators - PyCon 2018 https://www.youtube.com/watch?v=T-TwcmT6Rcw
114 |
115 |
116 | ### Циклы, условия, операторы [^](#index "к оглавлению")
117 | > Поведение объектов с тем или иным оператором определяется реализацией у него соответствующего магического метода.
118 | 1. Operators and Expressions in Python (real python) https://realpython.com/python-operators-expressions/
119 | 2. Operator and Function Overloading in Custom Python Classes (real python) https://realpython.com/operator-function-overloading/
120 | 3. Conditional Statements in Python (real python) https://realpython.com/python-conditional-statements/
121 | 4. Python "while" Loops (Indefinite Iteration) (real python) https://realpython.com/python-while-loop/
122 | 5. Python "for" Loops (Definite Iteration) (real python) https://realpython.com/python-for-loop/
123 |
124 |
125 | ### Итераторы и генераторы. Сопрограммы [^](#index "к оглавлению")
126 | 1. Лекция про итераторы, генераторы и корутины от CSC https://www.youtube.com/watch?v=Xxuy1zFCMhc
127 | 2. Корутины для самых маленьких. Иван Гончарук, DAN https://www.youtube.com/watch?v=_obr60qv6rM
128 | 3. Как устроены корутины? / Дмитрий Калугин-Балашов (Exnodes Inc.) https://www.youtube.com/watch?v=vhf5lU1suL0
129 | 4. Itertools in Python 3, By Example https://realpython.com/python-itertools/
130 | 5. How to Use Generators and yield in Python https://realpython.com/introduction-to-python-generators/
131 | 6. Как работает yield https://habr.com/ru/post/132554/
132 | 7. Презентации Д.Бизли по генераторам (http://dabeaz.com/generators/) и сопрограммам (http://dabeaz.com/coroutines/)
133 | 8. Python 101: iterators, generators, coroutines, Mark McDonnell https://www.integralist.co.uk/posts/python-generators/
134 | 9. What is a Coroutine Anyway? (John Reese, North Bay Python 2019) https://www.youtube.com/watch?v=GSiZkP7cI80
135 | 10. Подробно о корутинах в C++ (сравниваются стековые и бесстековые корутины) https://habr.com/ru/company/piter/blog/491996/
136 | 11. Александр Кошкин "Знай и люби свой yield. Корутины и генераторы за гранью for loop" https://www.youtube.com/watch?v=-E1V24zZJrs
137 |
138 |
139 | ### Функции. Замыкания. Декораторы. ФП [^](#index "к оглавлению")
140 | > Декоратор - часто используемый шаблон проектирования в питоне, для которого есть даже специальный синтаксический сахар `@deco\nmethod` - то же самое что `method=deco(method)` как мы написали бы на других ЯП. В декораторы можно передавать аргументы.
141 | 1. Лекция по ООП и декораторам от Акадении Яндекса https://youtu.be/Db19qjrMsYI?t=2596
142 | 2. Функциональное программирование и работа с данными (+ декораторы) (урок OTUS) https://www.youtube.com/watch?v=iHT2OlrCBgs
143 | 3. Скринкаст Олега Молчанова по декораторам https://www.youtube.com/watch?v=Ss1M32pp5Ew
144 | 4. Лекции про функции https://www.youtube.com/watch?v=VrShEItN0Jc и декораторы https://www.youtube.com/watch?v=rkjg71GJPvA от CSC
145 | 5. Optional Arguments in Python With `*args` and `**kwargs` https://www.youtube.com/watch?v=WcTXxX3vYgY
146 | 6. How to Use Python Lambda Functions https://realpython.com/python-lambda/
147 | 7. Python's map(): Processing Iterables Without a Loop https://realpython.com/python-map-function/
148 | 8. Tutorial: Geir Arne Hjelle - Introduction to Decorators: Power Up Your Python Code (Pycon US) https://www.youtube.com/watch?v=T8CQwGIsrx4
149 | 9. Reuven M. Lerner - Practical decorators - PyCon 2019 https://www.youtube.com/watch?v=MjHpMCIvwsY
150 |
151 |
152 | ### ООП. Магические методы. Протокол дескрипторов. Метаклассы. Статические методы и методы класса [^](#index "к оглавлению")
153 | > Все в питоне является объектом. Питон поддерживает множественное наследование, при этом порядок выбора метода определяется алгоритмом MRO. Соглашение об именовании методов (`_method` - приватный атрибут, `__method` - искажение имени для избежания конфликтов наследников). Магические методы `__method__` - задают поведение объекта с операторами, стандартными функциями, при доступе к атрибутам и т.д.
154 | 1. ООП. Лекция Академии Яндекса https://www.youtube.com/watch?v=Db19qjrMsYI
155 | 2. Руководство по магическим методам в Питоне (перевод статьи Rafe Kettler) https://habr.com/ru/post/186608/
156 | 3. Магические методы и дескрипторы (урок Otus) https://www.youtube.com/watch?v=6Zd35hSvGio
157 | 4. Руководство к дескрипторам (хабр) https://habr.com/ru/post/122082/
158 | 5. Дескрипторы (В. Донец) https://www.youtube.com/watch?v=akyVo4BzYZo
159 | 6. Алексей Кузьмин. Жизненный цикл Python-объекта https://www.youtube.com/watch?v=UndKVhoMNg8
160 | 7. Лекция про классы https://www.youtube.com/watch?v=2pttEjdYJuo (ч.1) и https://www.youtube.com/watch?v=czqYT7103Eo (ч.2)
161 | 8. Лекция про метапрограммирование от Технострима https://www.youtube.com/watch?v=bt6kU1kuHWA
162 | 9. Python Descriptors: An Introduction https://realpython.com/python-descriptors/
163 | 10. Supercharge Your Classes With Python super() https://realpython.com/python-super/
164 | 11. Inheritance and Composition: A Python OOP Guide https://realpython.com/courses/inheritance-composition-python/
165 | 12. Цикл статей по ООП с подробным разбором тем https://proproprogs.ru/python_oop
166 | 13. Python Magic (Magic of Python) (урок OTUS) https://www.youtube.com/watch?v=rmIDwxyngWU
167 | 14. Luciano Ramalho - Pythonic Objects: idiomatic OOP in Python - PyCon 2019 https://www.youtube.com/watch?v=mUu_4k6a5-I
168 | 15. The Magic of Python - Darshan Markandaiah (Pyohio 2019) https://www.youtube.com/watch?v=X9poNqBfX4Q
169 | 16. Mariano Anaya - Discovering Descriptors (EuroPython 2017) https://www.youtube.com/watch?v=TAuC086NNmo
170 | 17. Ariel Ortiz - The Perils of Inheritance: Why We Should Prefer Composition - PyCon 2019 https://www.youtube.com/watch?v=YXiaWtc0cgE
171 | 18. Ariel Ortiz - Design Patterns in Python for the Untrained Eye - PyCon 2019 https://www.youtube.com/watch?v=o1FZ_Bd4DSM
172 |
173 |
174 | ### Возможности стандартной библиотеки [^](#index "к оглавлению")
175 | > У питона богатейшая стандартная библиотека. Там есть все, что нужно и даже больше
176 | 1. Официальная документация https://docs.python.org/3/library/
177 | 2. Python 3 Module of the Week (разбор модулей стандартной библиотеки с примерами) https://pymotw.com/3/
178 |
179 |
180 | ### Дебаггинг [^](#index "к оглавлению")
181 | > Для питона есть консольный дебаггер - pdb, а также дебаггеры в популярных IDE
182 | 1. Python Debugging With Pdb (Real python) https://realpython.com/python-debugging-pdb/
183 | 2. Advanced Debugging in PyCharm (JetBrains) https://www.youtube.com/watch?v=k6j1NkVAsuU
184 | 3. Как устроены дебаггеры (доклад Елизаветы Шашковой на pycon) https://www.youtube.com/watch?v=jK3D77b-DXk
185 | 4. Отладка Python (статья от mail.ru с обзором дебаггеров) https://habr.com/ru/company/mailru/blog/205426/
186 | 5. Time Travel Debugging for Python (с профайлингом) https://pytrace.com/
187 | 6. Goodbye Print, Hello Debugger! - Nina Zakharenko https://www.youtube.com/watch?v=5AYIe-3cD-s
188 | 7. PySnooper - Never use print for debugging again - Ram Rachum - PyCon Israel 2019 https://www.youtube.com/watch?v=XP5imOJc_TE
189 | 8. Дока по использованию отладчика gdb для python-приложений https://devguide.python.org/gdb/
190 | 9. Introduction to Debugging with Python (PyOhio, 2017) https://www.youtube.com/watch?v=BixeKmlKOJc
191 | 10. Advanced Python Debugging Techniques Using GDB (PyOhio, 2016) https://www.youtube.com/watch?v=rB9rPdMRxIA
192 | 11. Кирилл Борисов (Яндекс) - Отладка в Python: 2016 edition https://www.youtube.com/watch?v=nHhifqUm_Qg
193 |
194 |
195 | ### Обработка исключений. Контекстные менеджеры [^](#index "к оглавлению")
196 | 1. Python Exceptions: An Introduction https://realpython.com/python-exceptions/
197 | 2. Understanding the Python Traceback https://realpython.com/python-traceback/
198 | 3. Python KeyError Exceptions and How to Handle Them https://realpython.com/python-keyerror/
199 | 4. Devpractice Работа с исключениями https://devpractice.ru/python-lesson-11-work-with-exceptions/
200 | 5. Григорий Петров: "Работа с ошибками. Как ловить исключения и что потом с ними делать." https://www.youtube.com/watch?v=hzVECcMI8ys
201 | 6. Лекция про работу с исключениями от CSC https://www.youtube.com/watch?v=a6UtrJ4Xh-Y
202 | 7. Python Context Managers and the "with" Statement (`__enter__` & `__exit__`) (real python) https://www.youtube.com/watch?v=iba-I4CrmyA
203 | 8. How to Handle Exceptions in Python: A Detailed Visual Introduction https://www.freecodecamp.org/news/exception-handling-python/
204 | 9. Всё об исключениях и работе с ними в Python (Диджитализируй!) https://www.youtube.com/watch?v=89wpfOAgrCk
205 | 10. Mario Corchero - Exceptional Exceptions - How to properly raise, handle and create them https://www.youtube.com/watch?v=V2fGAv2R5j8
206 | 11. Python 101: Context Managers, by Mark McDonnell https://www.integralist.co.uk/posts/python-context-managers/
207 |
208 |
209 | ### Пакеты и модули. Pypi. pip и easy_install. virtualenv [^](#index "к оглавлению")
210 | 1. Ликбез по пакетам и шпаргалка по модулям в Python (Хекслет) https://ru.hexlet.io/blog/posts/likbez-po-paketam-i-shpargalka-po-modulyam-v-python
211 | 2. Python Modules and Packages – An Introduction (real python) https://realpython.com/python-modules-packages/
212 | 3. How to Publish an Open-Source Python Package to PyPI (real python) https://realpython.com/pypi-publish-python-package/
213 | 4. Dependencies Handling in Python (Julien Danjou) https://julien.danjou.info/dependencies-handling-in-python-automatic-update/
214 | 5. Лекция от CSC про модули https://www.youtube.com/watch?v=ISo-L-0xsoI
215 | 6. Installing Python Packages with pip and virtualenv / venv (Real pyrhon screencast) https://www.youtube.com/watch?v=UqkT2Ml9beg
216 | 7. Python import: Advanced Techniques and Tips https://realpython.com/python-import/
217 | 8. How to Publish an Open-Source Python Package to PyPI https://realpython.com/pypi-publish-python-package/
218 | 9. Python Virtual Environments: A Primer https://realpython.com/python-virtual-environments-a-primer/
219 | 10. Как опубликовать свою Python библиотеку на PyPI https://proglib.io/p/kak-opublikovat-svoyu-python-biblioteku-na-pypi-2020-01-28
220 | 11. How import works in Python (PyCon India 2018) https://www.youtube.com/watch?v=-mL5WBMseD4
221 | 12. What happens behind execution of an `import` statement? (Shivashis) [PyCon JP 2020] https://www.youtube.com/watch?v=0far0mS2lY8
222 | 13. Python Management and Project Dependencies, Mark McDonnell https://www.integralist.co.uk/posts/python-management/
223 | 14. Григорий Петров / Управление зависимостями в Python: история боли https://www.youtube.com/watch?v=fP8oGx6ZA5o
224 | 15. Unpack Python Packages – Deep dive into the wheels of python packaging https://www.youtube.com/watch?v=kO5Es7KKUIY
225 |
226 |
227 | ### Многопоточность. GIL. Многопроцессные приложения [^](#index "к оглавлению")
228 | 1. Многопоточность и GIL. Лекция от Computer Science center https://www.youtube.com/watch?v=nR8WhdcRJwM
229 | 2. What is the Python Global Interpreter Lock (GIL)? https://realpython.com/python-gil/
230 | 3. An Intro to Threading in Python (real python) https://realpython.com/intro-to-python-threading/
231 | 4. GIL (урок Otus) https://www.youtube.com/watch?v=hCOmbMRsJ8c
232 | 5. GIL в Python: зачем он нужен и как с этим жить - Доклад Г. Петрова https://www.youtube.com/watch?v=AWX4JnAnjBE
233 | 6. Злата Обуховская, Nvidia «Structured Concurrency. Что не так с асинхронностью в питоне?» https://www.youtube.com/watch?v=NmWzt7VdTgA
234 | 7. GIL: почему это боль и как с ним жить. Иван Меньших, RaRe Technologies https://www.youtube.com/watch?v=GGUIt1o_TNc
235 | 8. Константин Данилов. Многопоточность и синхронная/асинхронная обработка в Python https://www.youtube.com/watch?v=ZTBPpLfemaQ
236 | 9. Как устроен GIL в Python https://habr.com/ru/post/84629/
237 | 10. Global Interpreter Lock https://ru.wikipedia.org/wiki/Global_Interpreter_Lock
238 | 11. Grok the GIL: How to write fast and thread-safe Python https://opensource.com/article/17/4/grok-gil
239 | 12. Асинхронный Python: различные формы конкурентности https://habr.com/ru/post/421625/
240 | 13. Слайды доклада Д.Бизли "Understanding the Python GIL" http://www.dabeaz.com/python/UnderstandingGIL.pdf
241 | 14. Модуль `concurrent.futures` https://pymotw.com/3/concurrent.futures/
242 | 15. Speed Up Your Python Program With Concurrency https://realpython.com/python-concurrency/
243 | 16. Gevent для практикующего питониста https://vovkd.github.io/gevent-tutorial/
244 | 17. Потоки и процессы (не смешивать), Станислав Рудаков (+ пример использования gdb) [Minsk Python Meetup] https://www.youtube.com/watch?v=mrXsn3yyuDM
245 | 18. Tutorial: Santiago Basulto - Python Concurrency: from beginner to pro https://www.youtube.com/watch?v=18B1pznaU1o
246 | 19. Thread (and AsyncIO) Concurrency Visualization of JetBrains Pycharm and Idea https://www.jetbrains.com/help/pycharm/thread-concurrency-visualization.html
247 | 20. Python's Infamous GIL by Larry Hastings (для чего нужен GIL) https://www.youtube.com/watch?v=KVKufdTphKs
248 | 21. Concurrency In Python Concepts, Frameworks And Best Practices - Stefan Schwarzer (PyCon DE) https://www.youtube.com/watch?v=Do7JtnPh1Mg
249 | 22. Raymond Hettinger, Keynote on Concurrency, PyBay 2017 https://www.youtube.com/watch?v=9zinZmE3Ogk
250 | 23. Jacek Kolodziej: GIL: What's the hassle and why should I care? (PyCon CZ 2017) https://www.youtube.com/watch?v=ZvWmAIODi-s
251 | 24. Writing robust, readable, and maintainable concurrent programs in Python - PyCon APAC 2018 https://www.youtube.com/watch?v=DJnUctSQSGw
252 | 25. Concurrency vs Parallelism - PyCon APAC 2018 https://www.youtube.com/watch?v=HNjAgkybAdQ
253 | 26. 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
254 | 27. Grok the GIL Write Fast And Thread Safe Python (Jesse Jiryu Davis) PyCon 2017 https://www.youtube.com/watch?v=7SSYhuk5hmc
255 | 28. Убирая ГБИ (GIL) из Питона: Гилектомия (Д. Бизли) pycon 2016, русский перевод https://www.youtube.com/watch?v=48l_HOtAqAI
256 | 29. Действительно ли Python GIL уже мертв? (перевод статьи Anthony Shaw) https://habr.com/ru/company/otus/blog/458694/
257 | 30. Многопроцессность, многопоточность, асинхронность в Python и не только. Что это и как работает? (Диджитализируй!) https://www.youtube.com/watch?v=JIp14T9bvvc
258 | 31. «Обмен данными между процессами python» Yehor Nazarkin LvivPy#5 https://www.youtube.com/watch?v=IaW-1AoGAKc
259 | 32. Chin Hwee Ong - Speed Up Your Data Processing | PyData Global 2020 https://www.youtube.com/watch?v=E9sv2B3Bb20
260 |
261 |
262 | ### Асинхронное программирование. Event loop. Теория [^](#index "к оглавлению")
263 | 1. Асинхронное программирование в Python (урок OTUS) https://www.youtube.com/watch?v=LROBh6pgEp8
264 | 2. async / await - лекция от Computer Science Center https://www.youtube.com/watch?v=x6JZmBK2I8Y
265 | 3. Асинхронное программирование - Лекция Академии Яндекса https://www.youtube.com/watch?v=AXkOli6BsBY (ч.1), https://www.youtube.com/watch?v=IB4bJqmfjI0 (ч.2), https://www.youtube.com/watch?v=FFUYf8FHDlY (ч.3)
266 | 4. Demystifying Python's Async and Await Keywords от JetBrainsTV https://www.youtube.com/watch?v=F19R_M4Nay4
267 | 5. Алексей Кузьмин, ДомКлик «Асинхронность изнутри» https://www.youtube.com/watch?v=pZkerqks43Y
268 | 6. Доклад Д. Бизли Конкурентность в Питоне с нуля. Вживую. https://www.youtube.com/watch?v=ys8lW8eQaJQ
269 | 7. Аsync и await в production / Сергей Борисов (ДомКлик) https://www.youtube.com/watch?v=pN9A5kD_rK8
270 | 8. Основы асинхронности в Python - Курс лекций Олега Молчанова https://www.youtube.com/watch?v=ZGfv_yRLBiY
271 | 9. Что внутри у питона: откуда быть пошел async (доклад З. Обуховской, также рассказано про генераторы) https://www.youtube.com/watch?v=GX7AUAwpQ4I
272 | 10. Школа программистов HH: Python Async (Р. Чекалов) https://www.youtube.com/watch?v=VWEISe8TXUE
273 | 11. Дмитрий Ходаков, Avito «CPU bound задачи в веб-сервисах на Python» https://www.youtube.com/watch?v=OmBuXb7P9Ak
274 | 11. Аsync и await в production / Сергей Борисов (ДомКлик) https://www.youtube.com/watch?v=pN9A5kD_rK8
275 | 12. Что внутри asyncio. Александр Меренков, Antida software https://www.youtube.com/watch?v=V7iecSKgWLM
276 | 13. Asyncio: understanding async and await in Python https://www.youtube.com/watch?v=a_wWnxH2o0Y
277 | 14. Новый Python: Асинхронное всё, Иван Уваров https://cmc.basealt.ru/new-python.html
278 | 15. Реализация epoll в Linux (цикл статей) https://habr.com/ru/company/ruvds/blog/523946/
279 | 16. Юрий Селиванов, EdgeDB, Asyncio «Asyncio сегодня и завтра» https://www.youtube.com/watch?v=BhqeJGTji2I
280 | 17. Асинхронное программирование в Python (Кузьмин, ДомКлик) https://www.youtube.com/watch?v=OEFsdk1tqAU
281 | 18. Асинхронщина в Python (Полищук, MoscowPython) https://www.youtube.com/watch?v=lIkA0TDX8tE
282 | 19. Understanding Concurrency in Python! - Annie Cook https://www.youtube.com/watch?v=9g5IZDkwAC0
283 | 20. Miguel Grinberg Asynchronous Python for the Complete Beginner PyCon 2017 https://www.youtube.com/watch?v=iG6fr81xHKA
284 | 21. Combining ayncio and threads in the same application (Marc-Andre Lemburg) [PyCon JP 2020] https://www.youtube.com/watch?v=ci9z1NM6F0Y&t=230s
285 | 22. An introduction to concurrent programming with asyncio, Bruce Merry (PyCon SA 2018) https://www.youtube.com/watch?v=x1RXHcE3oVI
286 | 23. Sanic: Async Python (uvloop) with a familiar flask like feel, (PyCon SA 2018) https://www.youtube.com/watch?v=QtXUwEQS2pg
287 | 24. Thinking Outside the GIL with AsyncIO and Multiprocessing, John Reese (PyCon 2018) https://www.youtube.com/watch?v=0kXaLh8Fz3k
288 | 25. Artisanal Async Adventures(Jonas Obrist) (пишем свой asyncio) (PyCon JP 2018) https://www.youtube.com/watch?v=6doZo6eySCg
289 | 26. Deep Dive into Coroutine, Daehee Kim (PyCon Korea) (разбор байткода корутин. слайды на английском, понять можно) https://www.youtube.com/watch?v=NmSeLspQoAA
290 | 27. Adopting Python Asyncio in Large Scale Project (Instagram) – Jimmy Lai – PyCon Taiwan 2018 https://www.youtube.com/watch?v=ACgMTqX5Ee4
291 | 28. Running Python code in parallel and asynchronously (Michal Wysokinski) (EuroPython 2017) https://www.youtube.com/watch?v=ZKzCx4D5c3g
292 | 29. `asyncio.get_event_loop()` → what is that? (Kamal Marhubi) (Montreal-Python 2015) https://www.youtube.com/watch?v=2DmUvBtSdnI
293 | 30. Guide to Concurrency in Python with Asyncio, Mark McDonnell https://www.integralist.co.uk/posts/python-asyncio/
294 | 31. Async/await: асинхронные возможности в Python 3+ https://xakep.ru/2017/01/11/python-3-asyncio/
295 | 32. Лекция: Прикладной Python. Асинхронное программирование, Технострим https://www.youtube.com/watch?v=X9RRJG109a4 (+ семинар https://www.youtube.com/watch?v=h0Dm2TNXoP0)
296 | 33. Python Junior подкаст. Про асинхронность в питоне https://www.youtube.com/watch?v=Q2r76grtNeg
297 | 34. Что внутри asyncio, Александр Меренков https://habr.com/ru/post/453348/
298 | 35. Асинхронное программирование на практике – Дмитрий Орлов [Школа бекенд-разработки Яндекса] https://www.youtube.com/watch?v=nysVwISk9_c
299 | 36. Python Asyncio: The Complete Guide, Jason Brownlee https://superfastpython.com/python-asyncio/
300 |
301 |
302 | ### Асинхронные фреймворки и библиотеки [^](#index "к оглавлению")
303 | > Устаревшие (Twisted и Tornado), стандртные (asyncio, aiohttp), сыроватые новинки (sanic, vibora)
304 | 1. Дмитрий Ходаков, Авито «Tornado vs Aiohttp» https://www.youtube.com/watch?v=BbyVHtsIM1M (и статья https://habr.com/ru/company/avito/blog/435532/)
305 | 2. Различные асинхронные библиотеки от создателей `asyncio` https://github.com/aio-libs
306 | 3. Андрей Светлов, Python Core Developer «Aiohttp от автора» https://www.youtube.com/watch?v=5NrnBu1vcKo
307 | 4. Yury Selivanov - Asyncio in Python 3.7 and 3.8 https://www.youtube.com/watch?v=ReXxO_azV-w
308 | 5. Самые быстрые Python веб-фреймворки в 2019 (перевод статьи Maksim Larkin) https://habr.com/ru/post/440282/
309 | 6. Андрей Светлов: "Подводные камни asyncio" https://www.youtube.com/watch?v=GLN_xo4Awcc
310 | 7. Async IO in Python: A Complete Walkthrough https://realpython.com/async-io-python/
311 | 8. Asyncio: understanding async and await in Python https://www.youtube.com/watch?v=a_wWnxH2o0Y
312 | 9. uvloop — продвинутая реализация цикла событий для asyncio в Python https://habr.com/ru/post/282972/
313 | 10. Understanding Tornado fundamentals (объяснение про `@gen.coroutine`) https://bhch.github.io/posts/2017/06/understanding-tornado-fundamentals/
314 | 11. Я не люблю asyncio – Павел Камаев https://www.youtube.com/watch?v=Fj2t959Q7DA
315 | 12. Lynn Root - Advanced asyncio: Solving Real-world Production Problems - PyCon 2019 https://www.youtube.com/watch?v=bckD_GK80oY
316 | 13. Asyncio in the Wild, Ákos Hochrein (теория + обзор библиотек для asyncio) https://www.youtube.com/watch?v=EX4YsevmZBg
317 | 14. An introduction to concurrent programming with asyncio (Bruce Merry) (PyCon SA 2018) https://www.youtube.com/watch?v=x1RXHcE3oVI
318 | 15. Tornado in Depth [EuroPython 2012] (исторический доклад) https://www.youtube.com/watch?v=4Ztq-Yz1ero
319 | 16. import asyncio: Learn Python's AsyncIO (цикл подробных лекций про asyncio) https://www.youtube.com/watch?v=Xbl7XjFYsN4&list=PLhNSoGM2ik6SIkVGXWBwerucXjgP1rHmB
320 | 17. Екатерина Сударева - Асинхронность в Python. Начало https://www.youtube.com/watch?v=OmDKVuROsUM
321 | 18. Trio – асинхронное программирование для людей https://habr.com/ru/company/barsgroup/blog/490872/
322 | 19. 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
323 | 20. 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/ (цикл статей)
324 | 21. How to ensure asyncio task exceptions always get logged (Quantlane tech blog) https://quantlane.com/blog/ensure-asyncio-task-exceptions-get-logged/
325 |
326 |
327 | ### Работа с памятью [^](#index "к оглавлению")
328 | > Питон - очень неэкономный по памяти язык. Иногда возникают задачи, которые требуют знаний про то как питон работает с памятью (счетчик ссылок, арены и GC для циклических ссылок) и как можно эту память сэкономить.
329 | 1. «Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС https://www.youtube.com/watch?v=D0vbuIDOV4c
330 | 2. Python потребляет много памяти, или как уменьшить размер объектов. (доклад З.Шибзухова) https://www.youtube.com/watch?v=qUnzGUz_YxE
331 | 3. Что внутри у питона: как устроена память (доклад З. Обуховской) https://www.youtube.com/watch?v=lSgoYx06L_s
332 | 4. В. Синицын - Python: управление памятью https://www.youtube.com/watch?v=ZxvwZ4fX_qE
333 | 5. Nina Zakharenko - Memory Management in Python - The Basics https://www.youtube.com/watch?v=URNdRl97q_0
334 | 6. Всё, что нужно знать о сборщике мусора в Python (Artem Golubin) https://habr.com/ru/post/417215/
335 | 7. Модуль GC стандартной библиотеки - официальная документация https://docs.python.org/3/library/gc.html
336 | 8. Python memory managment 101 .Deeping garbage collector (J.M. Ortega, PyCon HK) https://www.youtube.com/watch?v=MHTJQao9Ex0
337 | 9. Основы управления памятью в Python https://webdevblog.ru/osnovy-upravleniya-pamyatju-v-python/
338 | 10. Memory Management in Python https://realpython.com/python-memory-management/ (перевод https://habr.com/ru/company/ruvds/blog/441568/)
339 | 11. Управление памятью в Python https://habr.com/ru/company/mailru/blog/336156/
340 | 12. Пару слов о профилировании памяти в Python https://otus.ru/nest/post/818/
341 | 13. Finding and Fixing Memory Leaks in Python (Peter Karb, Buzzfeed) https://tech.buzzfeed.com/finding-and-fixing-memory-leaks-in-python-413ce4266e7d
342 | 14. Pylint: о попытке снизить потребление памяти https://habr.com/ru/company/ruvds/blog/524940/
343 | 15. Эффективно работаем со сложными структурами данных в Python 3.7+ (Диджитализируй!) https://www.youtube.com/watch?v=tsEG0WM3m_M
344 | 16. Slots, slots, slots, everybody: an exploration of `__slots__` (Douglas Anderson) (PyCon Canada 2018) https://www.youtube.com/watch?v=AR3hD43HLNE
345 | 17. Python, Linkers, and Virtual Memory (PyCon US 2012) https://www.youtube.com/watch?v=twQKAoq2OPE
346 | 18. Python Tutorials - Memory size Memory management of Python data structures https://www.youtube.com/watch?v=E07JCf87_C8
347 | 19. Как работает память в Python, DomClick https://habr.com/ru/company/domclick/blog/530804/
348 | 20. Ультимативный гайд по поиску утечек памяти в Python, DomClick https://habr.com/ru/company/domclick/blog/532030/
349 | 21. How I Tried To Reduce Pylint Memory Usage https://rtpg.co/2020/10/12/pylint-usage.html
350 | 22. Python Memory Deep Dive for Speed and Efficiency, Michael Kennedy https://www.youtube.com/watch?v=d9mSIEIcTpo
351 | 23. Fabio Falzoi - An insight into Python Garbage Collection https://www.youtube.com/watch?v=pqCQ5AwCJqE
352 | 24. Помнить всё. Как работает память в Python (ProgLib) https://proglib.io/p/pomnit-vse-kak-rabotaet-pamyat-v-python-2021-03-14
353 |
354 |
355 | ### Вопросы производительности [^](#index "к оглавлению")
356 | > Несмотря на то, что питон - не самый быстрый язык, интерпретатор постоянно оптимизируют
357 | 1. Python — это медленно. Почему? https://habr.com/ru/company/ruvds/blog/418823/
358 | 2. Что я узнал про оптимизацию в Python (перевод статьи Gregory Szorc's) https://habr.com/ru/company/otus/blog/457942/
359 | 3. 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
360 | 4. Оптимизации, сделавшие Python 3.6 быстрее Python 3.5 https://www.youtube.com/watch?v=zMECweCmuA4
361 | 5. Anthony Shaw - Why is Python slow? (pycon) https://www.youtube.com/watch?v=I4nkgJdVZFA
362 | 6. Python, производительность, перспективы // Кирилл Борисов (Pytup) https://youtu.be/brA7HLZEN4w?t=8669
363 | 7. Что делать, если ваш код на Python тормозит / Григорий Бакунов (Яндекс) https://www.youtube.com/watch?v=77B2-Pk1fls
364 | 8. Григорий Петров - Почему Python медленный? https://www.youtube.com/watch?v=39XNklRQJI4
365 |
366 |
367 | ### Профайлинг [^](#index "к оглавлению")
368 | > Как и для других ЯП, для питона существует ряд статистических (низкий оверхед и более низкая точность) и инструментальных (более высокая точность и высокий оверхед) профилировщиков
369 | 1. Flamegraph семплирующий профайлинг https://www.youtube.com/watch?v=kRA0RZoycMQ
370 | 2. PyConBY 2020: Christian Heimes - Introduction to low level profiling and tracing https://www.youtube.com/watch?v=PXEP97uU0NQ
371 | 3. Summary Of Python Profiling Tools http://pramodkumbhar.com/2019/05/summary-of-python-profiling-tools-part-i/ (на этом сайте есть еще хорошие статьи о производительности)
372 | 4. Профилирование и отладка 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/ (событийное)
373 | 5. Крутой sampling-профайлер (строит флеймграфы также) https://github.com/benfred/py-spy (must-have, так как pyflame больше по поддерживается)
374 | 6. Алексей Кузьмин, ДомКлик «Поиск и оптимизация узких мест в Python» (+ про память) https://www.youtube.com/watch?v=tDZHhIiACDA
375 | 7. Flamegraph that! Self-service profiling tool for Node and Python services (Ruth Grace Wong, Pinterest) https://www.youtube.com/watch?v=w97I5q0hbkw
376 | 8. Иван Ремизов "Сверхоптимизация кода на Python" (PiterPy) доклад старый, но полезный https://www.youtube.com/watch?v=4CsOOfdoU2A
377 | 9. PyTrace — Time Travel Debugger для Python https://habr.com/ru/post/504908/
378 | 10. 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
379 | 11. Production-time Profiling for Python (Julien Danjou) https://www.youtube.com/watch?v=kLO81hMRwgI
380 | 12. Beyond cProfile: performance optimization with sampling profilers and logging https://www.youtube.com/watch?v=fOzVTPOWfQs
381 | 13. `/usr/bin/time -v python3 my_script.py` (`-l` для mac os)
382 | 14. Удобное профилирование простых скриптов в `ipython` https://jakevdp.github.io/PythonDataScienceHandbook/01.07-timing-and-profiling.html
383 | 15. Profiling Python by Example, Eyal Trabelsi (PyCon Sweden) Хороший обзор основных типов https://www.youtube.com/watch?v=9wfFXRCkkLE
384 | 16. Python Profiling and Performance Tuning - PyCon APAC 2016 (Joe Gordon ) https://www.youtube.com/watch?v=noxCqWJieB4
385 | 17. Python Profilers We Built for Efficiency – PyCon Taiwan 2019 https://www.youtube.com/watch?v=liOWqXkAy8s
386 | 18. Emin Martinian - Statistical Profiling (and other fun with the sys module) - PyCon 2019 https://www.youtube.com/watch?v=d5SGUscT2GA
387 | 19. Flame graph новый взгляд на привычное профилирование, Кирилл Борисов, Яндекс https://www.youtube.com/watch?v=pa_kAkXuOyA
388 | 20. 9 nifty libraries for profiling Python code (InfoWorld) https://www.infoworld.com/article/3600993/9-nifty-libraries-for-profiling-python-code.html
389 | 21. Новая интересная тулза для профилирования памяти https://github.com/bloomberg/memray
390 |
391 |
392 | ### Логирование и трейсинг [^](#index "к оглавлению")
393 | 1. Трейсинг в микросервисной архитектуре на Python https://www.youtube.com/watch?v=DpndyJ-CK5s
394 | 2. Читаем исходники open source Python библиотек. Библиотека Loguru (Диджитализируй!) https://www.youtube.com/watch?v=g6zzZxxifAw
395 | 3. Про Jaeger: как мы внедряли распределенную трассировку запросов, Амангельды Кыдыл https://www.youtube.com/watch?v=O5I301lYjzM
396 | 4. Mario Corchero - Effortless Logging: A deep dive into the logging module - PyCon 2018 https://www.youtube.com/watch?v=Pbz1fo7KlGg
397 | 5. OpenTracing with Jaeger - Utah Go User Group https://www.youtube.com/watch?v=GccUVCI5TkM
398 | 6. OpenTracing не только для распределенной трассировки. Константин Черкасов, Lazada https://www.youtube.com/watch?v=nHgfJ943z2I
399 | 7. OpenTelemetry // Андрей Гейн (Pytup) https://www.youtube.com/watch?v=brA7HLZEN4w&t=1864s
400 |
401 |
402 | ### Модули на C (C++, Rust, Go) и ctypes [^](#index "к оглавлению")
403 | > Когда нужно писать модуль на C: тяжелые вычисления, чтобы отпустить gil, чтобы использовать какую-либо сишную библиотеку, при работе с бинарными данными, для низкоуровневых задач, когда требуется особая работа с памятью
404 | 1. Building a Python C Extension Module (real python) https://realpython.com/build-python-c-extension-module/
405 | 2. Производительность в Python. Легкий путь (o ctypes) https://habr.com/ru/post/157537/ (дока https://docs.python.org/3/library/ctypes.html)
406 | 3. Python — Программирование расширений на C https://coderlessons.com/tutorials/python-technologies/vyuchit-piton/python-programmirovanie-rasshirenii-na-c
407 | 4. C/C++ из Python (ctypes) (хабр) https://habr.com/ru/post/466499/
408 | 5. Как писать модули для питона на C и go (первый доклад pytup'a) https://youtu.be/tpKs4UVe3Bk?t=487
409 | 6. Андрей Светлов - Оптимизация производительности при помощи Cython https://www.youtube.com/watch?v=5-WoT4X17sk
410 | 7. Anton Zhdan-Pushkin: Under the hood of calling C/C++ from Python https://azhpushkin.me/posts/python-c-under-the-hood
411 | 8. Расширение Python на C: заставляем Python ползти быстрее // Бесплатный урок Otus https://www.youtube.com/watch?v=yUJwYluM9ao
412 | 9. Cython as a Game Changer for Efficiency (Alex Orlov) PyCon 2017 https://www.youtube.com/watch?v=_1MSX7V28Po
413 | 10. Why should you learn writing C extension? (Gavin Chan) (Hong Kong) - PyCon HK 2020 Spring https://www.youtube.com/watch?v=FOwV8apw_nQ
414 | 11. Call C code quickly and compatibly with CFFI (Zachary Voase) (PyCon Canada 2018) https://www.youtube.com/watch?v=EdUa5Sbf-4U
415 | 12. Bringing C performance to Python code, about Cython (Jan Škoda) (PyCOn CZ 2017) https://www.youtube.com/watch?v=G2yY3unaF0I
416 | 13. Pumping up Python modules using Rust - PyCon APAC 2018 https://www.youtube.com/watch?v=rqmGnggorLI
417 | 14. Любовь. Python. C++ // Александр Букин (Pytup) https://www.youtube.com/watch?v=brA7HLZEN4w&t=0s
418 | 15. Writing Python extensions in Rust https://www.youtube.com/watch?v=BgzIaEzXEBU
419 | 16. Tadas Barzdžius. Speeding up Python with Rust (PyCon LT) https://www.youtube.com/watch?v=5vkvy29tL28
420 |
421 |
422 | ### Тестирование [^](#index "к оглавлению")
423 | > Популярные библиотеки - pytests и unittest. Дата-провайдеры и фикстуры. Доктесты
424 | 1. Введение в автотесты. Вебинар от OTUS https://www.youtube.com/watch?v=EBMXOsCL9AA
425 | 2. Тестирование. Лекция из Академии Яндекса https://www.youtube.com/watch?v=2-EBSIRs0H4&list=PLQC2_0cDcSKBHamFYA6ncnc_fYuEQUy0s&index=4
426 | 3. Лекция про тестирование от CSC https://www.youtube.com/watch?v=VomXaukdWxo
427 | 4. TDD c pytest и без него. Урок OTUS https://www.youtube.com/watch?v=lxVv8cdSTsw
428 | 5. Эффективное тестирование с pytest (урок OTUS) https://www.youtube.com/watch?v=saf1_VmMz5U
429 | 6. Автоматизация тестирования API (pytest) https://www.youtube.com/watch?v=niDC5OlM8eI
430 | 7. Сергей Борисов, ДомКлик, мастер-класс "Тестирование асинхронных приложений" https://www.youtube.com/watch?v=BXn30wqy-og
431 | 8. Workshop: Modern Python Developer's Toolkit, Sebastian Witowski (в т.ч. про pytest) https://youtu.be/om4BSW-lpd8?t=3559
432 | 9. Pytest: введение в автотесты (урок OTUS) https://www.youtube.com/watch?v=gEkF0He5L04
433 | 10. Raphael Pierzina - Advanced pytest (EuroPython 2019) https://www.youtube.com/watch?v=gJtE-anbcww
434 | 11. Productive pytest with PyCharm (JetBrainsTV) https://www.youtube.com/watch?v=ixqeebhUa-w
435 | 12. How to Write Pytest Plugins - Darlene Wong (PyBay 2019) https://www.youtube.com/watch?v=QwDhzFkE9J4
436 | 13. Automated testing with pytest and fixtures (PyGotham 2017) https://www.youtube.com/watch?v=8mp_1Jt-xHQ
437 | 14. Mocking in Python, Mark McDonnell https://www.integralist.co.uk/posts/mocking-in-python/
438 |
439 |
440 | ### Утилиты для улучшения качества кода [^](#index "к оглавлению")
441 | 1. Python Code Quality: Tools & Best Practices https://realpython.com/python-code-quality/
442 | 2. Как прокачать линтер. Максим Мазаев https://www.youtube.com/watch?v=HZPRoz8V6jk (этот же доклад https://www.youtube.com/watch?v=ZKoBZkdYLiM и статья https://habr.com/ru/company/oleg-bunin/blog/433474/)
443 | 3. Презентация "HOW TO WRITE PYLINT PLUGINS" Александра Тодорова https://piterpy.com/system/attachments/files/000/001/519/original/how_to_write_pylint_plugins_PiterPy_2018.pdf
444 | 4. Аннотации типов в Python 3 (урок OTUS) https://youtu.be/I09iX8aoCsw?t=313
445 | 5. «Модифицируй это!» или «Больше магии Python с помощью изменения AST» (А. Маршалов) https://www.youtube.com/watch?v=Zv6yT-ytIvg
446 | 6. Инструменты для анализа кода Python https://proglib.io/p/python-code-analysis (ч.1), https://proglib.io/p/python-code-analysis-tools (ч.2)
447 | 7. Г. Петров PyRe: еще один type checker https://www.youtube.com/watch?v=-Lz81ex3jP8
448 | 8. Разработка плагинов к mypy / Владимир Пузаков https://www.youtube.com/watch?v=l7hDWA5uC0A
449 | 9. Python Type Checking (Guide) https://realpython.com/python-type-checking/
450 | 10. Bernat Gabor - Type hinting (and mypy) - PyCon 2019 https://www.youtube.com/watch?v=hTrjTAPnA_k
451 | 11. Максим Мазаев, ЦИАН "Проверка типов в большом проекте" https://www.youtube.com/watch?v=iEuTGu1ks7I
452 | 12. Łukasz Langa - Life Is Better Painted Black, or: How to Stop Worrying and Embrace Auto-Formatting https://www.youtube.com/watch?v=esZLCuWs_2Y
453 | 13. Dustin Ingram - Static Typing in Python (pycon) https://www.youtube.com/watch?v=ST33zDM9vOE
454 | 14. Как работать с типизацией в Python (tproger) https://tproger.ru/articles/python-typing/
455 | 15. Alexander Todorov: "How to write pylint plugins" / #PiterPy https://www.youtube.com/watch?v=3CkSKUNMLJc
456 | 16. Добровольная типизация в Python 3 (и не только), Максим Кольцов / PiterPy Meetup #12 https://www.youtube.com/watch?v=EU9DoJD1olo
457 | 17. Refactoring Code With the Standard Library (AST/CST), John Reese, PyCon AU 2018 https://www.youtube.com/watch?v=9USGh4Uy-xQ
458 | 18. A flake8 plugin from scratch (intermediate) anthony explains https://www.youtube.com/watch?v=ot5Z4KQPBL8
459 |
460 |
461 | ### Вопросы безопасности [^](#index "к оглавлению")
462 | 1. Security considerations in Python Packaging https://www.youtube.com/watch?v=tHlMw9zFgQE
463 |
464 |
465 | ### WCGI [^](#index "к оглавлению")
466 | 1. Введение в WSGI-серверы: Часть первая https://habr.com/ru/post/426957/
467 | 2. Анализ производительности WSGI-серверов: Часть вторая https://habr.com/ru/post/427217/
468 | 3. WSGI Servers (Full Stack Python) https://www.fullstackpython.com/wsgi-servers.html
469 |
470 |
471 | ### Работа с СУБД. Драйверы. Популярные ORM [^](#index "к оглавлению")
472 | > Самые популярные ORM для питона - SQLAlchemy и Django ORM, pewee.
473 | 1. Introduction to Python SQL Libraries (real python) https://realpython.com/python-sql-libraries/
474 | 2. "Let's Build an ORM" - Greg Back (Pyohio 2019) https://www.youtube.com/watch?v=6rw0p9AOYb8
475 | 3. Object-relational Mappers (ORMs) (обзор, fullstackpython) https://www.fullstackpython.com/object-relational-mappers-orms.html
476 | 4. Python: Работа с базой данных (хабр) https://habr.com/ru/post/321510/ (db-api), https://habr.com/ru/post/322086/ (orm)
477 | 5. Асинхронные драйверы для работы с различными БД от создателей `asyncio` https://github.com/aio-libs
478 | 6. Список асинхронных драйверов для БД https://github.com/timofurrer/awesome-asyncio#database-drivers
479 | 7. SQLAlchemy ORM: удобная работа с базами данных на Python (ITVDN) https://www.youtube.com/watch?v=PAKJpfxeXjc
480 | 8. Сравнение технологий aiopg & asyncpg, Алексей Фирсов / PyDaCon meetup https://www.youtube.com/watch?v=bY6ZU0-26TA
481 | 9. "SQLAlchemy: Python vs Raw SQL" Денис Катаев https://www.youtube.com/watch?v=jUGK-CtM-Mk
482 | 10. "Пишем приложения на SQLAlchemy" Денис Катаев https://www.youtube.com/watch?v=vXBlOvmzs_0
483 |
484 |
485 | ### Работа с данными [^](#index "к оглавлению")
486 | 1. Python NumPy Tutorial for Beginners (Freecodecamp.org) https://www.youtube.com/watch?v=QUT1VHiLmmI
487 | 2. Pandas: How to Read and Write Files https://realpython.com/pandas-read-write-files/
488 | 3. The Pandas DataFrame: Make Working With Data Delightful https://realpython.com/pandas-dataframe/
489 | 4. Using Pandas and Python to Explore Your Dataset https://realpython.com/pandas-python-explore-dataset/
490 | 5. NumPy, SciPy, and Pandas: Correlation With Python https://realpython.com/numpy-scipy-pandas-correlation-python/
491 | 6. Python Statistics Fundamentals: How to Describe Your Data https://realpython.com/python-statistics/
492 | 7. Data Analysis with Python - Full Course for Beginners (Numpy, Pandas, Matplotlib, Seaborn) https://www.youtube.com/watch?v=r-uOLxNrNk8
493 | 8. 6 способов значительно ускорить pandas с помощью пары строк кода https://habr.com/ru/post/503726/
494 | 9. A Beginner’s Guide to Optimizing Pandas Code for Speed https://engineering.upside.com/a-beginners-guide-to-optimizing-pandas-code-for-speed-c09ef2c6a4d6
495 | 10. Kevin Markham - Data Science Best Practices with pandas - PyCon 2019 https://www.youtube.com/watch?v=ZjrUmNq41Eo
496 |
497 |
498 | ### Работа с файлами [^](#index "к оглавлению")
499 | 1. Working With Files in Python https://realpython.com/working-with-files-in-python/
500 |
501 |
502 | ### Сетевое программирование [^](#index "к оглавлению")
503 | 1. Python 3 — Сетевое программирование https://coderlessons.com/tutorials/python-technologies/izuchite-python-3/python-3-setevoe-programmirovanie
504 | 2. Network Programming with Python Course (freeCodeCamp.org) https://www.youtube.com/watch?v=FGdiSJakIS4
505 | 3. Сокеты в Python для начинающих https://habr.com/ru/post/149077/
506 |
507 |
508 | ### GUI [^](#index "к оглавлению")
509 | > На питоне можно разрабатывать программы с графическим интерфейсом - для этого есть несколько популярных библиотек
510 | 1. Серия статей Python GUI Programming (RealPython). Обзор библиотек PySimpleGUI, Tkinter, PyQt, wxPython https://realpython.com/learning-paths/python-gui-programming/
511 | 2. Python GUI: создаём простое приложение с PyQt и Qt Designer (tproger) https://tproger.ru/translations/python-gui-pyqt/
512 | 3. 13 GUI-библиотек Python https://techrocks.ru/2018/04/26/13-python-gui-frameworks/
513 | 4. Серия статей о PyQT5 с примерами http://zetcode.com/gui/pyqt5/
514 | 5. Tkinter Course - Create Graphic User Interfaces in Python Tutorial (freecodecamp) https://www.youtube.com/watch?v=YXPyB4XeYLA
515 | 6. Создание desktop-приложений на Python (доклад на MoscowPython) https://www.youtube.com/watch?v=nz6G_ta3of0
516 | 7. PyQt Layouts: Create Professional-Looking GUI Applications (realpython) https://realpython.com/python-pyqt-layout/
517 |
518 |
519 | ### Мониторинг приложений средствами ОС [^](#index "к оглавлению")
520 | 1. Более чем 80 средств мониторинга системы Linux https://habr.com/ru/company/ua-hosting/blog/281519/
521 | 2. Strace в Linux: история, устройство и использование https://habr.com/ru/company/badoo/blog/493856/
522 | 3. Краткий гайд по использованию GDB https://habr.com/ru/post/491534/
523 | 4. Sysdig — инструмент для диагностики Linux-систем https://habr.com/ru/company/selectel/blog/222839/
524 | 5. Perf и flamegraphs https://habr.com/ru/company/selectel/blog/437808/
525 | 6. perf-tools by Brendan Gregg https://github.com/brendangregg/perf-tools, http://www.brendangregg.com/perf.html
526 | 7. htop и многое другое на пальцах https://habr.com/ru/post/316806/
527 | 8. Как посмотреть потоки процесса в Linux https://losst.ru/kak-posmotret-potoki-protsessa-v-linux
528 | 9. Удивительно полезный инструмент: lsof https://habr.com/ru/company/ruvds/blog/337934/
529 | 10. Brebdan Gregg: perf Examples (профилирующая тулза) http://www.brendangregg.com/perf.html
530 | 11. Sysdig — инструмент для диагностики Linux-систем https://habr.com/ru/company/selectel/blog/222839/
531 | 12. Отлаживаем развертывание ПО со strace https://habr.com/ru/company/southbridge/blog/478626/
532 | 13. Как узнать оперативную память Linux https://losst.ru/ispolzovanie-operativnoj-pamyati-linux
533 | 14. Чудеса трассировки: Решение проблем с приложениями при помощи утилиты strace https://xakep.ru/2011/01/13/54477/
534 | 15. Файловая система proc в Linux https://losst.ru/fajlovaya-sistema-proc-v-linux
535 | 16. Перевод комиксов Джулии Эванс про системные утилиты https://firstvds.ru/blog/julia_evans
536 | 17. Изучаем трассировку с помощью eBPF: Руководство и примеры https://habr.com/ru/post/435142/
537 | 18. Трассировка и профайлинг в Linux с помощью bcc/eBPF https://eax.me/bcc-ebpf/
538 | 19. BpfTrace - наконец, полноценная замена Dtrace в Linux / Пётр Зайцев (Percona) https://www.youtube.com/watch?v=6ExXwQecMrs
539 | 20. Introduction to profiling python performance with USDT https://www.youtube.com/watch?v=Zv3--YaaIe0
540 | 21. Установка и простые примеры использования SystemTap https://eax.me/systemtap/
541 | 22. Instrumenting CPython with DTrace and SystemTap https://docs.python.org/3/howto/instrumentation.html
542 | 23. Dive into BPF performance tools using python Андрей Солдатенко https://www.youtube.com/watch?v=8S8zwJBOD0w
543 | 24. Tracing, Profiling & Debugging in Production (eBPF) - Trent Lloyd (PyCon AU 2019) https://www.youtube.com/watch?v=jXzEzmz-oag
544 | 25. Команда top в Linux https://losst.ru/komanda-top-v-linux
545 | 26. Полнофункциональная динамическая трассировка в Linux с использованием eBPF и bpftrace https://www.itsumma.ru/knowledges/blog/tracing
546 | 27. Velocity 2017: Performance Analysis Superpowers with Linux eBPF https://www.youtube.com/watch?v=bj3qdEDbCD4
547 | 28. Jesús Cea Avión - Python and DTrace https://www.youtube.com/watch?v=HwqvHUGyGTE
548 | 29. Root Cause Analysis with eBPF & Python - Pavel Rogovoy - PyCon Israel 2019 https://www.youtube.com/watch?v=hEBZ_htE0IQ
549 | 30. 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
550 | 31. Вглубь ядра: знакомство с LTTng https://habr.com/ru/company/selectel/blog/300966/
551 | 32. BPF code with Python: A Gentle Introduction to BPF part 2 (Michael Mullin) https://www.youtube.com/watch?v=ayxHANt1YaI
552 |
553 |
554 | ### Нагрузочное тестирование python-приложений [^](#index "к оглавлению")
555 | 1. Python инструменты для нагрузочного тестирования https://www.youtube.com/watch?v=-kWm5V9pyCY
556 | 2. Открытые бенчмарки для нагрузочного тестирования серверов и веб-приложений https://habr.com/ru/company/1cloud/blog/474474/
557 | 3. Load Testing with Vegeta https://www.scaleway.com/en/docs/vegeta-load-testing/
558 | 4. Locust: нагрузочное тестирование веб-сервисов / Алексей Романов https://www.youtube.com/watch?v=65Xa__DMhAw
559 |
560 |
561 | ## Полезное [^](#index "к оглавлению")
562 |
563 | ### Must-read книги [^](#index "к оглавлению")
564 | 1. Лучано Рамальо: Python. К вершинам мастерства (Fluent Python) https://www.ozon.ru/context/detail/id/135305378/
565 | 2. Данжу Джульен: Путь Python. Черный пояс по разработке, масштабированию, тестированию и развертыванию https://www.ozon.ru/context/detail/id/158868396/
566 | 3. Бейдер Дэн: Чистый Python. Тонкости программирования для профи https://www.ozon.ru/context/detail/id/146393762/
567 | 4. Mohamed Mustapha Tahrioui: asyncio Recipes. A Problem-Solution Approach https://www.apress.com/gp/book/9781484244005
568 | 5. Caleb Hattingh: Using Asyncio in Python https://www.oreilly.com/library/view/using-asyncio-in/9781492075325/
569 |
570 | ### Telegram-каналы [^](#index "к оглавлению")
571 | 1. pythonist.ru (статьи и задачки для собеседований) https://t.me/pythonist_ru
572 | 2. Книги https://t.me/python_textbooks
573 | 3. Задачки, в основном несложные https://t.me/pythonquestions
574 | 4. Англоязычный канал со статьями https://t.me/pythonl
575 | 5. Тесты https://t.me/pythontesti
576 | 6. Proglib (статьи, не только питон) https://t.me/proglibrary
577 | 7. Лучшие статьи https://t.me/zen_of_python
578 |
579 | ### Тесты и задачки для проверки знаний [^](#index "к оглавлению")
580 | 1. Real Python Quizzes https://realpython.com/quizzes/
581 | 2. PYnative Python Quizes https://pynative.com/python-quizzes/
582 |
583 | ### Рассылки
584 | 1. Еженедельная рассылка со свежими новостями и полезностями https://pycoders.com/
585 |
586 | ### Митапы и конференции [^](#index "к оглавлению")
587 | 1. Moscow python meetup (+ Moscow python conf) https://www.youtube.com/user/moscowdjangoru
588 | 2. Minsk python meetup https://www.youtube.com/user/pythonMinsk
589 | 3. Python Meetup Chelyabinsk https://www.youtube.com/channel/UCpMh_XSn7yGPabFBYzY5hKg
590 | 4. Python Новосибирск https://www.youtube.com/c/PyNSK/
591 | 5. PyCon Russia https://www.youtube.com/user/videoitpeople/videos
592 | 6. Moscow Python Conf++ https://www.youtube.com/channel/UCqC1iSQnRIDz_rOy8LHe69g
593 | 7. EuroPython Conference https://www.youtube.com/c/EuroPythonConference
594 |
--------------------------------------------------------------------------------