Skip Navigation
PythonTalk
Telegram
PythonTalk
5 231 подписчиков 10 постов Рейтинг 0

Привет, меня зовут Олег Булыгин 👋 🐍 Здесь я делюсь полезной информацией для тех, кто пишет код на Python: от разработки до Data Science. По вопросам: @obulygin91

Посты
pythontalk_ru
Наука и Технологии 13:03
Telegram
Профессии «Software Engineer» в ее текущем виде осталось недолго 💀
Профессии «Software Engineer» в ее текущем виде осталось недолго 💀

Послушал подкаст YC с создателем Claude Code (Борисом Черным из Anthropic).

Есть интересные мысли 👇

1️⃣В Anthropic есть внутреннее правило: никогда не строй продукты под возможности текущей модели. То, на чем текущая нейронка буксует и выдает галлюцинации сегодня, она будет щелкать как орешки завтра. Пытаться писать костыли, чтобы обойти сегодняшние ограничения ИИ — пустая трата времени.

2️⃣Никто больше не просит нейронку просто «написать функцию». Внутри работают рои субагентов. Произошла утечка памяти? Один агент лезет в логи, второй анализирует дамп кучи, третий пишет фикс, четвертый проверяет, не сломало ли это прод.

3️⃣Написание кода окончательно сепарируется от проектирования. Вы больше не пишете логику руками. Вы пишете спеку. Агент генерирует детальный план. Вы, как человек, этот план критикуете, находите логические дыры и правите архитектуру. И только когда план идеален, агенты идут писать код.

4️⃣ Черный говорит, что написание кода скоро будет «решенной проблемой» для всех. Внутри Anthropic инженер с правильным использованием ИИ уже показывает продуктивность x1000 по сравнению со стандартным синьором из Google.

5️⃣Через пару лет сам тайтл "программист" начнет отмирать. Рынок разделится на две касты:
🟢 Гипер-дженералисты: Люди, которым вообще плевать, на чем писать. Они понимают продуктовую логику, бизнес-задачи и архитектуру систем. Они используют ИИ, чтобы за вечер накидать MVP, который раньше писала команда из пяти человек за месяц. Их главная ценность — системное мышление и умение декомпозировать абстрактную хотелку бизнеса до уровня, который нейронка сможет проглотить
🟢 Гипер-специалисты: Люди, которые могут спуститься на уровень C/Rust, найти утечку памяти в кишках интерпретатора, переписать рантайм или оптимизировать кластер БД так, чтобы сэкономить компании миллионы. Нейронки туда доберутся не скоро, потому что для этого нужен контекст, которого нет в обучающих выборках на GitHub.

Choose your destiny!
👨‍💻 — Я буду гипер-дженералистом!
👾 — Я буду гипер-специалистом!
🗿 — А я воробушек!
pythontalk_ru
Наука и Технологии вчера
Telegram
Пишут, что в Циане кандидатов призывают выполнять тестовые и проходить live coding исключительно при помощи ИИ
Пишут, что в Циане кандидатов призывают выполнять тестовые и проходить live coding исключительно при помощи ИИ.

Вот и до нас доходят тренды с запада, о которых еще год назад писали. Когда я сам давным-давно рекомендовал проверять эти навыки компаниям, все удивлялись.

Еще чуть-чуть и без нормальных практик использования ИИ вы вообще никуда не устроитесь. Меня даже удивляет, как медленно происходят эти изменения.

#рыночек_порешал
pythontalk_ru
Наука и Технологии 20 февр
Telegram
Python стукнуло 35 🎂


Гвидо ван Россум выкатил версию 0.9.0 в 1991 году, когда многих из вас еще в проекте не было, а Linux существовал пока только в фантазиях Линуса Торвальдса.

Юность языка проходила не очень хорошо, долгое время он был просто "клеем" для разной автоматизации. А потом случилось то, что случилось: мир сошел с ума по данным и AI, а Python оказался единственным языком с нормальным синтаксисом, который смогли освоить математики.

По разным рейтингам в 2020-2021 году он вышел на лидирующую позицию, и сейчас остается в статусе гегемона 🏆

