PythonTalk – Telegram
PythonTalk
5.13K subscribers
1.69K photos
57 videos
6 files
1.41K links
Привет, меня зовут Олег Булыгин 👋

🐍 Здесь я делюсь полезной информацией для тех, кто пишет код на Python: от разработки до Data Science.

По вопросам: @obulygin91
Download Telegram
LAMBDA: СИНТАКСИЧЕСКИЙ САХАР ИЛИ ЯД? 🍬☠️

Есть грань между элегантным one-liner'ом и нечитаемым куском кода, который вы сами проклянете при первой же отладке.

Многие используют лямбды, пытаясь впихнуть сложную логику в одну строку. Это ошибка. lambda хороша только там, где она умирает сразу после исполнения.

Разложил базу по полочкам в карточках:
▫️ Анатомия и правильные юзкейсы.
▫️ Почему присваивание лямбды переменной — это моветон (и нарушение PEP 8).
▫️ Когда стоит выкинуть лямбду и взять operator для прироста производительности на уровне C.

Листайте, сохраняйте, не усложняйте. 👉

#анатомия_питона
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥741
🐈 Кот, который гуляет по серверам MIT (и многим нравится)

Вышел отчет Marktechpost (ML Global Impact Report 2025), и там внезапно очень приятные цифры для отечественного IT. Библиотека CatBoost от Яндекса вошла в топ-5 неамериканских инструментов ML, наиболее часто упоминаемых в научных статьях по всему миру.

Немного сухой статистики, чтобы понимать масштаб:
— CatBoost используется в каждой 30-й научной статье по ML в мире.
— География: 51 страна, включая США и Китай.
— Пользователи: MIT, Stanford, Harvard.
— Доля в статьях: 13%. Это прямая конкуренция с XGBoost (15%) и LightGBM от Microsoft (10%).

Почему так, если из каждого утюга кричат про нейросети?

Потому что бизнес и наука — это не (всегда) генерация картинок с котиками или написание эссе. Намного чаще — это просто структурированные табличные данные.
Кредитный скоринг, медицинская диагностика, предсказание погоды, ранжирование товаров — всё это задачи, где трансформеры часто избыточны или работают хуже, чем классический бустинг.

Главная фишка CatBoost, за которую его любят дата-сайентисты (и я в том числе) — это умение работать с категориальными признаками «из коробки». Название как бы намекает: Categorical Boosting. Не нужно мучиться с One-Hot Encoding и раздувать размерность данных до небес. Кинул сырые данные — получил автоматический умный препроцессинг. Ну и с переобучением борется отлично.

Я сам уже давно именно этот фреймворк предпочитаю другим ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥42
👨‍💻Как выглядит Vibe Coding в FAANG

На Reddit есть интересный тред, где инженер из FAANG поясняет, как "вайб кодинг" выглядит у них в реальном продакшене, где за ошибки бьют не по лайкам, а по капитализации компании.

Процесс он описывает так:

1️⃣ Technical Design Document. Никакого кода, пока не написано эссе о том, что и зачем мы строим. Сначала это просто proposal.
2️⃣ Design Review. Этот этап автор описывает прекрасно: "Your design doc absolutely shredded by Senior Engineers". Тебя уничтожают на бумаге, чтобы не пришлось страдать в коде. Это называется "front loading the pain".
3️⃣ Документация подсистем. Если выжил после ревью — пишешь еще больше доков для конкретных команд.
4️⃣ TDD (Test Driven Development). И вот тут вступает AI. Агент пишет тесты до реализации фичи.
5️⃣ Программирование. Только теперь AI-агенту разрешают написать саму фичу, чтобы пройти тесты.
6️⃣ Human Review. Двое живых людей проверяют код. AI помогает, но аппрув за кожаными мешками.

Итог?
Они фиксируют ~30% ускорение цикла от идеи до прода.

Тридцать процентов. Не x10, не "уволили весь отдел", не "сделали за выходные убийцу Google". Просто добротный буст производительности.

А в комментариях, естественно, случился истерический смех.
Потому что по факту в этом никакого вайб-кодинга и нет — это хрестоматийная, скучная, бюрократизированная программная инженерия, которая существовала за 20 лет до ChatGPT, но с бустом производительности. AI просто ускоряет этапы работ, где надо "печатать"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥21👨‍💻1🤝11
🪑 Два стула для работы с путями в Python

С одной стороны — os.path, ровесник мамонтов. Набор функций, работающих со строками.
С другой — pathlib, модный, объектно-ориентированный, появившийся в Python 3.4.

Многие до сих пор сидят на первом, потому что «и так работает». Но цепляться за os.path в новом коде — это уже ошибка и признак дурного тона.

Вот вам показательная порка.
Задача: найти все .py файлы во всех подпапках.

🤺 Решение на os.path + os.walk:
# Готовьтесь, будет больно
py_files = []
for root, _, files in os.walk('.'):
for name in files:
if name.endswith('.py'):
py_files.append(os.path.join(root, name))


