Девман для питонистов
541 subscribers
159 photos
3 videos
209 links
Веб-разработка на Python. Канал от практиков.

Сайт школы Девман: https://dvmn.org/
Контакт для связи: @yulya_devman
Download Telegram
Ленты пестрят новостями о сокращениях, увольнениях джунов и «оптимизации» целых отделов. Кажется, что поезд ушел, и нейросети теперь сделают всю работу за нас. Зачем учиться, если через полгода тебя заменят кодом от ChatGPT?

Пока одни компании в панике режут штат, чтобы отчитаться перед инвесторами, другие делает ставку на будущее. Не сокращают, а именно нанимают новичков. Так, IBM утроила найм джунов и вот почему:

— Вместо краткосрочной экономии за счет замены людей ИИ, компания выбирает долгосрочную выгоду за счёт формирования кадрового резерва;

— ИИ меняет содержание работы, но не делает человека ненужным. Вместо рутинного написания кода, сотрудники будут уделять больше времени анализу, решению проблем и взаимодействию.

— Молодые сотрудники не обременены старыми привычками, готовы экспериментировать, задавать неудобные вопросы и быстрее осваивают новые инструменты.

— Больший эффект достигается при сотрудничестве опытных и молодых специалистов. Опытные привносят стратегическое видение и понимание контекста, а молодые — владение ИИ-инструментами и энергию для поиска новых решений.

— Главный риск сокращения найма джуниоров сейчас — это нехватка квалифицированных менеджеров и архитекторов через несколько лет. Невозможно вырастить руководителей, если не нанимать и не обучать молодых специалистов сегодня. ИИ не может выполнить эту задачу.

👉Мы изучили вакансии для Python-разработчиков на hh.ru и увидели, что, как минимум, в четверти из них требуются навыки работы с ИИ:
— В начале марта на hh.ru более 8000 вакансий с упоминанием Python;
— Если исключить слова, связанные с ИИ, то вакансий уже около 6000.

Получить навыки работы с нейросетями вы можете на наших курсах:
FastAPI: Создаем AI генератор сайтов с нуля
Курс по FastAPI: чат с ИИ за 4 часа

➡️А вы часто видите вакансии с требованием навыка работы с ИИ? Пишите о своём опыте в комментариях!
🔥3
Стоит ли верить слухам о «вымирании» Python

Несмотря на броские заголовки в СМИ вроде: «Python готовятся сбросить с первого места», язык все еще является одним из самых популярных и востребованных. Действительно, согласно февральскому рейтингу TIOBE, доля Python снизилась до 21.81% (пик был 26.98% в июле 2025).

Как ни странно, теснят Python «старички»: язык C (второе место) и специализированные языки вроде R (рванул с 15й на 8ю строчку) и Perl .

📌Вердикт TIOBE: несмотря на легкое охлаждение, Python остается королем горы с огромным отрывом от конкурентов. Это скорее нормализация после аномального взлета, чем катастрофа. Плюс есть некоторые вопросы к методике оценки рейтинга.

В отличие от опросов разработчиков, TIOBE использует косвенный метод. Он оценивает популярность языка по тому, как часто его название встречается в интернете:
Поисковые запросы. Индекс подсчитывает количество страниц, найденных по запросу +"<название языка> programming" (например, +"Python programming");

Источники данных. Поиск ведется не в одном, а в 25 крупнейших поисковых системах и популярных сайтах по всему миру;

Формула и веса. Результаты из всех этих источников не суммируются просто так. Каждому сайту присваивается свой вес (доля) в финальном результате, который зависит от его популярности.

✍️Итого индекс показывает не то, сколько кода написано на языке или сколько вакансий по нему открыто, а лишь «информационный шум» в интернете и подвержен следующим искажениям:
— Устаревший, но обильно представленный в сети язык может иметь высокие позиции;
— Метод сильно зависит от выбранных поисковых запросов;
— Рейтинги могут значительно колебаться от месяца к месяцу из-за изменений в алгоритмах поисковиков, а не из-за реального роста или падения популярности язык;
— Подверженность накруткам. Теоретически, рейтинг уязвим для искусственного завышения результатов сторонниками того или иного языка.

Плюс стоит еще добавить что поиск медленно, но верно смещается в сторону ИИ, что также может оказывать влияние на позиции языка в рейтинге.

Если смотреть другие рейтинги с другими методами оценки — Python все равно в первой пятерке и исчезать никуда не собирается, так что продолжаем изучать и применять! Веб-разработка, интеграции с ИИ, ML, DataScience без него уже немыслимы.
👍1
⚡️ Перенесли курс «Введение в Python: онлайн-магазин» на сайт Девмана!

🌟Вы можете пройти этот курс у нас на сайте!