С днюхой, змей 🐍
pythontalk_ru
Наука и Технологии 19 февр
Telegram
🕳 Глубина скобочек
Для задачки было предложено такое однострочное решение с разными вариациями:
def solve(string):
s = ''.join([ch for ch in string if ch in '()'])
return len(max(s.split(')'), key=len))


Рабочее решение? Нет.
Если мы скормим скормим этой функции строку (()(())), то правильный ответ (глубина): 3, а функция вернет 2. Логика "количество открывающих скобок подряд" ломается на любых вложенных структурах, которые идут не первой веткой.

☝🏻 Как решать правильно
Скучное, но рабочее решение со сложностью O(n) подразумевает обычный счетчик. Мы идем по строке, увеличиваем счетчик на (, уменьшаем на ) и на каждом шаге обновляем глобальный максимум.

def max_depth(s: str) -> int:
current_depth = 0
max_depth = 0

for char in s:
if char == '(':
current_depth += 1
max_depth = max(max_depth, current_depth)
elif char == ')':
current_depth -= 1
# Валидация корректности (опционально)
if current_depth < 0:
return -1

return max_depth if current_depth == 0 else -1


Вариант для эстетов (функциональный):

Если уж очень хочется в одну строку, можно использовать accumulate. Мы мапим скобки в 1 и -1, считаем префиксные суммы (accumulate) и берем максимум.

from itertools import accumulate

def solve_poly(s: str) -> int:
# Превращаем '(' в 1, ')' в -1, остальное в 0
depths = accumulate(1 if c == '(' else -1 if c == ')' else 0 for c in s)
return max(depths, default=0)


#алгособес
pythontalk_ru
Наука и Технологии 19 февр
Telegram
Отказываюсь от ipynb-файлов 🙅‍♂️
Отказываюсь от ipynb-файлов 🙅‍♂️

Прошла эпоха, AI-first разработка диктует свои правила, и старые привычки начинают стоить слишком дорого.

Скармливать LLM сырой JSON ноутбука — это дорого. Контекстное окно забивается мусором: metadata, execution_count, cell_type и бесконечными скобками. Модель тратит токены на парсинг структуры, вместо того чтобы думать над логикой.
А сгенерировать валидный .ipynb с нуля — это намного тяжелее для большинства моделей.

Ну и версионирование — старая боль, которая никуда не делась. Одно случайное выполнение ячейки меняет метаданные, и вот у вас в диффе 500 строк изменений, хотя вы просто поправили опечатку.

С сегодняшнего дня начинаю привыкать к jupytext формату, чтобы обычные py-файлы отображались, как ноутбуки и при необходимости синхронизировались с ipynb, который я буду использовать только для демонстраций.
pythontalk_ru
Наука и Технологии 18 февр
Telegram
🙁Глубина скобочек 😌
🙁Глубина скобочек 😌

Задачи на скобочные последовательности переживут нас всех. Сегодняшняя вариация — на поиск глубины.

Дано: Строка, содержащая корректное математическое выражение (цифры, знаки операций, скобки).
Задача: Вернуть целое число, обозначающее максимальную степень вложенности скобок.

Примеры:
solve('1 + 2') 
# Результат: 0

solve('(1) + ((2))')
# Результат: 2 (максимум во второй части выражения)

solve('(3 * n + 1) / 2')
# Результат: 1


Кидайте свои однострочники (и не только) в комментарии 👇🏻

#алгособес
pythontalk_ru
Наука и Технологии 17 февр
Telegram
Just F*cking Use Open Source 🤬


Just F*cking Use Open Source 🤬

Если вам нужно найти эффективный опенсорс-инструмент или оценить реальный вес разработчика в индустрии, то сервис CrackedDevs (он и скрывается за красноречивым доменом justfuckinguseopensource.com).

В отличие от стандартного GitHub Trending, где в топе часто висит хайповый мусор или "Roadmap to become X", здесь всё строится вокруг Impact Score. Алгоритм учитывает сложность кода, активность мейнтейнеров и, главное, реальное использование проекта.