А теперь на pathlib:
# Элегантность и мощь
py_files = list(Path('.').rglob('*.py'))

Комментарии излишни.

Вердикт:
Использовать os.path сегодня есть смысл только если вы поддерживаете легаси на Python 2.7 (соболезную) или гоняетесь за наносекундами в супернагруженных циклах (и то не факт, что поможет).

Во всех остальных случаях — только pathlib. Время, которое вы сэкономите на отладке, стоит в разы дороже.

#два_стула
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍4🙏2👌2
По следам обсуждения CatBoost и его места в мировой науке.

У каждого есть свой «любимый молоток», которым он привык реализовывать бустинг. Давайте выясним, кто король табличных данных в ваших задачах.
Anonymous Poll
12%
🏆 XGBoost (Классика, проверенная временем)
2%
⚡️ LightGBM (Нужна скорость, Microsoft топ)
22%
🐱 CatBoost (Лень возиться с категориями, Яндекс топ)
2%
🐢 Scikit-learn (GradientBoosting / HistGradientBoosting)
2%
🐳 Нейронки (TabNet и прочие трансформеры)
60%
🍿 Я не по ML / Посмотреть результаты
👍4🔥31
🧠 Время размять серое вещество

Сегодня у нас абсолютная классика LeetCode. Это своеобразный "Hello World" алгособесов.

Задача: Two Sum

Дано:
1. nums: список целых чисел (List[int]).
2. target: целевое число (int).

Задача:
Написать функцию, которая возвращает список из двух индексов элементов списка nums, сумма которых равна target.

Условия и ограничения:
— Гарантируется, что ровно одно решение существует.
Важно: Нельзя использовать один и тот же элемент дважды. То есть, если вам нужно набрать сумму 6, а в списке есть одна тройка по индексу 0, ответ [0, 0] не принимается.

Примеры:

# 1. Базовый кейс
nums = [2, 7, 11, 15], target = 9
# Результат: [0, 1]
# (потому что nums[0] + nums[1] == 2 + 7 == 9)

# 2. Числа могут быть не по порядку
nums = [3, 2, 4], target = 6
# Результат: [1, 2]

# 3. Одинаковые значения (но разные индексы!)
nums = [3, 3], target = 6
# Результат: [0, 1]

# 4. Отрицательные числа
nums = [-1, -2, -3, -4, -5], target = -8
# Результат: [2, 4]


Решение "в лоб" через два вложенных цикла (O(n^2)) пишет любой школьник. Давайте что-то поинтереснее 🌝

#алгособес
42👍1🔥1
Ваши комменты десятилетней давности уже проверяют. И выставляют оценки 🤖

Андрей Карпаты недавно выкатил свой очередной вайб-проект HN Time Capsule.

С помощью Opus 4.5 и GPT-5.1 он прогнал фронтпейдж Hacker News за декабрь 2015 года через LLM. Нейронка анализирует статьи и треды, а затем, обладая знанием о том, как реально сложилась история за эти 10 лет, выставляет пользователям оценки (от A+ до F). По итогам генерируется Hall of Fame — список самых прозорливых экспертов 2015 года. Т

Весь пайплайн (сбор данных через Algolia API, парсинг HTML, генерация промптов, рендеринг статики) был написан за 3 часа в режиме вайб-кодинга.
Для тех, кто хочет покопаться в коде (хотя его писал не человек), там классический Python-стек:
- pipeline.py — управляет стадиями от fetch (парсинг HN через Algolia API) до render (генерация статичного HTML).
- Использование requests и urllib с хитрыми ретраями, чтобы не ловить 403 от HN.
- Промпт-инжиниринг: Карпаты заставил модель не просто «болтать», а выдавать структурированный JSON-подобный отчет с оценками конкретных юзеров.

930 запросов к моделям стоили $58 и заняли около часа. Вот такая цена тотального аудита целого сообщества за месяц.

Как говорит Карпаты:
Be good, future LLMs are watching

🤖

#годный_опенсорс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2111
🧩 Разбор задачи Two Sum

Разбираем классику алгособесов. Казалось бы, "Hello World" от мира алгоритмов, но даже тут можно написать код, за который будет стыдно, а можно — красиво и эффективно.