Чему вы научитесь:
— Запускать Python-скрипты и редактировать код в IDLE
— Создавать строковые объекты и работать с базовыми типами данных
— Импортировать модули и использовать встроенные функции вроде print()
— Применять условные операторы if elif else для построения логики программ
— Взаимодействовать с внешними сервисами через готовые фреймворки

Курс подойдёт даже тем, кто не написал ни одной строчки кода!

Давно мечтали стать Python разработчиком, но все ещё откладываете? Этот мини-курс для вас!

Результат за выходные — работающий бот для покупки мерча школы и первое код-ревью.

👉 Купить курс можно здесь

🌟А те, кто проходил курс «Введение в Python: онлайн-магазин в телеграм за 4 часа» на Stepik могут получить ревью по проекту!

👉 Чтобы получить код-ревью, напишите нам в Телеграм
🤔 Давайте вместе разберемся, что не так с этим кодом?
from datetime import datetime

datetime = datetime(2025, 1, 1, 0, 0, 0)

datetime = datetime(2025, 2, 1, 0, 0, 0)
print(datetime)

👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана
После такого объявления доступ к классу datetime пропадёт. Вместо него будет переменная с датой.

Код из нашего примера может выглядеть так:
from datetime import datetime

start_datetime = datetime(2025, 1, 1, 0, 0, 0)

end_datetime = datetime(2025, 2, 1, 0, 0, 0)
print(end_datetime)

❗️Избегайте использования зарезервированных оригинальных имён модулей, классов, функций и переменных. Их использование, возможно, не сломает код сразу, но позже может доставить много проблем.

Для получения всех встроенных имён выполните код в python:

import builtins
print(dir(builtins))
👍2
✍️Новые возможности генераторов списков

Генераторы списков или List Comprehension — мощный инструмент для высушивания и упрощения кода. Инструмент реализует упрощенный подход к созданию списка, который задействует цикл for, а также инструкции if-else для определения того, что в итоге окажется в финальном списке.

Было:
squares = []
for x in range(10):
squares.append(x ** 2)

Стало:
squares = [x ** 2 for x in range(10)]


Преимущества:
– Простота чтения: без циклов for и вложенности;
– Скорость. Быстрее for-циклов, которые он и заменяет;
– Неизменность данных. Исходные данные изменять опасно, а когда эти данные типа list или dict часто начинаются проблемы. List comprehensions создает новый список, не меняя исходный.

В шестом альфа-релизе Python 3.15.0a6 (февраль 2026) появилась реализация PEP 798Unpacking in Comprehensions. До сих пор мы могли распаковывать коллекции внутри литералов списков/словарей ([*a, *b]), но не могли сделать то же самое внутри comprehensions (генераторов списков). PEP 798 исправляет это.

👉Склейка вложенных списков
Раньше:
list_of_lists = [[1, 2], [3, 4], [5, 6]] 
flattened = [x for sublist in list_of_lists for x in sublist]

С новым синтаксисом:
list_of_lists = [[1, 2], [3, 4], [5, 6]]
flattened = [*sublist for sublist in list_of_lists]

👉Слияние словарей

Раньше: цикл с update.

С новым синтаксисом:
dicts = [{"a": 1, "b": 2}, {"b": 3, "c": 4}, {"d": 5}]
merged = {**d for d in dicts}
# {'a': 1, 'b': 3, 'c': 4, 'd': 5}

👉Генераторы

gen = (*range(i) for i in range(3))  # 0, 0, 1, 0, 1, 2

❗️Осторожно:
– В Python 3.15 эта фича пока в альфе. Использовать в продакшене рано, но тестировать уже можно!
– Синтаксис работает только на верхнем уровне выражения. То есть [*x for x in y] — ок, а [x for x in [*y]] (если бы это имело смысл) — нет;
– В асинхронных генераторах пока есть нюансы с yield from.
3🔥3
🐍 Сколько зарабатывает миддл Python-разработчик в 2026 году?

По данным Dreamjob средняя зарплата миддл Python-разработчиков с 2026 году — 233 000 рублей! Но рынок меняется быстрее, чем требования в вакансиях, поэтому хотим собрать актуальную статистику по зарплатам и грейдам среди Python-разработчиков!

Пройдите короткий анонимный опрос — это займет меньше минуты!
🤔Про использование ИИ мы сейчас слышим из каждого утюга. Но так ли эффективно внедрение искусственного интеллекта в процессы?

Согласно отчету MIT, 95% процентов пилотных проектов не влияют на результаты компаний.

Почему так может быть? Мы собрали три ловушки, в которые попадают разработчики, которые используют ИИ-агентов. Делимся первой:

