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

Сайт школы Девман: https://dvmn.org/
Контакт для связи: @yulya_devman
Download Telegram
17-19 октября мы участвовали в форуме Innovation week. Возвращаемся с текстовой версией выступления! 🌟

Мы рассказывали о нашем опыте разработки системы учета и ведения контактов и обсуждали проблемы проектирования!

👉 Читайте статью и делитесь впечатлениями!

⚡️ Напоминаем, что мы открыты к сотрудничеству в разных форматах!

🧑‍💻 Если вы хотите стать частью постоянной команды PelidTeam, сообщите нам. При найме мы отдаем предпочтение нашим ученикам!

💰 Если у вас есть знакомые, которым нужна квалифицированная команда для веб-разработки, напишите нам и мы обсудим сотрудничество по реферальной программе или в другом формате!
🔥4
🎅Скидки 25% на мини-курсы «Знакомство с Django: ORM», «Django», «Чат-боты на Python» и «Асинхронный Python» с 23 по 31 декабря!

☃️ Начало нового года — отличный повод подтянуть или углубить свои знания!

❄️«Знакомство с Django: ORM». С этим мини-курсом вы сможете подготовиться к курсу по Django — поучаствовать в разработке сайтов и реализовать все, что относится к базам данных.

👉Получить скидку можно здесь

❄️«Django» — поможет освоить самый популярный веб-фреймворк на Python — сможете создавать современные сайты, строить стартапы и работать над проектами крупных IT-компаний!

👉Получить скидку можно здесь

❄️«Чат-боты на Python» — поможет получить боевые навыки создания чат-ботов и прикрутить первую нейросетку!

👉Получить скидку можно здесь

❄️«Асинхронный Python» — познакомит вас с написанием асинхронного кода и поможет получить востребованный на рынке навык!

👉Получить скидку можно здесь

☃️ Выбирайте мини-курс для себя или в подарок и делитесь новостью с друзьями!
🔥3
⚔️ Программист или ИИ? Чей код лучше?

Во вторник 24 декабря в 14:00 поучаствуем в мастер-классе «Программист против ИИ». Сразимся с ИИ в скорости, качестве и удобстве написанного кода!

Как будет проходить мастер-класс:
⚡️ Участник выберет задачу для демонстрации
⚡️ Напишет код в прямом эфире
⚡️ Параллельно ИИ тоже напишет код
⚡️ Результаты сравним по скорости, качеству и удобству

От нас участвует Евгений Евсеев — сооснователь Devman.

Мастер-класс пройдет в прямом эфире на Ютуб 24 декабря в 14:00 (будет ретрансляция на VK)

Приглашаем вас присоединиться и поболеть за нас! 🏆

Ссылку на трансляцию пришлем в день мастер-класса.
🔥14🥰1
Всем привет! ☃️

Рассказываем, как будем работать в праздники:

❄️ С 30 декабря по 5 января включительно менторы, кураторы и проверяющие отдыхают. С 6 января работаем как обычно!
❄️ Сайт Devman будет работать все время, доступ к учебным материалам у вас будет в обычном режиме;
❄️ Для тех, кто на курсе «Профессия Middle Python/Django разработчик», неделя с 30 декабря по 5 января включительно не будет учитываться в сроке обучения!

🎄Желаем вам отдохнуть и провести это волшебное время вместе с близкими! Сделать все, что давно хотелось, но не хватало времени!

🎄 А если нет планов на праздники, то советуем выбрать книгу из нашего поста и провести время интересно и с пользой!
7
Как быстро найти работу в IT в 2025 году?

В пятницу 27 декабря в 14:00 поучаствуем в онлайн-дискуссии о поиске работы в сфере IT!

Какие вопросы обсудим:
✏️ Какие навыки будут самыми востребованными в 2025 году?
✏️ Как ИИ помогает и мешает в поиске работы?
✏️ Реальные кейсы успеха: что работает, а что нет?
✏️ Можно ли войти в IT с нуля за несколько месяцев?