Решение "в лоб" через два вложенных цикла — это O(n^2). Но нам нужна скорость O(n). Для этого мы жертвуем небольшим количеством памяти и используем Hash Map (в Python — обычный словарь.

Вот так:
def two_sum(nums: list[int], target: int) -> list[int]:
# Словарь "чего нам не хватает":
# {недостающее_число: индекс_первого_слагаемого}
seen = {}

for i, num in enumerate(nums):
# Если текущее число — это то, что мы искали ранее
if num in seen:
return [seen[num], i]

# Иначе запоминаем, что для суммы target
# нам теперь не хватает (target - num)
seen[target - num] = i


Как это работает?

1. Мы проходим по списку один раз.
2. На каждой итерации мы либо находим ответ (текущее число закрывает чью-то потребность в паре), либо объявляем "поиск" пары для текущего числа.
3. Поиск в словаре работает за O(1).

#алгособес
🔥4👍211🙏1🤗11
Ваши PR-ы выросли на 33%, но стали ли вы лучше программировать? Спойлер: нет, вы просто стали быстрее нажимать Tab. 🤖

Вышел свежий отчет State of AI Coding 2025 от Greptile, вот самое интересное:


1️⃣ Прощайте, компактные PR-ы.
Медианный размер пул-реквеста вырос с 57 до 76 строк за полгода. Плотность изменений в файлах тоже поползла вверх. AI-инструменты работают как множитель силы, но эта сила часто идет в «жир». Мы пишем больше кода, потому что это стало бесплатно.

2️⃣ Производительность +76%, но есть нюанс.
Выработка строк кода на разработчика взлетела почти вдвое. Для кого-то это выглядит как победа, а для кого-то — как грядущий ад поддержки. Ревьюить код, сгенерированный за секунды, приходится минутами (или часами).

3️⃣ OpenAI vs Anthropic: битва за ваш «поток».
Разрыв между использованием разных моделек сокращается. Если в начале 2024 года соотношение загрузок SDK было 47:1 в пользу OpenAI, то сейчас — 4.2:1.
🟣 Claude (Sonnet/Opus 4.5) — бог латентности. TTFT (время до первого токена) меньше 2.5 секунд. Это критично для интерактивного программирования, чтобы не выпадать из потока.
🟣GPT-5.1 — монстр пропускной способности. Тексты вылетают быстрее, но ждать начала генерации приходится дольше.
🟣Gemini 3 Pro — пока в роли догоняющего с лагом в 13 секунд. В реальном программировании это долго.

4️⃣Python-стек мутирует.
Смотрите, что летит в топ по загрузкам:
Pydantic AI показал взрывной рост в 3.7 раза. Наконец-то до людей дошло, что в проде нужны не просто текстовые ответы, а типизированные структуры. Как раз базу этого мы рассматривали на последнем эфире в Точке Сборки, можете посмотреть запись.
mem0 забирает 60% рынка «памяти» для агентов.
LiteLLM вырос в 4 раза. Разрабам надоело переписывать код под каждый новый API, и они выбирают абстракцию.

5️⃣ Новый стандарт: CLAUDE.md.
Почти 70% репозиториев теперь содержат файлы с правилами для ИИ. Документация теперь пишется в основном не для коллег, а для «железного интерна».

Что со всем этим делать?
Задач становится больше, кода — горы, а времени на глубокое погружение — меньше. Победят те, кто научится управлять этой сложностью, а не просто нажимать Tab в Copilot.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
📉 Скорость х2, качество /2

CodeRabbit проанализировали сотни PR в опенсорсе (сравнили чисто человеческие и AI-ассистированные) и выкатили отчет, результаты такие:

1️⃣ Количество багов выше в 1.7 раза.
В среднем, AI-генерируемый код приносит на 70% больше проблем, чем написанный кожаным мешком. Причем речь не о мелких опечатках, а о критических уязвимостях.

2️⃣ Читаемость кода хуже в 3 раза.
Нейронки генерируют синтаксически верный, но абсолютно "пластиковый" код. Он выглядит нормально издалека, но нарушает локальные конвенции, нейминг и структуру. Читать это через полгода будет больно.

3️⃣Ошибки в бизнес-логике (+75%).
AI не понимает ваш бизнес. Он понимает статистическую вероятность следующего токена. В итоге мы получаем код, который запускается и работает, но делает не то, что нужно.

4️⃣ Дыры в безопасности (x2.7).
Хардкод паролей, небезопасные прямые ссылки на объекты, игнорирование санитайзинга данных. Нейронки радостно тащат в продакшен легаси-паттерны десятилетней давности, на которых они обучались.

👉 Почему так происходит?
Нейронки оптимизированы на создание видимости правильного решения (surface-level correctness).
AI не знает архитектуру вашего монолита, не помнит, почему в 2019 году Вася написал этот костыль, и не думает о том, как это будет масштабироваться. Они жертвуют эффективностью ради простоты генерации и оптимизирует локальную задачу, игнорируя глобальную систему.

В итоге мы имеем классическую ловушку: джуны и мидлы радуются, что закрыли тикет за час, а сеньоры и лиды вешаются на код-ревью. Это явление уже назвали "Reviewer Fatigue" — когда поток AI-шлака настолько плотный, что замыленный глаз пропускает критические баги.

Учитесь читать код, а не только генерировать его. Иначе скоро вашу работу заменит скрипт, который делает то же самое, но бесплатно (и так же плохо).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1🤔1🙏1👌1