39269
Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Курс по ML: https://cl Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
🐍 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, но не занимая драгоценную оперативную память.
🔗 Ссылка на полную статью
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
Библиотека задач по Data Science
Читать полностью…
🕵️♂️ pywho: команда, которая знает о вашем Python всё
Каждый разработчик проходил через ад отладки, когда import requests внезапно выдает ошибку, а which python показывает совсем не то, что вы ожидали.
pywho — это «детектор лжи» для вашего окружения. Одна команда заменяет копание в sys.path и проверку переменных окружения.
Что умеет pywho
1. Полная инспекция среды (`pywho`)
Мгновенно показывает: какой интерпретатор запущен, версию Python, архитектуру и — самое главное — тип виртуального окружения (`venv`, uv, conda, poetry или `pipenv`).
2. Трассировка импорта (`pywho trace <module>`)
Отвечает на вопрос: «Откуда именно загрузился этот пакет?». Инструмент показывает полный путь к файлу и весь порядок поиска в sys.path.
3. Поиск «теней» (`pywho scan .`)
Обнаруживает классическую ошибку, когда ваш файл (например, json.py или `math.py`) перекрывает стандартную библиотеку Python. Это одна из самых частых причин странных багов у новичков.
Установка: pip install pywho
(Важно: устанавливайте в то окружение, которое хотите проверить).
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
👇 Нашли классный материал и точно стоит им поделиться.
Это структурированный PDF с 84 задачами по Python с решениями, который отлично подойдёт для практики и быстрого ревью.
Что внутри:
• разнообразные задачи разного уровня
• понятные решения
• удобная структура для постепенного обучения
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🗓 В следующий вторник (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='')
🤯 Представьте, что ваш AI-агент работает так же предсказуемо, как обычный микросервис. Звучит утопически, но это именно то, к чему должна прийти разработка в 2026 году.
Основная боль текущих реализаций — полная непредсказуемость поведения. Сегодня агент выполнил задачу за два шага, а завтра ушёл в рекурсию и потратил все лимиты.
Наш обновлённый курс «Разработка AI-агентов» научит, как приручить этот хаос с помощью Python и современных фреймворков. Мы не будем учить «общаться» с нейросетью, мы будем строить из неё надёжный инструмент.
✅ Что вы получите:
— понимание того, как управлять логикой агента на уровне кода;
— навыки работы с LangChain и библиотеками оркестрации;
— готовые паттерны для обработки ошибок и галлюцинаций;
— опыт создания систем, которые реально экономят время.
Есть пара мест со скидкой до завтра, решайтесь 👈🏻
🤔 Разрабатываете ИИ-агентов, но всё ещё не уверены в их стабильности и прогнозируемости?
Мы поговорили с десятками разработчиков ИИ-агентов и сделали отдельный курс по AgentOps.
🧠 На нём вы узнаете:
– как оптимизировать траты на токены;
– как на практике оценить качество работы агента;
– как «докручивать» RAG-системы без потери качества;
– как обеспечить устойчивость агента к сбоям внешних сервисов без падения всей системы и про многое-многое другое.
📅 Старт: 19 мая.
👥 Спикеры — практики с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Huawei, МТС и др.
Длительность: 6-12 недель в зависимости от тарифа.
🔗 Программа курса и другие подробности
Библиотека задач по Data Science
Читать полностью…
это другое... вы не понимаете 😁
🐸 Библиотека питониста
#развлекалово