От нас участвует Артем Каменев — операционный директор PelidTeam.

Дискуссия пройдет в прямом эфире на Ютуб, 27 декабря в 14:00 (будет ретрансляция на VK)

Приглашаем вас присоединиться, послушать и поучаствовать в обсуждении в комментариях! ➡️

Ссылку на трансляцию пришлем в день дискуссии.
🔥8
Девман для питонистов
Как быстро найти работу в IT в 2025 году? В пятницу 27 декабря в 14:00 поучаствуем в онлайн-дискуссии о поиске работы в сфере IT! Какие вопросы обсудим: ✏️ Какие навыки будут самыми востребованными в 2025 году? ✏️ Как ИИ помогает и мешает в поиске работы?…
💥Сегодня мы участвуем в онлайн-дискуссии о поиске работы в сфере IT!

Приглашаем присоединиться, послушать и поучаствовать в обсуждении в комментариях!

- Трансляция на Ютуб
- Ретрансляция на VK (появится в группе автоматически)
4
🎅Спешим поздравить вас с наступающими праздниками!

💙Спасибо, что остаётесь с нами, учитесь, развиваетесь и делитесь своим опытом. Пусть этот год принесёт вам много радости, новых знаний и успешных проектов!

🎄Пусть каждый день будет наполнен маленькими победами и большими достижениями! Помните, что нет ничего невозможного, особенно когда рядом такие же увлеченные люди, готовые поддерживать и помогать!

❄️Не забывайте заботиться о себе и своих близких. Найдите время для себя, ведь иногда самый важный шаг вперед начинается с хорошего отдыха!

⚡️До 31 декабря включительно у нас действуют скидки на мини-курсы. Выбирайте курс для себя или в подарок!
🔥6
🎄Мы собрали пожелания на 2025 год для вас от нашей команды:

Хочу пожелать вам уверенности в себе, постоянного любопытства и стремления узнавать новое. Пусть трудности не останавливают, а вдохновляют на рост! Не сдавайтесь, не переживайте из-за временных неудач и всегда верьте в достижение своей цели. Впереди вас ждет еще много интересного и захватывающего! 🎉

— Денис, ментор

def greet_new_year(students):
print("С Новым годом, дорогие ученики Devman!")
print("Пусть ваши строки кода будут безупречными,")
print("А ваши проекты - успешными!")
— Андрей, руководитель отдела продаж

В Новом Году желаю вам мегабайты хорошего настроения, гигабайты везения и терабайты успеха! Пусть изучение новых технологий и программирование даются легко и радостно!

— Юлия, директор Девман

В новом году я желаю вам поверить в свои силы. Не сдаваться и не пугаться трудностей. Не бояться обращаться за помощью. Найти время для себя и своей цели. Желаю быть преданными своей мечте и идти к ней до конца. Каждый из вас уникален, не стоит ни на кого равняться. У вас всё получится, стоит только захотеть и приложить к этому усилия. Верю в каждого! Сила — внутри вас самих

— Наталия, администратор курсов

Желаю, чтобы всё обучение прошло успешно и продуктивно

— Иван, ментор

Желаю успешно пройти курс и найти первую работу в столь непростое время для начинающих свою карьеру

— Дмитрий, ментор

Терпение и труд всё перетрут)

— Ильмир, ментор

Проявляйте упорство! Это — важный навык успешных разработчиков

— Евгений, куратор
🔥14
👑 Requests мертв. Да здравствует HTTPX!

Requests — одна из самых известных и популярных библиотек для работы с HTTP-запросами. Только за последний месяц она скачана по статистике PyPI более 597 млн раз, а версия 0.0.1 появилась еще в далеком 2011 году.

К сожалению, со временем накопились проблемы, которые у команды контрибьюторов Requests не получается своевременно решать:
🔻не поддерживает асинхронные запросы;
🔻не совместима с протоколом HTTP2;
🔻несговорчивый характер владельца привел к тому, что количество issues и пулл-реквестов зашкаливает:
— 183 открытых issues, самый старый с 2013 года;
— 73 пулл-реквеста, самый старый с 2017 года;
🔻иерархия исключений запутанная и неудобная.

HTTPX появилась еще в 2015, но активное развитие получила с 2019 года. И на данный момент распространяется все быстрее, заменяя Requests на старых проектах и добавляясь в новые. Для сравнения — количество скачиваний за последний месяц уже более 117 млн раз. Issues и пулл-реквесты активно обрабатываются.

🟢 Прежде всего, в библиотеке получилось реализовать как поддержку асинхрона, так и совместимость с обеими версиями HTTP 1 и 2.
🟢 Наглядная и понятная иерархия исключений порадует любого разработчика.
🟢 Интерфейс для синхронных и асинхронных запросов отличается только конструкциями await

😱Так что же теперь? Надо срочно искать курсы по HTTPX и переучиваться? Нет!

Если умеете пользоваться Requests, то переход на HTTPX не доставит проблем, часто достаточно просто заменить название библиотеки:

        response = requests.get(
f'{self.api_url}/getLists',
params={'api_key': self.api_key},
)

# Аналогично

response = httpx.get(
f'{self.api_url}/getLists',
params={'api_key': self.api_key},
)


✏️Небольшого изучения заслуживает иерархия исключений, которая отличается, а значит потребует немного времени на то, чтобы разобраться ее как заменить.

⚡️На сайте Девмана в декабре выкатили последний релиз, который полностью «изгнал» Requests.

💥В следующем году заменим его и в курсе «API веб-сервисов».

Эпоха Requests движется к закату, а мы с вами осваиваем новые библиотеки, инструменты, методики и продолжаем обучение! И это интересно и здорово!
🔥172
24 декабря мы поучаствовали в мастер-классе «Программист против ИИ» и сразились с ИИ в написании кода!

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

Делимся ссылками на записи трансляции для тех, кто не смог подключиться!
👉 Запись на YouTube
👉 Запись в VK

➡️Делитесь впечатлениями от мастер-класса в комментариях и рассказывайте, как проходят ваши праздники!
👍7
27 декабря мы поучаствовали в онлайн-дискуссии о поиске работы в сфере IT!

Обсудили вопросы:
⚡️ Какие навыки будут самыми востребованными в 2025 году?
⚡️ Как ИИ помогает и мешает в поиске работы?
⚡️ Реальные кейсы успеха: что работает, а что нет?
⚡️ Можно ли войти в IT с нуля за несколько месяцев?

Делимся ссылками на записи трансляции для тех, кто не смог подключиться!
👉 Запись на YouTube
👉 Запись в VK

➡️ А что вы думаете о поиске работы в IT в 2025 году? Делитесь мыслями в комментариях!
2
Хочешь погрузиться в мир DevOps?

Проверяющий и куратор Девмана по Docker и Kubernetes Тихон ведет свой Telegram канал. В нем ты узнаешь о новых фичах в мире DevOps и получишь помощь в рабочих задачах в дружелюбном комьюнити.

👉 Присоединяйся к каналу и общайся! ❤️
🔥2
🔥Реанимировали мини-курс «Командная строка», который входит в «Профессию Middle Python/Django разработчик»!

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

📌Что сделали: полностью пересобрали механизм управления песочницами и расширили функционал, чтобы можно было использовать его в других мини-курсах. Новый микросерсис по управлению песочницами назвали Sandman.

❗️Повысили стоимость мини-курса до 10 000 рублей. До конца месяца его можно купить со скидкой 25%!

👉Приобрести курс со скидкой можно здесь
🔥4
🔥Закончили обновление мини-курса «Основы Python» со 2 по 8 уроки!

Почему обновили:

📌 Онлайн IDE Repl.it изменил условия использования, что сделало его непригодным для выполнения заданий;
📌Искали полноценную онлайн-IDE на замену Repl.it и не смогли найти надежный вариант, который позволил бы выполнять все уроки мини-курса (кроме 1го урока);
📌 Разработка кода со второго урока теперь идет на локальной машине.

Долго не хотели переводить разработку на локальную машину, потому что она требует одновременного освоения командной строки, Git, работы с виртуальными окружениями и IDE. Совмещать все это с изучением Python с нуля для начинающих крайне сложно.

❗️Что сделали:

📌 В результате нашли простую схему — используем простой редактор кода в связке с веб-версией GitHub и командной строкой без виртуальных окружений;
📌 Отказались от полноценной IDE, потому что она требует много сил для изучения. У нее множество операций «под капотом», связанных с синхронизацией по Git, созданием виртуальных окружений, установкой библиотек и т.д., которые становятся «магией», мешающей отлаживать код;
📌Задания мини-курса можно выполнять на любой ОС. Туториалы написали с акцентом на Windows, потому что она вызывает больше проблем при подготовке рабочего места программиста;
📌 Заодно починили несколько проблемных мест в уроках: использование библиотеки Urwid, проблемы с SMTP и др.

👉Попробовать обновленный курс «Основы Python» можно здесь!
🔥7👍1
Из флудилки поступило предложение попрактиковаться в код-ревью. Давайте вместе попробуем разобраться, как улучшить приведенный код.

❗️Правила ревью: предлагая улучшение, пишите какую пользу оно принесет. Нужно описать кому это надо и в какой ситуации.

➡️ Проект для ревью: https://github.com/DevmanServices/Python_IPv4_Subnet

📍Пример:
Улучшение: Обернуть код в if/main

В какой ситуации улучшение полезно:
Разработчик: Импортирует как сторонний модуль в свой проект
→ Код вне конструкции `def`с 34 строки исполнится при импорте и приведет к ошибкам в работе ПО.

👉 Чтобы разобраться в чем польза от предложенного улучшения, можно заглянуть в типичные улучшения Девмана. Например, «Оберните код в if/main»

👉 Пишите свои улучшения кода в комментарии!
Последний шанс начать свой путь в программировании по старой цене!😱

С 11 февраля повышаем стоимость курса «Профессия Middle Python/Django разработчик» до 17 000 руб/мес.

ℹ️ Сроки:
Старая цена на на курс «Профессия Middle Python/Django разработчик» действует для всех, кто внесет первый платеж за обучение до 10 февраля включительно и приступит к занятиям до конца февраля.

Для всех кто уже начал обучение стоимость не изменится!

Чем полезен курс?
👉 Поддержка ментора в личном чате;
👉 Код-ревью от действующего разработчика по каждому проекту;
👉 Учебные командные проекты с опытным менеджером проектов;
👉 Гарантированная стажировка 13 недель на коммерческом проекте после выполнения всех уроков;
👉 Консультации HR и подготовка к техинтервью для трудоустройства;
👉 Для лучших выпускников есть возможность получить оффер к нам или нашим партнерам;
👉 Вернем деньги, если не трудоустроитесь разработчиком (см. условия и порядок оформления в оферте).

⚡️Успейте оставить заявку на курс по старой цене здесь или задайте вопросы в Telegram.
🔥2👍1
Успейте прокачать свои навыки программирования по старой цене! 😱

Повышаем стоимость на мини-курсы с 11 февраля!

💸Новая стоимость:

«Основы Python» — 17 500 руб.
«API веб-сервисов» — 18 000 руб.
«Git и GitHub» — 7500 руб.
«Чат-боты на Python» — 22 500 руб.
«Асинхронный Python» — 28 000 руб.
«Знакомство с Django: ORM» — 18 000 руб.
«Django» — 24 000 руб.

ℹ️ Сроки: старые цены сохраним до 10 февраля включительно.

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

⚡️Успейте купить мини-курсы по старой цене здесь или задайте вопросы в Telegram
1
🚀Разгоняем аналитические запросы с ClickHouse

Если вы уже успели погрузиться в веб-разработку, то наверняка познакомились хотя бы с одной СУБД, например, PostgreSQL.

ClickHouse — это тоже СУБД, но для онлайн обработки аналитических запросов (OLAP).

📌 Такие СУБД хранят данные в столбцах и подходят, когда запросы нечастые и в основном на чтение.
📌 При большом количестве данных, производительность по сравнению со строковыми СУБД может быть в 100 и более раз выше. Это особенно полезно при работе с данными телеметрии.

✏️ ClickHouse была разработана в 2009 году Яндексом для работы аналитической платформы «Яндекс Метрика». Изначально это был эксперимент для создания аналитических отчетов. Но, из-за выросшего спроса, в 2016 году к ней открыли доступ под лицензией Apache 2.

Наш тимлид Денис поделился опытом использования технологии на одном из проектов PelidTeam:

📌 Нет транзакций

Если добавить запись в базу, то это уже не откатить.

📌 Нет связей между таблицами

Все таблицы независимы друг от друга. Но есть поддержка SQL, поэтому соединение таблиц не проблема.

Вот пример одного из запросов для соединения таблиц:
        query = (
f'SELECT CASE '
f' WHEN COUNT(DISTINCT t.item_uuid) = 0 '
f' THEN 0 '
f' ELSE '
f' SUM(t.event)/COUNT(DISTINCT t.item_uuid) '
f'END AS somatic_eventss_per_item '
f'FROM item_events t FINAL '
f'WHERE not is_delete AND ‘2024-12-12’ <= t.event_date AND t.event_date < ‘2024-12-13’ '
)

Есть библиотека clickhouse-sqlalchemy, если хотите писать запросы на Python.

📌 Дорогие запросы на изменение

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

Для каждой таблицы движок задается при ее создании. На проекте мы работаем с ReplacingMergeTree. Вместо изменения данных он добавляет еще одну запись и последняя запись заменяет предыдущую. Тут есть особенности работы с запросами, чтобы не получить дубли в таблице.

📌 Клиентские библиотеки

Для работы с Python очень популярна сторонняя библиотека clickhouse-driver, но она синхронная. Есть асинхронная обертка для этой библиотеки — `aioch`.

📌 Нет готового инструмента резервного копирования

Нет универсального решения для резервного копирования и восстановления — аналога pgdump. Но есть утилита `clickhouse-backup`, которая позволяет создавать резервные копии и восстанавливать их.

ClickHouse удивил на первых порах по сравнению с опытом использования PostgreSQL. Знакомство прошло быстро и приятно, команда быстро освоила инструмент благодаря качественной документации и наличию опыта работы с SQL. Ценность для проекта при этом высокая — нужно читать из облака данные из таблиц с сотнями тысяч значений и более.

Использовали ClickHouse или пользуетесь другой столбцовой СУБД? Делитесь опытом в комментариях 👉
👍2
Некоторые новые джуны на самом деле не умеют писать код без ИИ-помощников

Некоторые новые джуниоры не умеют писать код без помощников на базе искусственного интеллекта, пишет в своём блоге разработчик Наманьяйа Гоэль. Он отметил, что каждый младший разработчик из его круга общения постоянно использует Copilot, Claude и ChatGPT.

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

«Мы обмениваем глубокое понимание на быстрые решения, и хотя в настоящий момент это кажется прекрасным, позже нам придётся за это заплатить», — подчёркивает Гоэль.

Он сообщил о появлении целого поколения новых программистов, которые даже не знают, что такое Stack Overflow. Раньше существовал другой способ отладки проблем программирования: поиск в Google и общение с более квалифицированными специалистами, в том числе через Stack Overflow.

Современные джуны просто открывают чат-боты и вставляют туда любые ошибки, которые они видят. Такие инструменты, как Cursor, позволяют даже не переключаться между окнами браузера для этого. Это быстро и удобно, но лучший способ обучения — это чтение обсуждений опытных разработчиков по интересуемой теме, настаивает автор блога.