Программистика
Закритий канал
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
Показати більше5 579
Підписники
-324 години
-427 днів
-12830 день
Архів дописів
5 578
🖥 pre-commit — ваш автоматический код-ревьюер.
Эта библиотека превращает Git-хуки в мощную систему контроля качества кода. Вместо ручного запуска линтеров перед каждым комитом, pre-commit автоматически проверяет изменения на качество — будь то синтаксические ошибки в Python или форматирование SCSS-файлов.🖥 Ссылка на GitHub Программистика|| #Репозиторий
5 578
👩💻 codecademy.com
Интерактивная платформа, предлагающая бесплатный курс для начинающих, который познакомит вас с основами Python
🌐 СсылкаПрограммистика || #Ресурсы
5 578
👀 FastAPI: веб-разработка на Python
FastAPI — относительно новый, но надежный фреймворк с чистым дизайном, использующий преимущества актуальных возможностей Python. Как следует из названия, FastAPI отличается высоким быстродействием и способен конкурировать в этом с аналогичными фреймворками на таких языках, как Golang. Эта практическая книга расскажет разработчикам, знакомым с Python, как FastAPI позволяет достичь большего за меньшее время и с меньшим количеством кода.Программистика || #doc
5 578
👀 Основы динамики сооружений с применением Python
Курс знакомит с основами динамики сооружений, рассматриваются системы с одной и несколькими степенями свободы, их свободные и вынужденные колебания, в том числе с учетом демпфирования. Расчеты реализованы с использованием языка программирования Python.
🌐 СсылкаПрограммистика || #Course
5 578
👩💻 В сеть вывалилась гигантская куча курсов и книг от топовых IT‑школ
Держи сотни гигабайт свежих уроков, и каждую неделю мы подкидываем ещё!
• 1612 ГБ — DevOps
• 1402 ГБ — Python
• 1300 ГБ — C, C++
• 1815 ГБ — Frontend
• 1515 ГБ — Backend
• 898 ГБ — ИБ, Хакинг
• 996 ГБ — Kotlin, Swift
• 212 ГБ — JavaScript
• 315 ГБ — Flutter
• 820 ГБ — Go, PHP
• 419 ГБ — Java, Rust
• 648 ГБ — GameDev
• 517 ГБ — Windows, Linux
• 998 ГБ — Дизайн (UX/UI)
• 617 ГБ — Нейросети (ML/RL)
• 546 ГБ — БД (SQL & NoSQL)
• 687 ГБ — Аналитика данных
• 115 ГБ — QA-тестирование
Подписывайся и не плати за то, что можно получить бесплатно
5 578
👩💻 uv: pip на стероидах — ставит пакеты в 100 раз быстрее
Устал ждать, пока pip устанавливает зависимости? uv — это менеджер пакетов на Rust, который делает pip смешным. Там, где pip думает 30 секунд, uv справляется за полсекунды.
Установка библиотек, создание виртуальных окружений, разрешение зависимостей — всё летает. Он полностью совместим с pip и poetry, поддерживает pyproject.toml и работает так же просто. Просто меняешь
pip на uv pip в команде и получаешь невероятную скорость без изменения workflow.
Установка:
curl -LsSf https://astral.sh/uv/install.sh | sh
Использование:
uv venv # Создать виртуальное окружение
uv pip install requests # Установить пакет
uv pip sync requirements.txt # Синхронизировать зависимости
Программистика || #doc5 578
👀 Практикум по статистике на Python
Курс позволит закрепить базовые знания статистики и широко применяемых статистических методов на практических тестах и заданиях, в том числе с использованием Python (pandas, numpy, scipy, statsmodels, matplotlib).
🌐 СсылкаПрограммистика || #Course
5 578
Python – это просто. Пошаговое руководство по программированию и анализу данных
Рассмотрены основы синтаксиса языка Python на примере дистрибутива Anaconda. Показаны приложения IPython, Spyder IDE, Jupyter Notebook. Описан синтаксис переменных, функций, циклов. Подробно изучаются структуры данных в Python: строки, списки, кортежи, множества и словари. Объясняется понятие классов и их применение в объектно-ориентированном программировании. Описаны возможности библиотеки обработки изображений Pillow, библиотеки Tkinter для создания приложений с графическим интерфейсом. Отдельный раздел посвящен обработке ошибок и исключений в программах. Рассматриваются библиотеки NumPy и Pandas, приводятся практические примеры их использования для анализа и обработки данных. Описана библиотека Matplotlib и ее возможности в сфере визуализации данных.
Программистика || #Книги
5 578
Джуны — всё, ИИ победил. По статистике BCG, за последний год компании выбросили на улицу 75% молодняка. При этом миддлам и сеньорам зарплаты подняли в 4 (!) раза.
Чтобы подняться до уровня элит в аномально короткие сроки — подпишитесь на легендарные каналы для айтишников:
Новости и инсайды
Фронтенд разработка
ИИ и биг дата
Node js
Вёрстка
Питон и нейросети
QA-тестировщики
Там раскрыли инфу из курсов общей стоимостью 5.000.000р в эксклюзивных пошаговых инструкциях. Пока остальные пойдут на дно якорем, вы войдете в 10% тех, кто сломал систему.
5 578
👩💻 asyncio debugging — почему task зависла и не выполнится
Ты добавил
async/await, но задача так и не закончилась. Event loop крутится, а результата нет. И непонятно, где искать проблему — никаких ошибок, просто тишина.
🧱 Главные причины, почему task зависает
🟢 Забыл `await` — корутина вообще не запустилась:
async def fetch_data():
asyncio.sleep(1) # ❌ без await не работает
return "done"
Корутина создана, но не выполняется. Python даже warning не покажет, пока объект не удалится из памяти.
🟢 Используешь блокирующие вызовы — event loop встал:
async def process():
time.sleep(2) # ❌ блокирует весь loop
Все остальные task'и ждут, пока этот завершится. Используй await asyncio.sleep() или loop.run_in_executor() для синхронного кода.[4][5][6]
🟢 Создал task, но не дождался его завершения:
async def main():
asyncio.create_task(work())
# main() закончился → task убит
Task запустился, но main завершился раньше — незавершённые задачи просто отбрасываются.
✔️ Нужно так:
task = asyncio.create_task(work())
await task # или asyncio.gather()
🟢 Бесконечный цикл без `await` внутри:
async def loop_task():
while True:
do_something() # нет await
Event loop не может переключиться на другие задачи — они зависнут навсегда.[9]
📌 Как правильно дебажить
1️⃣ Включи debug mode — сразу увидишь проблемы:
asyncio.run(main(), debug=True)
или через переменную окружения:
PYTHONASYNCIODEBUG=1 python script.py
Покажет:
🟢 где корутина создана, но не awaited 🟢 какие task'и выполняются слишком долго (> 100ms) 🟢 где нарушена thread-safety2️⃣ Отслеживай "долгие" task'и вручную:
import time
TASK_DICT = {}
async def monitor_tasks(limit_sec=3):
while True:
for task in asyncio.all_tasks():
name = task.get_name()
if name not in TASK_DICT:
TASK_DICT[name] = time.monotonic()
duration = time.monotonic() - TASK_DICT[name]
if duration > limit_sec:
print(f'{name} зависла: {duration:.2f}s')
await asyncio.sleep(1)
Такой подход ловит задачи, которые живут слишком долго, даже если они не завершились.
3️⃣ Используй `asyncio.wait_for()` с таймаутом:
try:
result = await asyncio.wait_for(slow_task(), timeout=5.0)
except asyncio.TimeoutError:
print("Task застряла!")
4️⃣ Логируй всё подозрительное:
import logging
logging.basicConfig(level=logging.DEBUG)
async def risky_task():
logging.debug("Task started")
await something()
logging.debug("Task done")
Если второе сообщение не появилось — знаешь, где искать.
🧪 Бонус: отлов незавершённых задач при выходе
async def main():
try:
await asyncio.gather(task1(), task2())
finally:
tasks = [t for t in asyncio.all_tasks() if not t.done()]
for task in tasks:
task.cancel()
await asyncio.gather(*tasks, return_exceptions=True)
💡 Запомни:
📌 Без await корутина не запустится — только создастся объект 📌 Блокирующий код = застывший event loop 📌 Debug mode обязателен во время разработки 📌 asyncio.wait_for() с таймаутом спасает от вечного ожидания 📌 Незавершённые task'и при выходе из main — это утечка и багПрограммистика || #Статья
5 578
⚡️ Linux и DevOps теперь в Telegram!
Ребята делают реально классный канал про IT — просто, понятно и без воды.
О Linux, DevOps, разработке, безопасности и инструментах, которые помогают работать эффективнее.
Подписывайтесь: @recura_tech
5 578
👀 Сохрани меня, если сможешь: модули и файлы в Python
Вы узнаете, как сохранять и читать данные, разбивать код на удобные части, использовать сторонние библиотеки, управлять зависимостями и работать с виртуальным окружением.
Курс идеально подходит для выпускников «Функционального программирования на Python» и всех, кто хочет перейти от простых скриптов к созданию настоящих Python-проектов!
🌐 СсылкаПрограммистика || #Course
5 578
⚡️⚡️Новую базу курсов слили в сеть — хакеры снова выложили в паблик тонну курсов по IT от онлайн школ.
Материала почти на пол-терабайта, мы загрузили всё на канал, там есть:
🐍 Python и нейросети (28 полных курсов + библиотеки)
📈 Data Analysis + машинное обучение (15 курсов)
👨🏻💻 Frontend (от JS до React) — (20 курсов + библиотеки)
🤖 Backend + базы Данных (30 курсов)
🛡 Информационная безопасность (Защита+Атака) — (14 курсов)
🎮 Разработка игр (11 курсов)
Всё можно забрать бесплатно и смотреть без скачивания ➡️ @IT_SLIV
5 578
👀 Базовые алгоритмы. Реализация на Python и C++ на примере классических игр
В книге дается базовая алгоритмическая подготовка, классические алгоритмы разобраны одновременно на двух языках — C++ и Python на примере широко известных и интуитивно понятных компьютерных игр. Наглядно излагается реализация циклов, перебора, рекурсии, эвристики, рассматривается работа с деревьями решений, на примере шахмат предлагается знакомство с прямоугольными координатами, дается введение в самообучающиеся алгоритмы. Книга ориентирована как на начинающих программистов, так и на читателей, планирующих перейти на C++ или Python как на второй язык. Примеры, рассмотренные в книге, помогут сделать первые шаги на пути к профессиональному программированию игр.
Программистика || #Книги
5 578
👩💻 Type Hints без иллюзий: Python не станет статически типизированным
Все ставят type hints везде, думают, что это сделает код быстрее или предотвратит ошибки в runtime. Спойлер: нет. Type hints — это подсказки для тебя и для инструментов, а не для Python.
🧱 Типичные заблуждения
🟡 "Type hints делают код быстрее"
def add(a: int, b: int) -> int:
return a + b
add("hello", "world") # Работает! Python игнорирует hints
Результат: Python полностью игнорирует type hints в runtime. Никакой проверки, никакого ускорения.
🟡 "Type hints защищают от ошибок"
def greet(name: str) -> str:
return f"Hello, {name}"
greet(123) # Работает без ошибок!
Python не проверяет типы. Нужен mypy или pyright.
🟡 "Type hints нужны везде"
x: int = 5
y: str = "hello"
z: bool = True
Результат: захламлённый код. Type hints нужны где есть неочевидность, а не везде подряд.
🟡 "Hints замедляют код"
На самом деле: минимальный overhead только при загрузке модуля. В runtime — ноль влияния.
📌 Зачем они РЕАЛЬНО нужны
1️⃣ IDE видит типы → автодополнение работает
Без hints:
def process_data(data):
return data.split() # IDE не знает, что у data есть .split()
С hints:
def process_data(data: str) -> list[str]:
return data.split() # IDE знает, что data это str
Результат: автодополнение, подсказки методов, меньше ошибок при написании.
2️⃣ Статические анализаторы (mypy, pyright) ловят баги ДО запуска
def add_numbers(a: int, b: int) -> int:
return a + b
result = add_numbers(5, "10") # mypy/pyright: ERROR!
Запускаешь mypy script.py → видишь ошибку до запуска кода.[1][3]
3️⃣ Документация "в коде"
Без hints:
def fetch_user(user_id):
# Что такое user_id? str? int? UUID?
pass
С hints:
def fetch_user(user_id: int) -> dict[str, Any]:
# Понятно: на вход int, на выход словарь
pass
Результат: код читается как документация.[5][3]
4️⃣ Снижение багов в production
Пример из AI/ML:
def train_model(data):
# Кто-то передал NumPy array вместо PyTorch tensor
# Код упал через 3 часа обучения
pass
С hints:
import torch
def train_model(data: torch.Tensor) -> None:
# mypy сразу покажет ошибку, если передать не Tensor
pass
Результат: ошибки ловятся на этапе разработки, а не в production.
📌 Как правильно использовать
1️⃣ Базовые типы
def greet(name: str, age: int) -> str:
return f"{name} is {age} years old"
# Переменные (редко нужно)
x: int = 5
2️⃣ Списки, словари, множества
Python 3.9+:
def process_items(items: list[str]) -> dict[str, int]:
return {item: len(item) for item in items}
# Старый синтаксис (не используй)
from typing import List, Dict
def process_items(items: List[str]) -> Dict[str, int]:
pass
3️⃣ Optional (может быть None)
def find_user(user_id: int) -> str | None:
# Может вернуть str или None
if user_id > 0:
return "Alice"
return None
4️⃣ Union
def process_input(data: int | str) -> str:
if isinstance(data, int):
return str(data)
return data
5️⃣ Callable
from collections.abc import Callable
def execute(func: Callable[[int, int], int], a: int, b: int) -> int:
return func(a, b)
execute(lambda x, y: x + y, 5, 3) # OK
6️⃣ Generics
from typing import TypeVar
T = TypeVar('T')
def first_element(items: list[T]) -> T | None:
return items[0] if items else None
result = first_element([1, 2, 3]) # result: int | None
📌 Инструменты для проверки типов
Mypy — классика, написан на Python:
pip install mypy
mypy script.py
Pyright — от Microsoft, очень быстрый:
pip install pyright
pyright script.py
1. Не пиши hints везде
# Плохо
x: int = 5
y: str = "hello"
# Хорошо
x = 5 # Очевидно
y = "hello" # Очевидно
2. Пиши hints для функций
# Хорошо
def calculate_total(price: float, quantity: int) -> float:
return price * quantity
💡 Запомни:
👉 Type hints — для инструментов, не для Python 👉 Python игнорирует hints в runtime 👉 Нужен mypy/pyright для проверкиПрограммистика || #Статья
5 578
🖥 AI Math Notes - это интерактивное приложение, которое позволяет рисовть математические формулы на доске и получитать решения.
Как только уравнение написано, приложение использует мультимодальный LLM для его решения. Приложение построено с использованием Python с библиотекой Tkinter для графического интерфейса пользователя и PIL для обработки изображений.🐱 Ссылка на GitHub Программистика || #Library
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