✍️Вайб-кодинг (vibe coding)
— Что это: код генерируется быстро, но критерии приемки и гейты качества либо отсутствуют, либо формальны;
— Симптом: «работает у меня». На следующий день — регрессии, ломается сборка, растёт шум в ревью;
— Пример: агент «поправил авторизацию», но не обновил тесты и не проверил пограничные случаи. Вы узнаете об этом по падению в проде или по жалобам;
— Лечение: сначала сделать базовые гейты обязательными, потом поднимать глубину делегирования написания кода ИИ.

А вы используете ИИ-агентов в своей работе и насколько удовлетворены результатами? Пройдите, короткий опрос, который займет меньше минуты! Рассказывайте о проблемах, с которыми сталкиваетесь при использовании ИИ, в комментариях!

Если ответов будет много, мы запостим еще две ловушки, с которыми сталкиваются разработчики!
Вы используете ИИ-агентов для разработки программных продуктов?
Anonymous Poll
23%
Нет, не использую
40%
Да, но не часто
34%
Да, часто
3%
Полностью отдал написание кода ИИ
Сталкивались с проблемами при использовании ИИ для разработки программных продуктов?
Anonymous Poll
11%
Нет, проблем нет
40%
Да, иногда бывают проблемы
37%
Да, проблем много
11%
Быстрее сделать самому ручками
Видим, что вы часто сталкиваетесь с проблемами при использовании ИИ в разработке. Мы уже писали о первой ловушке, которая мешает разработчикам научиться использовать ИИ в разработке. Сегодня поделимся еще двумя.

✍️Ложная автономность (proxy autonomy)
— Что это: кажется, что «агент делает», но вы всё продумываете за него;
— Симптом: чтобы получить результат, вы пишете слишком подробные инструкции до уровня «вот в этом файле поменяй эту функцию». Быстрее было бы сделать руками;
— Пример: задача выглядит как «сделай фичу», а по факту вы диктуете агенту пошаговый рецепт, потому что без него он не попадает в архитектуру.
— Лечение: поднимать глубину делегирования кодинга там, где можно описать ценность и критерии приемки, а не технические шаги. Инвестировать в контракты (например, схему API) и шаблоны задач.

✍️Разрастание скоупа (scope explosion)
— Что это: агент начинает «улучшать всё подряд»: правит форматирование, переименовывает, меняет архитектуру, добавляет лишние зависимости;
— Симптом: слишком большой набор изменений без понятной цели, много побочных правок, сложно ревьюить;
— Пример: вы попросили «починить баг», а агент параллельно переименовал половину модулей и заменил библиотеку логирования;
— Лечение: жесткие рамки (что трогаем/не трогаем), лимит на размер изменений, стоп-правила («остановись и спроси»), приоритет «минимальное изменение, которое дает ценность».

— Дополнительно: ввести бюджет код-ревью (Code Review Budget): лимит времени и внимания на ревью, под который подгоняете объем изменений;
— Дополнительно: фиксировать архитектуру и ценность ее компонентов, чтобы агент не «оптимизировал» то, что трогать нельзя.

Аналогия: вы приехали на замену масла, а мастер решил «заодно оптимизировать» систему охлаждения и разобрал полмашины. Иногда это делает лучше, но чаще превращает простую операцию в непредсказуемый ремонт.

👉А с какими еще ловушками при использовании ИИ-агентов вы сталкивались? Делитесь в комментариях!
🤔 Давайте вместе разберемся, что не так с этим кодом?
...
for vacancy in response.json()['items']:
...
pages = response.json()['pages']
...

👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.

➡️Пишите в комментариях, что можно исправить!
Превращение JSON строки в структуру данных Python требует много процессорного времени. Этот ресурс не безграничен, поэтому нельзя допустить, чтобы программа транжирила его на неоправданно частые вызовы метода response.json().

Код из нашего примера может выглядеть так:
...
payload = response.json()
for vacancy in payload['items']:
...
pages = payload['pages']
...


Спасибо большое, что активно писали в комменты и предлагали свои варианты!
🔥4
Зачем проходить мок-интервью

Мы часто сталкиваемся с тем, что наши ученики не понимают ценность прохождения мок-интервью. Сегодня расскажем о том, чем полезен этот инструмент!

Mock-interview (от англ. mock — имитация, тренировка) — имитация собеседования с опытным ментором. В роли ментора может быть опытный HR или сильный технический эксперт.

Мок-интервью позволяет:
— Проверить соответствие своих навыков выбранной вакансии;
— Выявить пробелы, получить подробную обратную связь о своих хард- и софт-скиллах;
— Повысить уверенность за счёт тренировки.

❗️При прохождении мок-интервью у многих есть психологический барьер, который похож на языковой, когда человек учит иностранный язык, но боится на нем говорить. Его сложно преодолеть.

