39269
Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Курс по ML: https://cl Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
🔥 Как сейчас обстоят дела с Python type-checker’ами
🚀 Если коротко, рынок заметно сдвинулся: Pyrefly и Ty уже не просто «альтернатива», а реальные лидеры по скорости. И это видно не только в тестах, а на реальных проектах.
⏱️ На практике это выглядит так:
— маленькие проекты: разница почти незаметна (доли секунды)
— средние и большие: разрыв становится драматичным
— где Pyright/Mypy → десятки секунд или минуты
— Pyrefly/Ty → обычно укладываются в секунды
В CI или при активной разработке это напрямую превращается в экономию времени и более быстрый фидбек.
🧠 Отдельно про память — и тут тоже есть разница:
— Pyrefly часто потребляет меньше RAM
— особенно заметно на больших проектах
— пример с numpy:
• Pyright → ~70 сек и >3 ГБ
• Pyrefly → ~4.8 сек и ~1 ГБ
⚖️ Поэтому выбор всё ещё зависит от приоритетов:
— нужна стабильность → смотри в сторону Mypy/Pyright
— важна скорость → Pyrefly/Ty уже впереди
🔛 Полный обзор
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
Библиотека питониста
#развлекалово
🔥 Кого реально стоит читать питонисту в 2026
Давайте соберём «карту внимания» 👇
Кого вы реально читаете / смотрите из мира Python и IT? Кого-то из русскоязычной тусовки?
Не просто «знаю имя», а за кем следите регулярно — блоги, Twitter/X, YouTube, Telegram, GitHub.
👉 Формат простой
Кидайте в комменты:
— ник / имя
— где читаете (YouTube, TG, X и т.д.)
— за что именно (разборы, код, мысли, карьера и т.п.)
Я начну:
— Guido van Rossum — иногда пишет, но это база
— Armin Ronacher — мысли про Python и backend
— Andrej Karpathy — топ про AI и код
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🌳 Деревья в алгоритмах — быстрый гайд по иерархическим структурам
Деревья — одна из самых частых тем на собеседованиях и в реальных системах.
Если понять базу, закрывается огромный пласт задач.
👉 Что такое дерево:
Это структура данных, где элементы связаны иерархически: есть корень → ветки → листья.
Примеры из жизни:
— файловая система
— DOM в браузере
— организационные структуры
Базовые типы деревьев:
— Бинарное дерево — у каждого узла максимум 2 потомка
— Бинарное дерево поиска (BST) — слева меньше, справа больше
— Сбалансированные деревья (AVL, Red-Black) — держат высоту под контролем
— Trie — для строк и префиксов
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🗓 В следующий вторник (28.04) в 19:00 встречаемся в онлайне.
Тема:
Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены
🚀 Plain — новый Python-фреймворк, переосмысленный под эпоху AI-агентов
Появился интересный проект — Plain Python framework.
Это форк Django, но сильно переработанный под современные реалии.
💡 Что отличает Plain:
— строгая типизация «из коробки» (типы проходят через всё: модели → вьюхи → API)
— PostgreSQL-only (никаких компромиссов с БД)
— минимализм и явность вместо «магии»
— встроенная наблюдаемость (трейсы, медленные запросы и т.д.)
🤖 Самое интересное — интеграция с агентами:
— встроенные “rules” (чтобы агент не косячил)
— доступ к документации прямо из CLI
— команды вроде /plain-optimize или /plain-bug
То есть фреймворк буквально проектируется так, чтобы с ним работали AI-кодеры.
30+ пакетов: от auth и API до аналитики, фич-флагов и админки — всё в одном стиле и с общей философией.
Plain — это попытка переизобрести Django под новую реальность, где код пишет не только человек, но и агент.
Пока сырой, но направление очень показательное.
👇 Cтали бы пробовать такой стек вместо Django/FastAPI?
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#свежак
⚠️ В Python откатили новый сборщик мусора
Неожиданная новость из мира Python: новый incremental GC, который добавили в 3.14, решили откатить назад.
После релиза Python 3.14 начали приходить жалобы — в продакшене выросло потребление памяти. Не у всех, но проблема оказалась достаточно серьёзной.
👉 Что решили:
— убрать новый GC из 3.14 и 3.15
— вернуть старый, проверенный generational GC из 3.13
— возможно, попробовать снова в 3.16, но уже через полноценный PEP и тестирование
Даже несмотря на то, что это патч-релиз (что обычно не делают), старый GC — предсказуемый и стабильный, а новый не прошёл полноценный процесс обсуждения.
👉 Интересный момент:
Идею оставить оба GC (на выбор) обсуждали, но отказались — слишком сложно поддерживать и рискованно.
🔗 Ссылка на новость
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#свежак
☑️ 7 бесплатных курсов по Python
Хочешь прокачать Python, но не знаешь, с чего начать или куда двигаться дальше?
Вот подборка курсов, которые реально помогут:
1. Программирование для каждого (Начало работы с Python)
2. Computing in Python I: Fundamentals and Procedural Programming
3. An Introduction to Interactive Programming in Python (Part 1)
4. Scientific Computing with Python
5. Crash Course on Python
6. Introduction to Computer Science and Programming Using Python
7. Using Python for Research
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
💡 Шпаргалка по спискам для новичков
Эти методы используются почти в каждом проекте
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
🦾 Надоело чинить «упавших» ИИ-агентов после каждого микросбоя внешних сервисов?
Анонсируем старт продаж большого курса по AgentOps. Мы собрали опыт десятков разработчиков и сделали программу, которая учит выводить ИИ в стабильный прод.
🗓 Ждем вас 28 апреля в 19:00 МСК на эфире: «Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены».
👉 Кто вещает и в чем польза?
Спикер Кирилл Кухарев (Senior AI Engineer в Raft, спикер AI Conf и Highload++). Он реализовал более 50 коммерческих проектов в GenAI и на вебинаре покажет, как взять под контроль работу нескольких агентов, чтобы они не перекидывали друг другу лишний контекст и не сжигали ваши деньги.
В прямом эфире разберем:
• Как формируется контекст в LLM при маршрутизации между агентами;
• Куда утекают лишние токены и возникает перерасход;
• Практические методы: как сжимать историю, грамотно делить задачи, лимитировать передачу контекста и собирать промпты прямо в процессе запроса пользователя.
🔥 Два способа получить максимум:
1. Приходите на вебинар 28 апреля. Дарим участникам промокод на 5.000 ₽ (работает 3 дня после эфира - это шанс забрать курс по самому низу рынка).
2. Выбирайте Инженерный трек. В подарок к нему идет полный доступ к записям и автопроверкам завершенного курса «Разработка ИИ-агентов».
👉 Занять место на вебинаре и стать профи в AgentOps
🤖 Ваш ИИ-агент съедает бюджет на токены и падает при сбоях API?
Пора переходить на новый уровень. Открыли продажи курса по AgentOps — управлению ИИ-агентами в рабочих процессах.
Рынок требует инженеров, которые умеют:
• Контролировать метрики и качество ответов;
• Эффективно работать с RAG-архитектурой;
• Строить системы, готовые к реальным нагрузкам.
Обучение займет 6-12 недель под руководством практиков с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Сбер, МТС, Huawei, Raft и др.
🎁 Можно подождать, пока про AgentOps начнут говорить все. Или зайти сейчас — НА 30% ДЕШЕВЛЕ!
Работа с AI начинается с систем.
Системы — с AgentOps.
Библиотека питониста
#развлекалово
🔥Золотой стандарт по Computer Science
Фундаментальный курс по алгоритмам и структурам данных.
Если вы планируете изучать Computer Science самостоятельно или хотите освежить знания, эта программа охватывает всё: от анализа сложности до динамического программирования и теории графов.
🔗 Ссылка на лекции
⚙️ Секретный файл .pdbrc
Мало кто знает, что при запуске PDB ищет файл .pdbrc в вашем домашнем каталоге или в текущей папке проекта.
В этом файле можно прописать алиасы — сокращенные команды, которые выполняют сложные цепочки Python-кода.
🛠 5 киллер-фич для вашего дебаггера
Добавьте эти строки в файл ~/.pdbrc, чтобы получить суперспособности при отладке:
1️⃣ `dir obj` — выводит все атрибуты и методы объекта в красивом формате, скрывая служебные «дандер»-методы (`__init__` и т.д.).
2️⃣ `attrs obj` — показывает только данные (атрибуты), игнорируя функции и методы. Идеально для осмотра состояния объекта.
3️⃣ `vars obj` — выводит только переменные экземпляра (то, что лежит в `__dict__`).
4️⃣ `src obj` — самая крутая фишка. Показывает исходный код функции или класса прямо в консоли дебаггера с указанием файла и строки.
5️⃣ `loc` — выводит список всех локальных переменных в текущем фрейме.
Представьте, что вы остановились на брейкпоинте и у вас есть объект c (экземпляр TextCalendar`). Вместо невнятного `<__main__.TextCalendar object...>, вы вводите:
(Pdb) attrs c
# Вывод:
c._firstweekday = 0
c.firstweekday = 0
(Pdb) src c.prmonth
# Вывод:
/path/to/calendar.py on line 404:
def prmonth(self, theyear, themonth, w=0, l=0):
print(self.formatmonth(theyear, themonth, w, l), end='')
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ
Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные сервисы (в т.ч. для Сбера).
Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.
🛠 Стек и фреймворки:
DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).
Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.
MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.
📖 Документация, которую нужно знать:
Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.
OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.
Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.
🔬 Хардкорные статьи и препринты (на выходные):
Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.
How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.
MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.
InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.
Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде
🎁 Акция в честь старта продаж!
Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.
👉 Забрать 2 курса по цене 1 и начать обучение
📌 Шпаргалка по Python для новичков: краткий справочник
🔢 Переменные и типы данных
Python — язык с динамической типизацией (вам не нужно указывать тип данных вручную).
🔢 Коллекции данных
— List (Списки): Изменяемые, упорядоченные (`[1, 2, 3]`).
— Tuple (Кортежи): Неизменяемые (`(1, 2, 3)`).
— Set (Множества): Только уникальные элементы, без порядка (`{1, 2, 3}`).
— Dict (Словари): Пары "ключ: значение" (`{"name": "Siree"}`).
🔢 Условные операторы
Используются для логических развилок:if — если условие верно.elif — если предыдущее не подошло, проверяем это.else — если ничего не подошло.
🔢 Циклыfor — для перебора элементов (например, в диапазоне `range`).while — выполняется, пока условие истинно.
🔢 Функции
Объявляются через ключевое слово def. Позволяют группировать код для повторного использования.
🔢 List Comprehension (Генераторы списков)
Крутая фишка Python, позволяющая создавать новые списки в одну строку. Например:squares = [x**2 for x in nums] — возводит каждое число из списка в квадрат.
🔢 Обработка исключений
Блок try...except нужен, чтобы программа не "падала" при возникновении ошибки (например, при попытке превратить буквы в число).
🔢 Работа с файлами
Всегда рекомендуется использовать конструкцию with open(...), так как она автоматически закрывает файл после работы с ним.
🔢 ООП (Классы и Объекты)
Классы позволяют создавать свои структуры данных с методами (функциями) и атрибутами (переменными).__init__ — конструктор, который срабатывает при создании объекта.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🚀 Polars 1.40.0: свежий апдейт
Polars явно движется в сторону out-of-core обработки.
🔥 Что реально важно
— Streaming join_asof (с группировками)
Если вы работаете с таймсериями — это закрывает давнюю боль.
Теперь можно джойнить огромные таблицы по времени без MemoryError.
👉 Новый менеджер памяти (spill-to-disk)
Если раньше всё упиралось в RAM — теперь Polars может аккуратно сбрасывать часть данных на диск.
Половина обновления — это перенос операций в streaming:
— cov, corr, skew, kurtosis → теперь можно считать на больших данных
— strptime → тоже стримится
— оптимизация sort → меньше лишних операций
Если вы используете:
.lazy().collect(streaming=True)
.unnest() теперь работает без аргументовmerge_sorted для уже отсортированных данныхdataframe interchange → если Вы связывали разные библиотеки, проверьте пайплайн
pip install -U polars
🐍 Python-чек-лист — всё, что нужно под рукой
Если вы работаете с Python — удобно иметь один список, который закрывает основные задачи: от базового кода до продакшена.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🧠 10 паттернов по массивам, которые закрывают 80% задач на собеседованиях
1️⃣ Два указателя
Когда нужно работать с отсортированным массивом или искать пары/подотрезки
2️⃣ Скользящее окно
Для подмассивов: максимум, сумма, длина и т.д.
3️⃣ Префиксная сумма
Позволяет считать суммы отрезков за O(1)
4️⃣ Алгоритм Кадане
Максимальная сумма подмассива за линейное время
5️⃣ Бинарный поиск
Не только по массиву — ещё и «по ответу»
6️⃣ Циклическая сортировка
Когда числа лежат в диапазоне [1..n] и нужно найти пропуски/дубликаты
7️⃣ Слияние интервалов
Все задачи, где есть пересечения диапазонов
8️⃣ Монотонный стек
Для «следующего большего/меньшего элемента»
9️⃣ Хэш-таблица
Когда нужен быстрый lookup (часто — O(n) вместо O(n²))
🔟 Сортировка + жадный подход
Сначала упорядочил → потом выбрал оптимально
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🔐 Как безопасно работать с пакетами из PyPI
Появилась крутая подборка best practices по безопасности Python-зависимостей — максимально практичная и без воды.
👉 Что внутри:
— безопасные настройки pip и uv по умолчанию
— защита от supply chain атак
— как фиксировать версии зависимостей (и зачем это критично)
— проверка уязвимостей и «здоровья» пакетов
Недавние инциденты показали, что всё это — не теория:
— атака через пакет LiteLLM/Telnyx → 119k+ загрузок вредоносного кода за пару часов
— куча проектов до сих пор ставит зависимости без фиксированных версий
И всё — у тебя в проде чужой код.
📌 Хороший чек-лист, чтобы пройтись по своему проекту и закрыть дыры.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#свежак
🔍Тестовое собеседование на Middle Python с разработчиком из Авито завтра вечером
Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
🏃♀️ Уже завтра стартует курс по разработке AI-агентов.
Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Зачем глубоко копать мультиагентные системы, если можно обойтись старым добрым кодом? Как контролировать расходы на токены, чтобы новая фича не разорила бизнес? Как заставить агента работать стабильно и предсказуемо, а не галлюцинировать?
Библиотека питониста
#развлекалово
🔥 Как правильно использовать heapq для поиска K-го наибольшего элемента
Если вы готовитесь к собеседованиям по Python — почти наверняка встретите задачу на Kth Largest. И здесь есть важный нюанс 👇
heapq в Python работает только как min heapheapify_max() на большинстве платформ приведёт к ошибке (полноценно появится только в Python 3.14+).
import heapq
nums = [3, 2, 1, 5, 6, 4]
max_heap = [-x for x in nums]
heapq.heapify(max_heap)
largest = -max_heap[0]
import heapq
def find_kth_largest(nums: list[int], k: int) -> int:
heap = nums[:k]
heapq.heapify(heap)
for num in nums[k:]:
if num > heap[0]:
heapq.heapreplace(heap, num)
return heap[0]
O(N log K)O(K)
👉 PEP 831: Python станет лучше «виден» системным инструментам
В Python хотят включить frame pointers по умолчанию — это небольшое, но очень важное изменение для разработчиков и продакшена.
Frame pointers помогают профайлерам, дебаггерам и системным тулзам (типа `perf`) понимать, что происходит внутри процесса Python и строить нормальные call stack’и. Без них — половина магии просто не работает или даёт мусор.
-fno-omit-frame-pointer и -mno-omit-leaf-frame-pointer по умолчанию
🚀 Сборная-солянка шпаргалок по питону
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🚀 Great Docs: документация без лишних усилий
Главная идея Great Docs - инверсия подхода. Вместо того чтобы вы строили систему сборки под код, инструмент сам инспектирует ваш пакет и создает всё необходимое «из коробки».
Процесс максимально упрощен и требует всего трех команд:
# 1. Установка
pip install great-docs
# 2. Инициализация (автодетект пакета и создание конфига)
great-docs init
# 3. Сборка и предпросмотр
great-docs build
great-docs preview
great-docs.yml. Вам не нужно изучать сложные системы шаблонов — достаточно указать стиль навигации или путь к логотипу.llms.txt и llms-full.txt.
🔥 Основы PyTorch: первые шаги в практическом глубоком обучении
Введение в основы PyTorch: инициализация тензоров, операции над ними, индексация и изменение формы (reshaping).
🔗 Ссылка на курс
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
📉 Минус 3.2 ГБ оперативной памяти: 5 техник оптимизации Python-приложений
Многие считают, что Python «прожорлив» к памяти по умолчанию. Но часто проблема не в языке, а в архитектуре.
Вот 5 рабочих техник, которые помогли добиться такого результата:
1. Переход на Async и один воркер (Granian + Quart)
Традиционные синхронные серверы используют «веб-сад»: несколько процессов-воркеров, каждый из которых дублирует зависимости в памяти.
Решение: Переход на асинхронный фреймворк (Quart) и современный сервер (Granian). Асинхронность позволяет одному воркеру эффективно обрабатывать множество запросов, что позволило сократить количество процессов до одного без потери производительности.
2. Паттерн Raw + Dataclasses (вместо тяжелых ODM)
Библиотеки вроде MongoEngine или SQLAlchemy могут быть тяжелыми для памяти при больших объемах данных.
Решение: Использование «сырых» запросов к БД и простых Python-датаклассов с использованием __slots__. Это исключает создание словаря __dict__ для каждого объекта, экономя около 100 МБ на процесс.
3. Изоляция тяжелых импортов в подпроцессах
Если у вас есть фоновый демон (например, поисковый индексатор), он может тянуть в память всё основное приложение просто из-за цепочки импортов.
Решение: Вынесение тяжелого кода в отдельный файл, который запускается как subprocess. Основной процесс остается «легким» (22 МБ вместо 708 МБ), а тяжелые библиотеки выгружаются из памяти сразу после завершения задачи.
4. Локальные (Lazy) импорты
Импорт популярных библиотек стоит дорого сразу «на входе».
Решение: Перенесите import внутрь функций. Библиотека загрузится только в момент вызова. В Python 3.15 эта механика станет еще проще благодаря PEP 810.
5. Кэширование на диске (Diskcache)
Хранение кэша (фрагменты HTML, результаты API) в оперативной памяти — самый простой путь к утечкам и раздуванию процесса.
Решение: Библиотека diskcache. Она использует SQLite под капотом, позволяя хранить гигабайты кэша на диске с производительностью, близкой к RAM, но не занимая драгоценную оперативную память.
🔗 Ссылка на полную статью
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст