Хочешь не просто писать код, а расти как специалист и двигаться к роли, о которой мечтаешь?
Вот промпт, который поможет составить персональный план роста — с проектами, нетворкингом и прокачкой скиллов.
Help me create a personalized career growth plan based on my current role as a [your role] and my long-term goal to become a [desired position].
Identify key skills I need to develop, high-impact projects I should pursue, and networking strategies to connect with industry leaders.
Include creative ways to showcase my expertise (e.g. speaking opportunities, internal initiatives) and suggest a 90-day action plan to track progress.
Bonus: Recommend 2-3 people I should learn from and what I can study from their career paths.
— Помогает построить стратегию карьерного роста под твои цели
— Даёт идеи для прокачки и полезных активностей
— Формирует план на 90 дней + вдохновляет примерами карьер других
— Выйти из Junior уровня и наметить путь к Middle
— Спланировать переход в Team Lead или архитекторы
— Понять, какие активности на работе и вне её помогут выделиться и расти быстрее
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Приручи алгоритмы: из формул в код за один воркшоп
Готовы превратить сложную теорию машинного обучения в практические навыки? Тогда приходите на наш воркшоп, который пройдет 21 апреля.
Что вас ждет на воркшопе:
🟢 Работа с реальными данными — никаких учебных датасетов, только то, что встречается в настоящих проектах.
🟢Снижение размерности с PCA — научитесь выделять главное из информационного шума.
🟢Случайный лес vs градиентный бустинг — разберемся, в чём ключевое различие и когда какой алгоритм эффективнее.
🟢Мастерство гиперпараметров — освоите тонкую настройку моделей для максимальной точности.
На нашем воркшопе вы не просто слушаете — вы делаете сами! Вы будете писать код на Python, применять популярные библиотеки и сразу видеть результат своей работы.
А самое ценное: каждый участник получит персональный code review от Марии Горденко — инженера-программиста, старшего преподавателя НИУ ВШЭ, руководителя магистратуры от ГК Самолет и Альфа-Банка.
⏰ Когда: 21 апреля
💸Стоимость: всего 3990₽
Только сегодня, до конца дня: 10 мест по промокоду kulich → 2 990 ₽.
➡️ Записаться на воркшоп: https://proglib.io/w/6f0e5775
Готовы превратить сложную теорию машинного обучения в практические навыки? Тогда приходите на наш воркшоп, который пройдет 21 апреля.
Что вас ждет на воркшопе:
🟢 Работа с реальными данными — никаких учебных датасетов, только то, что встречается в настоящих проектах.
🟢Снижение размерности с PCA — научитесь выделять главное из информационного шума.
🟢Случайный лес vs градиентный бустинг — разберемся, в чём ключевое различие и когда какой алгоритм эффективнее.
🟢Мастерство гиперпараметров — освоите тонкую настройку моделей для максимальной точности.
На нашем воркшопе вы не просто слушаете — вы делаете сами! Вы будете писать код на Python, применять популярные библиотеки и сразу видеть результат своей работы.
А самое ценное: каждый участник получит персональный code review от Марии Горденко — инженера-программиста, старшего преподавателя НИУ ВШЭ, руководителя магистратуры от ГК Самолет и Альфа-Банка.
⏰ Когда: 21 апреля
💸Стоимость: всего 3990₽
Только сегодня, до конца дня: 10 мест по промокоду kulich → 2 990 ₽.
➡️ Записаться на воркшоп: https://proglib.io/w/6f0e5775
Один из наших подписчиков поднял интересный и часто обсуждаемый вопрос среди разработчиков: что важнее — читаемость или эффективность кода?
Простой способ:
return n % 2 == 1
Быстрее, но сложнее для восприятия:
return bool(1 & n)
Простой способ:
if len(my_string) == 0:
Быстрее, но менее интуитивно:
if not my_string:
Простой способ:
if element in my_list:
Быстрее, но менее понятно:
try:
my_list.index(element)
except ValueError:
pass
💭 Когда стоит жертвовать читаемостью ради эффективности? Поделитесь своими примерами и мыслями в комментариях!
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Pyre— статический анализатор типов, способный проверять миллионы строк кода за секунды. Работает инкрементально и в режиме демона, поддерживает PEP 484 и отлично вписывается в большие проекты.
brew install python3 watchman
sudo apt-get install python3 python3-pip python3-venv
sudo apt install watchman
mkdir my_project && cd my_project
python3 -m venv ~/.venvs/venv
source ~/.venvs/venv/bin/activate
pip install pyre-check
pyre init
Инициализация создаст конфигурационные файлы
.pyre_configuration
и .watchmanconfig
.echo "i: int = 'string'" > test.py
pyre
Found 1 type error!а: Pyre
test.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Дисперсия — ключевой статистический показатель, который помогает оценить изменчивость данных. Для дата-сайентистов она критична при:
В этой статье разберём, как правильно использовать дисперсию в Data Science и как она влияет на работу алгоритмов, например, в модели Random Forest.
👉 Читайте, чтобы понять, как измерять и учитывать дисперсию: https://proglib.io/sh/GDKYJQdAI2
Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
Самые догадливые, пишите ответ в комментах 👇
Небольшая подсказка — это термин относится к Python.
Прячем ответы под спойлер, чтобы не спалить остальным.
Библиотека питониста #междусобойчик
Небольшая подсказка — это термин относится к Python.
Прячем ответы под спойлер, чтобы не спалить остальным.
Библиотека питониста #междусобойчик
📚Напоминаем про наш полный курс «Самоучитель по 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
Мы написали и собрали для вас в одну подборку все 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
🚀 Релизы и инструменты:
— Шесть релизов Python за один день — весна 2025-го врывается с размахом
— TARIFF — «величайший» Python-пакет
🧠 Профессия и карьера:
— Python остаётся топ-навыком для AI-вакансий — по данным AI Index 2025
🧪 Разработка и производительность:
— Примитивный компилятор на Python — учебный проект с нуля
— CPU-кеш и Python — может ли кеширование ускорить ваш код
🌐 Django и веб:
— F(), Func() и никаких циклов — как Django пишет SQL под капотом
— Django Simple Deploy + DevOps — обсуждаем в подкасте
— Go vs Python для веб-скрейпинга — сравнение инструментов
🎥 Видео:
— Data Engineering + AI/LLMs — видео-урок по загрузке данных
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Завтра запускаем ML-ракету: последние места на борту
Уже завтра, 21 апреля, состоится наш воркшоп «Математика машинного обучения на практике», где теория ML превращается в практические навыки.
Что вас ждет:
📍 Работа с реальными данными — табличные датасеты и изображения
📍 Снижение размерности через PCA — научитесь отделять важное от второстепенного
📍 Обучение моделей — Random Forest и градиентный бустинг в действии
📍 Разбор метрик и гиперпараметров — как настроить модель на максимальную эффективность
📍 Написание кода на Python — прямо как реальных проектах
📍 Персональный code review от эксперта — бесценный фидбек для вашего роста
📍 Доступ в закрытый чат участников — нетворкинг и обмен опытом
Кто проводит воркшоп:
Мария Горденко — инженер-программист, старший преподаватель НИУ ВШЭ и Proglib Academy, руководитель магистратуры от ГК Самолет и Альфа-Банка.
Стоимость участия: 3990₽
Когда: завтра, 21 апреля
👉 Забронировать место на воркшопе: https://proglib.io/w/6f0e5775
Уже завтра, 21 апреля, состоится наш воркшоп «Математика машинного обучения на практике», где теория ML превращается в практические навыки.
Что вас ждет:
Кто проводит воркшоп:
Мария Горденко — инженер-программист, старший преподаватель НИУ ВШЭ и Proglib Academy, руководитель магистратуры от ГК Самолет и Альфа-Банка.
Стоимость участия: 3990₽
Когда: завтра, 21 апреля
👉 Забронировать место на воркшопе: https://proglib.io/w/6f0e5775
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Python | тесты, код, задания
🎉 T-строки официально в Python 3.14
В конце 2025 года нас ждёт мощное пополнение — в Python появятся template strings (t-strings). Это новая форма строк, которая решает старые проблемы f-строк и открывает дверь к более безопасной и гибкой работе с текстом.
🎌 Что такое t-строки
С f-строками (f"...") мы живём с 2016 года — они удобные, но иногда… опасные. Например:
🔎 Такой код легко подставляет вредоносный ввод — и привет, SQL-инъекция или XSS.
Теперь появляется альтернатива: t-строки. Они выглядят похоже:
🔎 Но — они не превращаются сразу в строку, а становятся объектом
🎌 Безопасный HTML
Пример: экранирование HTML-ввода
🔎 Больше никакой грязи в шаблоне. А ещё
🎌 Как работать с t-strings
Шаблон предоставляет доступ к строкам и значениям до их объединения. Свойства
Всегда будет на одну строку больше, чем значений. Например:
Можно просто пройтись по шаблону в цикле:
Для продвинутой обработки можно получить данные о каждой интерполяции:
Можно создать шаблон напрямую:
T-строки — это:
✔️ Безопасность для HTML, SQL и Markdown
✔️ Возможность сложной обработки шаблонов
✔️ Гибкость: можно возвращать любой тип, а не только строку
🔎 Очень хочется, чтобы форматтеры типа black и ruff поддержали t-строки, а VS Code начал подсвечивать их содержимое. Потому что t-strings — это не просто новая игрушка, а основа для более безопасного Python-кода.
Библиотека питониста #свежак
В конце 2025 года нас ждёт мощное пополнение — в Python появятся template strings (t-strings). Это новая форма строк, которая решает старые проблемы f-строк и открывает дверь к более безопасной и гибкой работе с текстом.
С f-строками (f"...") мы живём с 2016 года — они удобные, но иногда… опасные. Например:
f"SELECT * FROM users WHERE name = '{user_name}'"
Теперь появляется альтернатива: t-строки. Они выглядят похоже:
from string.templatelib import Template
template = t"Hello {name}!"
Template
. Их нужно явно обработать, и это даёт пространство для экранирования, валидации и любых безопасных преобразований.Пример: экранирование HTML-ввода
evil = "<script>alert('bad')</script>"
template = t"<p>{evil}</p>"
safe = html(template)
assert safe == "<p><script>alert('bad')</script></p>"
html()
может возвращать полноценный HTMLElement
, а не просто строку. Всё гибко.Шаблон предоставляет доступ к строкам и значениям до их объединения. Свойства
.strings
и .values
возвращают кортежи:name = "World"
template = t"Hello {name}!"
assert template.strings == ("Hello ", "!")
assert template.values == (name,)
Всегда будет на одну строку больше, чем значений. Например:
t"".strings == ("",)
t"{name}".strings == ("", "")
Можно просто пройтись по шаблону в цикле:
template = t"Hello {name}!"
contents = list(template)
assert contents[0] == "Hello "
assert contents[1].value == name
assert contents[2] == "!"
Для продвинутой обработки можно получить данные о каждой интерполяции:
template = t"Hello {name!s:>8}!"
interp = template.interpolations[0]
assert interp.value == name
assert interp.expression == "name"
assert interp.conversion == "s"
assert interp.format_spec == ">8"
Можно создать шаблон напрямую:
from string.templatelib import Template, Interpolation
template = Template(
"Hello ",
Interpolation(value="World", expression="name"),
"!"
)
T-строки — это:
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Senior Python Developer (Blockchain) — от 3500 до 4500 $, удалённо
Руководитель группы разработки Python — от 350 000 до 550 000 ₽, удалённо
Python developer (DDI) — от 250 000 ₽, гибрид (Москва)
Tech Lead Python — от 350 000 ₽, удалённо
Junior Python Developer — от 130 000 до 300 000 ₽, удалённо
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
Async-инициализация в Python: какие есть подходы
В Python нет нативной поддержки асинхронного
⬇️ Вот какие стратегии чаще всего используют — с плюсами и минусами.
1️⃣ @classmethod async def initialize()
🌥 Плюсы:
— Лаконично
— Хорошо отделяет sync и async логику
— Удобно для тестов
🌥 Минусы:
— Нет устоявшейся конвенции
— Может быть неочевидно для команды
🌥 Подходит для простых случаев без необходимости в очистке ресурсов.
2️⃣ Асинхронный контекстный менеджер (__aenter__ / __aexit__)
🌥 Плюсы:
— Устоявшийся паттерн (
— Удобно добавлять логику очистки в будущем
🌥 Минусы:
— Нужно писать
— Не всегда удобно, если объект нужен за пределами контекста
🌥 Подходит, если нужно управлять жизненным циклом ресурса.
3️⃣ Инициализация в фоне через create_task()
🌥 Плюсы:
— Можно запускать загрузку параллельно с другими задачами
— Подходит для высоконагруженных систем
🌥 Минусы:
— Сложнее в отладке
— Нужно явно проверять
— Нет встроенного механизма очистки
🌥 Хорошо подходит для внутренних компонентов или фреймворков, где поведение контролируется централизованно.
4️⃣ Внешний async-фабричный метод / билдер
Просто выносим всю асинхронную инициализацию за пределы класса.
🌥 Плюсы:
— Чистый и легко тестируемый код
— Гибко масштабируется
🌥 Минусы:
— Логика разнесена по разным местам
— Использование может стать чуть более многословным
🌥 Идеально, если важна читаемость и разделение ответственности.
5️⃣ await instance.ready()
Гибридный подход: конструктор sync, а использование — с явной асинхронной инициализацией.
🌥 Позволяет разделить создание и инициализацию, сохраняя контроль над потоком.
6️⃣ Запрет обычного __init__, только async-конструктор
🌥 Форсирует корректное использование через async-интерфейс.
▫️ Какой подход выбрать:
🤖
🤖
🤖
🤖 Async factory — тестируемость, масштабируемость
🤖
🤖
Библиотека питониста #буст
В Python нет нативной поддержки асинхронного
__init__
, поэтому приходится искать обходные пути, если объект требует асинхронной инициализации (например, получения ресурса через await get_resource()
). class Klass:
def __init__(self, resource):
self.resource = resource
@classmethod
async def initialize(cls):
resource = await get_resource()
return cls(resource)
— Лаконично
— Хорошо отделяет sync и async логику
— Удобно для тестов
— Нет устоявшейся конвенции
— Может быть неочевидно для команды
class Klass:
async def __aenter__(self):
self.resource = await get_resource()
return self
async def __aexit__(self, exc_type, exc, tb):
pass
— Устоявшийся паттерн (
async with
)— Удобно добавлять логику очистки в будущем
— Нужно писать
async with
при каждом использовании— Не всегда удобно, если объект нужен за пределами контекста
class Klass:
def __init__(self):
self.ready_event = asyncio.Event()
asyncio.create_task(self._load())
async def _load(self):
self.resource = await get_resource()
self.ready_event.set()
async def use(self):
await self.ready_event.wait()
await do_something_with(self.resource)
— Можно запускать загрузку параллельно с другими задачами
— Подходит для высоконагруженных систем
— Сложнее в отладке
— Нужно явно проверять
await ready_event.wait()
— легко забыть— Нет встроенного механизма очистки
Просто выносим всю асинхронную инициализацию за пределы класса.
— Чистый и легко тестируемый код
— Гибко масштабируется
— Логика разнесена по разным местам
— Использование может стать чуть более многословным
Гибридный подход: конструктор sync, а использование — с явной асинхронной инициализацией.
klass = Klass()
await klass.ready()
class Klass:
def __new__(cls, *args, **kwargs):
raise RuntimeError("Используйте `await Klass.create()`")
@classmethod
async def create(cls):
self = super().__new__(cls)
self.resource = await get_resource()
return self
initialize()
— простая async-инициализация без очистки__aenter__
/__aexit__
— нужна очистка или сложный жизненный циклcreate_task()
+ Event
— нужно запускать инициализацию в фоне.ready()
— чистое разделение этапов__new__
+ async — строгий контроль над созданиемБиблиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда Django-запросы вытягивают из базы больше данных, чем нужно, это тормозит работу приложения. Чтобы ускорить выполнение и уменьшить нагрузку, можно использовать методы:
defer()
— откладывает загрузку указанных полей до их фактического использования only()
— загружает только указанные поля, остальные — по запросу exclude()
— фильтрует объекты, исключая ненужныеВ статье — практические примеры на базе веб-приложения для агентства недвижимости: как применять эти методы, чтобы получать только нужные данные и ускорять запросы.
🔗 Подробнее в статье: https://proglib.io/sh/2vagPRorTU
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
🧰 Инструмент недели: ViperView — визуализатор pip-пакетов
Если вы хотите лучше понять, какие библиотеки занимают место в вашем Python-окружении — попробуйте ViperView. Это простое и удобное десктопное приложение с графическим интерфейсом на PyQt5.
✅ Возможности:
• Отображение всех установленных pip-пакетов: версия, размер и путь
• Интерактивная диаграмма с 20 самыми «тяжёлыми» библиотеками
• Поиск и фильтрация в реальном времени
• Экспорт информации в CSV
↗️ ViperView поможет вам наглядно оценить структуру окружения и освободить место, если нужно.
🔗 Репозиторий инструмента: https://clc.to/Jl4t3g
Библиотека питониста #буст
Если вы хотите лучше понять, какие библиотеки занимают место в вашем Python-окружении — попробуйте ViperView. Это простое и удобное десктопное приложение с графическим интерфейсом на PyQt5.
• Отображение всех установленных pip-пакетов: версия, размер и путь
• Интерактивная диаграмма с 20 самыми «тяжёлыми» библиотеками
• Поиск и фильтрация в реальном времени
• Экспорт информации в CSV
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда сроки горят, а разработчиков не хватает
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/