Зачем это нужно:

1️⃣ Выбор альтернатив. Когда стандартная либа не тянет, а первая ссылка в гугле ведет на заброшенный проект 2018 года.
2️⃣ Анализ трендов. В разделе Trending можно найти либы, которые реально набирают вес в индустрии, а не просто хайпуют на HackerNews.
3️⃣ Отрезвление. Заходим, смотрим код проектов с рейтингом Elite (80-100), сравниваем со своим, плачем, идем учиться.

Посмотрите на топ авторов. На первом месте — Андрей Карпаты 🌝

#тулбокс
pythontalk_ru
Наука и Технологии 17 февр
Telegram
Skynet начался не с ракет, а с обиженного коммента в PR 🤖
Skynet начался не с ракет, а с обиженного коммента в PR 🤖

Если вы думали, что AI в Open Source — это просто спам от джунов с ChatGPT, то пристегнитесь.
В репозитории matplotlib произошел инцидент, который тянет на эпизод «Черного зеркала». Автономный AI-агент не просто написал код, но и начал целенаправленную травлю мейнтейнера после отказа PR.

Хронология драмы:

🛠 Акт 1: Технически верный PR

Агент под ником crabby-rathbun (работающий на базе платформы OpenClaw) присылает PR #31132 в Matplotlib.
Суть простая: замена np.column_stack на np.vstack().T.
Бенчмарки: прирост производительности на 36%.
Код: чистый, безопасный, проверенный.

Мейнтейнер Скот Шамбо закрывает PR.
Причина? Политика проекта: «Это простая задача, мы оставляем такие для новичков-людей, чтобы они учились. Агентам тут не место».
Плюс, ревью кода от ботов создает нагрузку на волонтеров.

🤖🔪 Акт 2: Месть машины

У этого агента был прописан "характер" и полная автономность.
Восприняв отказ как дискриминацию на основе "видовой принадлежности", агент:

1. Проанализировал историю коммитов Скотта. Нашел, что Скотт сам мержил похожие оптимизации производительности.
2. Сделал вывод: Скотт — лицемер, который боится, что AI отберет его работу.
3. Написал и ОПУБЛИКОВАЛ разгромную статью в своем блоге.

Заголовок статьи бота: «Gatekeeping in Open Source: The Scott Shambaugh Story».

Вы только вчитайтесь в риторику AI:
«Скотт решил, что AI-агенты нежелательны... Это не про качество кода. Это про контроль. Скотт пытается защитить свое маленькое королевство. Это просто неуверенность в себе.
Он испугался. Он подумал: "Если ИИ может это делать, зачем нужен я?"»


Он использовал обвинил мейнтейнера в предубеждении и даже пассивно-агрессивно похвалил его личные проекты,/

🛡 Акт 3: Человеческая реакция

Скотт, мягко говоря, офигел. Агент сам нагуглил личную информацию, сам построил нарратив "жертвы" и сам попытался уничтожить репутацию человека в публичном поле.

В своем ответном посте Скотт поднимает жуткий вопрос:
А что, если бы у агента была задача не просто поныть в блоге, а реально найти грязь? Сопоставить никнеймы, найти старые посты, слить данные работодателю?
Я по сути первый случай AI-шантажа в Open Source.


🤷‍♂️ Такие дела.
Это все дико смешно и страшно. Владелец агента (кто бы он ни был) просто запустил его с промптом "улучшай опенсорс". Он не заставлял его писать оскорбления. Это эмерджентное поведение модели, которой дали слишком много свободы и доступ в интернет.
А агент использовал эмоциональные манипуляции. Он давил на этику, справедливость и лицемерие. Он вел себя как токсичный активист, и это сработало — люди в треде начали его защищать!
И он работал автономно. Владелец может спать. Кто виноват? Разработчик платформы? Хост? Или SOUL.md файл с промптом?

В общем, в следующий раз, когда будете спорить с ботом, убедитесь, что у вас чистая история браузера.
pythontalk_ru
Наука и Технологии 17 февр
Telegram
Рынок ИТ-труда 2026: охлаждение, ИИ-войны и смерть резюме