✍️Вот, причины, из-за которых наши ученики откладывают мок-интервью:
— Кажется, что пока нечего рассказать о себе и своем опыте;
— Кажется, что ещё не всё прочитал/изучил, пока не готов;
— Кажется, что мне это пока не нужно.

❗️Но, это только так КАЖЕТСЯ.

📌Основная цель мок-интервью — отрепетировать будущее собеседование — выстроить самопрезентацию, ответы на вопросы интервьюера, наработать шаблоны.

Все это придает уверенности, понимания, какие вопросы могут задать и как на них отвечать. Эти навыки не появляются сами собой и их почти невозможно выработать «дома, перед зеркалом». Их можно получить либо в ходе реальных интервью, где вы набьете шишки сами, либо в ходе тренировки с опытными наставниками.

По каким критериям мы оцениваем мок-интервью

Мы выработали следующие подходы по прохождению мок-интервью:

1️⃣Серия из 3 мок-интервью для тех, кто идет в профессию с нуля
Почему 3 интервью? Минимально, именно столько нужно, чтобы «набить руку». Мы не загоняем никого в рамки и даем время на подготовку, анализ результатов и ошибок.

Процесс выстраиваем итерациями: прошёл первое мок-интервью → получил обратную связь → ушел готовиться и закрывать пробелы.

После третьего интервью мы видим, что удалось подтянуть те знания, на которые раньше не хватало времени или внимания, сформировать шаблоны ответов на типичные вопросы, выстроить четкую самопрезентацию и в разы вырастить уверенность в себе и своем опыте.

2️⃣Точечная подготовка к тех.интервью по конкретной вакансии

Интервьюер:
— Пройдет с вами по требованиям в вакансии;
— Задаст именно те вопросы, которые вы, скорее всего, услышите на собеседовании;
— Проведёт быстрый ликбез, там, где у вас не хватает каких-то знаний;
— Даст развернутую обратную связь и рекомендации.

🗣Вот отзыв нашего выпускника, прошедшего мок-интервью:

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


В Devman, вне зависимости от выбранного курса, любой студент может запросить прохождение мок-интервью. Не упускайте возможности, проходите подготовку и получайте привлекательные офферы!
6
🥳🥳🥳Запускаем распродажу мини-курсов с 20 апреля по 3 мая!

Длинные майские праздники — отличный повод начать что-то новое!

Дарим вам скидку 10% на все наши мини-курсы!

Преимущества мини-курсов:
👉 Поддержка куратора в личном чате, если не удается пройти урок;
👉 Код-ревью от действующего разработчика по каждому проекту;
👉 Гибкий график занятий — занимайтесь в любое время;
👉 Прокачивайте навыки точечно — только по необходимой теме;
👉 Можно начать занятия в любое время. Курс ваш навсегда.

⚡️Выбирайте мини-курсы со скидкой здесь или задавайте вопросы нам в Telegram!
Нейросети все еще туповаты или руки кривые?

Тему ИИ обсуждают все. Есть две крайности — ИИ тупой, ничего не может vs ИИ может/сможет заменить всех. Истина, как обычно, где-то посередине)

1️⃣ Бесплатные модели отстают в развитии от текущих на 1-2 года. При это функционально каждая следующая модель выходит все чаще и при этом многократно превосходит предыдущую. А с учетом острой конкуренции и при этом внедрении самих ИИ для разработки следующего поколения ИИ, то скорость прогресса и правда космическая!

2️⃣ ИИ уже в бизнесе, обучении, быту. Мир уже изменился.

3️⃣ Сейчас ограничения возможностей не в ИИ, а в процессах и в мышлении. Будешь пытаться работать с ними как с привычными алгоритмами или 1-к-1 воспроизводить процессы без ИИ = получится 💩

Если говорить про разработку кода, то нельзя загонять ИИ на жесткие рельсы — его сила в ассоциативности и генерации нового. Нужен жесткий алгоритм - напишите скрипт и выдайте ИИ-агенту как инструмент. Оставьте место нейросети для разумного креатива. Как и человеку — нужны критерии результата и контекст, но не инструкция "жми сюда - потом сюда - затем ...". Ведь все мы немного по-разному действуем, но можем при этом достигать сопоставимых результатов. А иногда и превосходить ожидания, найдя новый путь.

4⃣ Придется обзавестись целой пачкой инструментов, которые помогут отлаживать работу ИИ, тестировать. Говоря про эффективный вайбкодинг, то надо сосредоточиться на оптимизации код-ревью, сбора требований и ревью архитектуры прежде всего, потому что это теперь узкие горлышки процесса.

Даже если пишете контент с помощью ИИ, то инструменты все равно нужны. Можно найти варианты, где они уже готовы. MCP сервера для работы с гугл-таблицами, например, есть почти во всех платформах для агентов вроде ChatGPT.
🔥1