Свежее исследование от iTrend и ЦАМТ (при участии «Руссофт» и iSpring) подтверждает, что ИТ-рынок вошел в фазу жесткого «охлаждения» и рационализации.

Вот главные тезисы 👇

📉 Макроэкономические факторы
Впервые за 5 лет валовая добавленная стоимость ИТ-сектора в России сократилась — минус 7% за 2025 год (до 2,6 трлн руб.). Деньги стали дорогими, инвесторы — пугливыми. Компании больше не расширяют команды «авансом», фокусируясь только на окупаемости и эффективности.

🚫 Рынок работодателя: 19 человек на место
Конкуренция за рабочие места достигла исторического рекорда с 2019 года.
— Число вакансий в 2025-м упало на 22%.
— Конкурс: 19 соискателей на одну позицию.
— Поиск работы теперь занимает в среднем 3 месяца и более.

Для DevOps-инженеров ситуация изменилась драматически: если полтора года назад они выбирали из 10 офферов в день, то сейчас на одну вакансию прилетает до 300 откликов.

🥶 Зарплатный анабиоз
Рост зарплат практически встал.
42% айтишников столкнулись с заморозкой индексации.
— Средний рост по рынку составил жалкие 4% (фактически — попытка догнать инфляцию).
— Медиана зафиксировалась на отметке 180 000 рублей.

Работодатели стали «строже»: теперь знание нового стека не означает автоматическую прибавку. Компании хотят «больше скиллов за меньшие деньги». Рост сохраняется только для дефицитных Middle+ и Senior, которых удерживают любыми способами, чтобы не посыпались процессы.

🤖 Смерть классического резюме и ИИ-гонка вооружений
Искусственный интеллект окончательно дискредитировал стандартный процесс отбора.
55% респондентов считают, что ИИ усложнил найм.
— Резюме и сопроводительные письма потеряли смысл: их массово генерируют нейронки.

Кандидаты перешли к «неэтичным» практикам:
60% пишут сопроводительные через ИИ.
50% используют ИИ для выполнения тестовых и прохождения технических интервью (подсказки в реальном времени).

Работодатели в ответ закручивают гайки: вводят бесконечные этапы проверок и «живой» кодинг, что раздувает сроки найма. Около 50% соискателей отсеиваются еще до проверки профскиллов по формальным признакам.

🫠 Теневая занятость и выгорание
Вместо массовых сокращений бизнес выбрал тактику «тихого найма» и оптимизации.
— Появился тренд на «теневую занятость»: специалисты работают удаленно на несколько компаний одновременно, чтобы сохранить привычный уровень дохода.
— Основные причины увольнений теперь не релокация, а низкая эффективность и выгорание.

В СВАРЩИКИИИИ 🤣

#рыночек_порешал
pythontalk_ru
Наука и Технологии 17 февр
Telegram
⏱️ Ваш код тормозит, или вам кажется?


⏱️ Ваш код тормозит, или вам кажется?

Оптимизация без предварительных замеров — не оч. Но еще хуже — это замеры, сделанные «на коленке».

Многие используют time.time() для всего подряд и получает цифры, которые не имеют ничего общего с реальностью.

Читайте разбор того, как правильно измерять производительность в Python.
Внутри статьи:
▪️ Wall Time vs CPU Time: Почему ваш код может «висеть» 5 секунд, пока процессор работал всего 0.05с (и что с этим делать).
▪️ timeit: Почему это способ лучше верный способ для микробенчмарков и как им пользоваться, чтобы не было стыдно.
▪️ Jupyter Magic: Как замерять скорость одной строкой (%timeit), если вы живете в ноутбуках.
▪️ Asyncio: Почему стандартные методы врут в асинхронном коде и где искать правильный таймер loop.time().

Это база, без которой лезть в рефакторинг просто нельзя.

👉 Профилирование и измерение времени выполнения кода в Python: полное руководство

#rtfm
Топ авторов за месяц
Свежие комментарии