24940
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd
Возможности Python реально впечатляют 😱
Читать полностью…
⚡️ Хитрая задача на Python: кратчайший подмассив с суммой ≥ K (O(n))
Задача. Дан массив A (могут быть отрицательные) и K. Найти минимальную длину подмассива с суммой ≥ K. Если нет — вернуть -1.
Подвох. С отрицательными числами не работает двухуказательную. Решение — префиксные суммы + монотонная дека.
Идея.
Пусть P[i] — префиксная сумма до i. Нам нужно минимизировать i - j при условии P[i] - P[j] ≥ K.
Храним индексы j в деке так, что значения P[j] строго возрастают:
- Пока текущий P[i] − P[deque[0]] ≥ K — обновляем ответ и выкидываем голову (нашли короткий кандидат).
- Пока P[i] ≤ P[deque[-1]] — выкидываем хвост (бессмысленные, более «жирные» префиксы).
- Затем добавляем i.
Сложность: каждый индекс заходит/вылетает из деки по разу → O(n).
Короткая реализация
from collections import deque
from math import inf
from typing import List
def shortest_subarray_at_least_k(A: List[int], K: int) -> int:
P = [0]
for x in A: P.append(P[-1] + x)
dq, ans = deque(), inf # dq хранит индексы префиксов, их суммы возрастают
for i, s in enumerate(P):
while dq and s - P[dq[0]] >= K:
ans = min(ans, i - dq.popleft())
while dq and P[dq[-1]] >= s:
dq.pop()
dq.append(i)
return -1 if ans is inf else ans
# Примеры
if __name__ == "__main__":
print(shortest_subarray_at_least_k([2, -1, 2], 3)) # 3 (весь массив)
print(shortest_subarray_at_least_k([1, 2, 3, 4], 6)) # 2 (3+3 нет, но 2+4 или 3+4 длина 2)
print(shortest_subarray_at_least_k([84, -37, 32, 40, 95], 167)) # 3
🎨 Создание персонажей для визуальных новелл
VNCCS — мощный инструмент для создания уникальных спрайтов персонажей в визуальных новеллах. Он упрощает процесс генерации, позволяя создавать последовательные образы с помощью нейросетей всего за несколько шагов.
🚀Основные моменты:
- Интуитивный процесс создания персонажа в 5 этапов.
- Генерация одежды и эмоций для персонажей.
- Поддержка LoRA для обучения на пользовательских данных.
- Упрощение работы с нейросетями для художников.
- Экспорт готовых спрайтов для использования в проектах.
📌 GitHub: https://github.com/AHEKOT/ComfyUI_VNCCS
#python
🖥 Проверка сетевых сервисов в Python через socket
В Python можно быстро проверить, доступен ли сетевой сервис и как быстро он отвечает, не прибегая к сложным утилитам.
Это помогает опытным разработчикам, когда нужно оперативно убедиться, что API или база данных действительно доступны и не "подвисают".
Через socket можно реализовать мини-проверку состояния сети и времени отклика.
Читать полностью…
import socket
import time
def check_service(host: str, port: int, timeout: float = 2.0):
try:
start = time.perf_counter()
with socket.create_connection((host, port), timeout=timeout):
elapsed = time.perf_counter() - start
print(f"[OK] {host}:{port} доступен, ответ за {elapsed:.3f} сек")
except Exception as e:
print(f"[FAIL] {host}:{port} недоступен — {e}")
пример: проверка доступности Google DNS и локального сервиса
check_service("8.8.8.8", 53)
check_service("localhost", 5432)
🖥 Python trick: группировка с помощью itertools.groupby
Иногда при работе с коллекциями в пайтон нужно быстро сгруппировать данные по ключу и при этом не писать громоздкий цикл с проверками. В таких случаях можно использовать модуль итэртулз и функцию группбай. Она позволяет превратить список в словарь с удобной структурой, где каждый ключ сразу содержит все связанные элементы. Это сильно экономит строки кода и делает его чище.
Читать полностью…
from itertools import groupby
from operator import itemgetter
data = [
{"category": "A", "value": 10},
{"category": "B", "value": 20},
{"category": "A", "value": 30},
{"category": "B", "value": 40},
]
сортировка обязательна перед groupby
data.sort(key=itemgetter("category"))
grouped = {
key: list(group) for key, group in groupby(data, key=itemgetter("category"))
}
print(grouped)
📚 Знакомьтесь, хендбуки от Яндекс Образования
Бесплатные интерактивные учебники для студентов и начинающих специалистов по Python, C++ и машинному обучению. Теория, которая пригодится в решении реальных задач.
Погружайтесь в дисциплину с нуля или выбирайте отдельные темы, выполняйте задания и следите за прогрессом. Хенбуки помогут закрыть пробелы в знаниях, подготовиться к экзаменам или собеседованиям.
👉Учиться по хендбукам
🔥Свежий курс со Stepik: Linux: полный апгрейд твоих скиллов
Хочешь реально понимать, что происходит под капотом твоей системы, а не просто кликать по GUI?
Без глубокого знания базы ты не инженер - ты просто пользователь.
🔹 В курсе ты:
- Освоишь bash, grep, sed, awk - инструменты, которыми живут админы.
- Разберёшь права, процессы, сеть, файловую систему и научишься чинить всё, что падает.
- Настроишь SSH, firewall, systemd, crontab, демоны и автозапуск.
- Научишься анализировать логи, следить за нагрузкой, и не паниковать при 100% CPU.
💡 Формат: пошаговое объяснение базы и разбор важных практик по работе с Linux.
🎯 После курса ты: будешь чувствовать Linux как родную среду и забудешь, что такое “permission denied”.
🚀 Сейчас действуют скидка целых - 30%, не упусти реальный шанс прокачаться.
👉 Забирай место на курсе со скидкой
Один One Day Offer вам или целых три — всем? 😉
25 октября Сбер проведёт сразу три экспресс-отбора кандидатов в две команды: GigaData и Kandinsky. Чем вам предстоит заниматься 👇
✔️ Развивать GigaData — внутреннюю платформу Сбера, которая обрабатывает петабайты данных и миллиарды запросов в сутки. One Day Offer для Python‑разработчиков.
✔️ Работать над Kandinsky — обучать большие модели с нуля, собирать и подготавливать данные, исследовать самые эффективные методы дообучения моделей.
— One Day Offer для Machine Learning Engineers с опытом в Deep Learning и компьютерном зрении (CV).
— One Day Offer для Research и Deep Learning Engineers.
Выбирайте то, что больше подходит под ваши навыки, и регистрируйтесь на One Day Offer!
🖥 Практический гайд по автоматизации процессов на Python
Перед вами подробный практический гайд по автоматизации процессов на Python для продвинутых разработчиков. Он фокусируется на промышленном уровне качества: архитектура, надёжность, наблюдаемость, упаковка и деплой. В каждом разделе — конкретные паттерны и готовые фрагменты кода.
✔️ Подробнее
📚 Работа и учёба отлично совмещаются на оплачиваемой стажировке GPB.Level Up: Кибербезопасность! Здесь гибкий график от 30 часов в неделю и удобные форматы: очно или гибридно в зависимости от направления.
GPB.Level Up: Кибербезопасность — стажировка в области информационной безопасности в Газпромбанке для старшекурсников, выпускников и начинающих специалистов. Вот и другие преимущества:
— зарплата 80 000 рублей со старта (gross при работе 40 часов в неделю)
— поддержка от опытных наставников и экспертов информационной безопасности
— доступ к 800+ курсам для развития soft и hard skills, Skillbox, Lerna и другим платформам
— перспективы для карьеры: более 90% участников GPB.Level Up: Кибербезопасность прошлого сезона остались работать в банке
Время показать свои таланты, жми на кнопку!
https://vk.cc/cQ15u2?erid=2W5zFJmqXqA
🔥 Python: функции-фабрики
Простой, но мощный трюк: генерация функций на лету через замыкания. Вместо дублирования логики можно одной фабрикой создавать десятки разных функций.
Хочешь больше таких фишек? Подписывайся на нас и каждый день получай свежие и нестандартные советы, которые реально прокачают твои навыки разработчика!
def make_pow(exp):
return lambda x: x ** exp
square = make_pow(2)
cube = make_pow(3)
print(square(4), cube(2))
🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: /channel/+EPEFXp67QfIyMjMy
Python: /channel/+cq7O4sOHldY1ZTIy
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
🔮 GENIE: Легкий движок синтеза речи на базе GPT-SoVITS
GENIE — это легкий движок для синтеза речи, который использует возможности GPT-SoVITS. Он предлагает высокую производительность на CPU, включая интеграцию TTS, конвертацию моделей ONNX и API сервер для удобного использования.
🚀 Основные моменты:
- Поддержка моделей GPT-SoVITS V2
- Оптимизирован для быстрого синтеза на CPU
- Включает предустановленные голосовые модели для мгновенного использования
📌 GitHub: https://github.com/High-Logic/Genie
#python
IT_ONE Cup. Code & Analyst — хакатон для аналитиков и разработчиков, где ты узнаешь, как работает IT-команда, и получишь сильный кейс в портфолио. Выбери трек и реши одну из задач:
→ Проанализируй BPMN-модель кредитного процесса и подготовь ТЗ на систему мониторинга эффективности.
→ Разработай сервис, который в реальном времени следит за переводами и оповещает о подозрительных операциях.
🏆 Призовой фонд: 900 000 рублей
💻 Формат: онлайн
🗓 Регистрация до 16 октября: https://cnrlink.com/itonecupmsupjint
Приглашаем системных аналитиков, разработчиков и менеджеров проектов. Размер команды — от 1 до 5 человек.
Что тебя ждёт:
• Применишь навыки системного анализа, построения архитектуры и работы с потоковыми данными.
• Получишь готовый проект в портфолио.
• Для участников ТОП-5 команд в каждом треке — фирменный мерч.
Задачи соревнования:
Трек 1. Навигатор оптимизации. Проанализируй кредитный процесс банка, выяви узкие места и создай ТЗ для системы мониторинга производительности. Решение поможет оптимизировать критически важные процессы.
Трек 2. Финансовый радар. Разработай сервис для анализа транзакций в реальном времени. Архитектура должна включать правила обнаружения мошенничества и поддержку различных алгоритмов обработки.
Ждём тебя на IT_ONE Cup. Code & Analyst — старт 17 октября на Codenrock: https://cnrlink.com/itonecupmsupjint
Регистрация подходит к концу — не пропусти AIDAO, международную олимпиаду по ИИ и анализу данных от Яндекс Образования и ФКН НИУ ВШЭ
Главные призы: 1 млн рублей и преимущества при поступлении в магистратуры ФКН ВШЭ.
— Задачи с реальными данными
— Два этапа: онлайн и финал в офлайне, в Москве.
— Общение с экспертами и сотрудниками научных лабораторий, возможность стать частью международного комьюнити студентов.
🚀 Собирайте команду и регистрируйтесь по ссылке до 30 сентября
Не пропусти МТС True Tech Champ — масштабный фестиваль 21 ноября для тех, кто живет технологиями 🔥
Тебя ждут:
▫️ Конференция с международными спикерами. Эксперты расскажут о трендах в ИИ и инновациях в индустрии.
▫️ ИТ-качалка. Наращивай экспертизу на воркшопах.
▫️ Шоу-финал ИТ-чемпионата. Более 250 талантов со всей России сразятся в лайв-кодинге и программировании роботов на скоростное прохождение лабиринтов со спецэффектами. Выбирай и болей за фаворитов.
▫️ Айтивности. Тебя ждут бои роботов, кодерские челленджи, пайка плат и не только. Заработай True Coins и обменяй их на стильный мерч.
▫️ HR-Hub. Команда МТС расскажет о возможностях для развития в компании и поможет перезагрузить карьерный трек.
▫️ Афтепати со звездными хэдлайнерами. Зажги под популярные хиты.
Когда: 21 ноября, МТС Live Холл в Москве и онлайн.
Регистрируйся на сайте. Участие бесплатно, количество мест ограничено.
⁉️Машинное обучение кажется чем-то сложным и недосягаемым? Всё проще, чем вы думаете!
Первый шаг — разобраться, как устроен ML-процесс и научиться работать в Jupyter Notebook — инструменте, с которого начинают все специалисты в Data Science.
На открытом уроке вы шаг за шагом поймёте, как строится путь от данных до модели. Научитесь запускать эксперименты в Jupyter Notebook и Google Colab, работать с виртуальными окружениями и не бояться “сломать” систему. Всё — в формате простых и наглядных примеров.
После урока вы сможете уверенно начать свой первый ML-проект и поймёте, какие инструменты нужны, чтобы перейти от теории к практике.
➡️ 13 ноября в 20:00 МСК. Открытый вебинар проходит в преддверии старта курса «Machine Learning. Basic». Регистрируйтесь и сделайте первый шаг в машинное обучение без страха и путаницы:т https://otus.pw/cARZ/?erid=2W5zFGrhViQ
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🤖 PharosTestnet Bot: Автоматизация для криптоактивов
PharosTestnet-bot — это Python-бот для автоматизации различных операций с криптовалютами на тестовой сети. Он поддерживает множество функций, включая автоматический вход, управление ликвидностью и работу с прокси. Идеален для трейдеров, желающих оптимизировать свои действия.
🚀Основные моменты:
- Автоматический ежедневный вход
- Поддержка всех типов прокси
- Многопоточность для повышения производительности
- Автообмен и управление ликвидностью
- Получение статистики по аккаунтам
📌 GitHub: https://github.com/haspread/PharosTestnet-bot
#python
🔥Продвинутый совет по ускорению Python-кода
Один из скрытых тормозов Python — частые вызовы маленьких функций внутри циклов. Каждый вызов вносит оверхед интерпретатора. Если функция простая, её можно «инлайнить» (встроить прямо в цикл), или использовать NumPy vectorization и Numba JIT, чтобы убрать лишние вызовы.
Например, вместо того чтобы вызывать функцию миллионы раз, можно скомпилировать её через @njit из Numba — и Python-код превратится в машинный, работая в десятки раз быстрее. Это особенно эффективно для численных расчётов, работы с массивами и больших циклов.
Хочешь больше таких фишек? Подписывайся на нас и каждый день получай свежие и нестандартные советы, которые реально прокачают твои навыки разработчика!
Читать полностью…
import numpy as np
from numba import njit
# Обычная Python-функция — будет работать медленно на больших данных
def transform(x):
return x * x + x % 7
# JIT-компиляция убирает интерпретационный оверхед
@njit
def fast_transform(arr):
res = np.empty_like(arr)
for i in range(arr.size):
res[i] = arr[i] * arr[i] + arr[i] % 7
return res
data = np.arange(10_000_000, dtype=np.int64)
# Медленный вариант: Python-функция внутри list comprehension
res1 = [transform(x) for x in data]
# Быстрый вариант: Numba скомпилировала цикл в машинный код
res2 = fast_transform(data)
print(res1[:5], res2[:5])
🌟 Рисуем шахматную доску с помощью Matplot!
@python_job_interview
🐍 Хитрая задача с собеседования по Python
> Что выведет этот код и почему?
def extend_list(val, lst=[]):
lst.append(val)
return lst
list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a')
print(list1, list2, list3)
[10, 'a'] [123] [10, 'a']
def extend_list(val, lst=None):
if lst is None:
lst = []
lst.append(val)
return lst
🧩 sync-with-uv
Небольшой, но полезный пакет, который автоматизирует синхронизацию версий между uv.lock и .pre-commit-config.yaml.
Зачем это нужно:
- Часто версии инструментов (black, ruff, mypy и др.) расходятся: одно указано в lock-файле, другое — в pre-commit.
- В итоге могут воспроизводиться разные окружения и непредсказуемые ошибки.
Что делает sync-with-uv:
- Автоматически подтягивает версии из uv.lock в .pre-commit-config.yaml.
- Интегрируется как pre-commit hook.
- Поддерживает частичную синхронизацию — не затрагивает инструменты, для которых версии не заданы.
Итог: один источник правды для зависимостей, меньше ручной рутины и более стабильные пайплайны.
🔗 Репозиторий: https://github.com/tsvikas/sync-with-uv
🧠 Создайте своего ChatGPT с nanochat
nanochat — это минималистичный фреймворк для создания LLM, аналогичного ChatGPT, с возможностью запуска на одном узле. Он включает все этапы от токенизации до веб-сервиса с простым интерфейсом, позволяя взаимодействовать с вашим собственным языковым моделью.
🚀Основные моменты:
- Полный стек для создания LLM в одном коде.
- Легкий в использовании и настройке.
- Поддержка различных моделей с разными затратами.
- Возможность оценки и анализа производительности.
📌 GitHub: https://github.com/karpathy/nanochat
#python
🖥 Полный гайд: защита от SQL-инъекций для разработчиков
SQL-инъекции остаются одной из самых частых и опасных уязвимостей в веб-приложениях. Ошибка в одном запросе — и злоумышленник получает доступ к базе данных, паролям и пользовательским данным.
В этом материале — полный практический разбор:
как именно происходят SQL-инъекции, какие ошибки разработчиков к ним приводят, как их распознать в коде и главное — как защититься.
Разберём реальные примеры на Python, PHP и Go, посмотрим, как атакующий «взламывает» запрос, и научимся писать безопасный код с параметризованными запросами и ORM.
Это не теория, а руководство, которое поможет понять уязвимость изнутри и навсегда закрыть её в своих проектах.
👉 Читать гайд
🖥 Что нового в Python 3.14 и почему стоит перейти
Python 3.14 вышел 7 октября 2025 года. Это новый стабильный релиз, который содержит как изменения в самом языке, так и улучшения в реализации, стандартной библиотеке, отладке и взаимодействии с многопоточностью.
Ниже - обзор ключевых нововведений, их смысла, применимости и возможных подводных камней.
🟠Основные нововведения (Release highlights)
- Отложенная (ленивая) оценка аннотаций - теперь аннотации не вычисляются сразу, что уменьшает накладные расходы.
- Поддержка нескольких интерпретаторов в рамках одного процесса через новый модуль.
- Новый синтаксис шаблонных строк (t-strings), который даёт больше контроля над статической и интерполированной частью.
- Более информативные сообщения об ошибках (например, подсказки для опечаток в ключевых словах).
- Поддержка формата сжатия Zstandard в стандартной библиотеке.
- Улучшенные возможности для отладки и профилирования, в том числе подключение к живому процессу без остановки.
- Улучшения в asyncio — команды для визуализации и диагностики задач, стеков ожидания и зависимостей.
- Уменьшение пауз сборщика мусора (gc) через инкрементальный сбор.
- Подсветка синтаксиса и автодополнение модулей в интерактивном режиме (REPL) по умолчанию.
🟠 Подробности и примеры
Ленивые аннотации - deferred evaluation of annotations
Раньше аннотации (для типов, документации, подсказок) могли вызывать вычисления прямо при определении функции или класса. Теперь они хранятся в виде «ленивых» структур и вычисляются по надобности. Это снижает накладные расходы на загрузку кода, особенно если аннотации сложные или содержат много forward-ссылок.
Есть модуль annotationlib, который позволяет исследовать аннотации программно и выбирать формат их получения — строки, объекты или отложенные ссылки.
Когда это особенно помогает:
- большие фреймворки, генерация кода, ORM, библиотеки с множеством аннотаций;
- ускорение импорта при старте приложений;
- уменьшение накладных расходов при работе с типами.
Что проверить при миграции:
- код, использующий __annotations__ напрямую, может требовать адаптации;
- убедитесь, что сторонние библиотеки, работающие с аннотациями, поддерживают новый формат.
Несколько интерпретаторов (subinterpreters)
Теперь в Python можно запускать несколько независимых интерпретаторов внутри одного процесса (модуль `concurrent.interpreters`).
Преимущества:
- изоляция между интерпретаторами (отдельная память, отдельный GIL);
- параллелизм на многоядерных системах;
- меньше накладных расходов, чем при использовании multiprocessing.
Ограничения:
- не все C-расширения поддерживают мультиинтерпретацию;
- коммуникация между интерпретаторами требует явных каналов (очереди, сообщения).
Это даёт реальную возможность распараллеливания CPU-задач без запуска отдельных процессов.
Template string literals (t-strings)
Новое синтаксическое средство — префикс t перед строкой, аналогично f'...'.
Результат — объект Template, который хранит текст и вставки по отдельности.
variety = 'Stilton'
template = t'Try some {variety} cheese!'
🤖 Grass Bot: Автоматизация для Telegram
Grass Bot — это простой Python-бот для автоматизации задач в Telegram с поддержкой многопоточности и различных типов прокси. Идеален для управления несколькими аккаунтами и получения статистики.
🚀 Основные моменты:
- Многопоточность для повышения производительности
- Поддержка всех типов прокси
- Легкость в настройке аккаунтов и прокси
📌 GitHub: https://github.com/haspread/grass-bot
#python
✔️ Математика в машинном обучении» - бесплатный курс, который предназначен для тех, кто хочет углубить свои знания в области математики, необходимой для понимания и применения методов машинного обучения и искусственного интеллекта.
Этот курс охватывает ключевые математические концепции, лежащие в основе современных алгоритмов машинного обучения, таких как линейная алгебра, теория вероятностей, статистика и оптимизация.
Курс
🚀 CUDA Kernel Benchmarking Made Easy
robust-kbench предоставляет мощный набор инструментов для оценки и валидации CUDA-ядров, созданных с помощью больших языковых моделей. Он решает проблемы традиционных бенчмарков, предлагая надежные критерии оценки и проверку корректности.
🚀Основные моменты:
- Многочисленные настройки инициализации для более точной оценки
- Проверка корректности с учетом различных конфигураций входных данных
- Профилирование производительности для реальных сценариев
- Защита от манипуляций входными данными
📌 GitHub: https://github.com/SakanaAI/robust-kbench
#python
🖥 Полный гайд по реальным SQL-вопросам с собеседований
Введение. Собеседования на позиции, связанные с данными (аналитики, инженеры, ученые данных), всё чаще включают нестандартные и продвинутые вопросы по SQL.
Большие технологические компании (Google, Amazon и др.) предъявляют высокие требования: важна не только правильность запроса, но и умение оптимизировать его и разбираться в реальных бизнес-данных.
В этом гайде мы разберем категории наиболее распространенных сложных SQL-задач с реальных собеседований – от платформ вроде DataLemur, LeetCode, StrataScratch – и подробно поясним решения.
Каждая задача сопровождена анализом: условие, оптимальный подход, используемые SQL-конструкции, возможные ошибки и финальное решение (для PostgreSQL и MySQL, с указанием различий где необходимо).
В конце добавлен отдельный раздел о современных базах данных, включая векторные БД (Pinecone, Weaviate, Milvus и др.), с примерами того, что могут спросить про них на собеседовании и как выглядят SQL-подобные запросы для работы с векторами.
📌 Читать гайд
🔥 Продвинутый Python-трюк для работы с сетями: асинхронные запросы через asyncio + aiohttp
Когда нужно сделать десятки или сотни запросов к API или сайтам, обычный requests становится узким местом. Асинхронный подход позволяет обрабатывать множество соединений параллельно и резко ускоряет работу.
import asyncio
import aiohttp
urls = [
"https://example.com",
"https://httpbin.org/get",
"https://api.github.com"
]
async def fetch(session, url):
async with session.get(url) as resp:
return url, await resp.text()
async def main():
async with aiohttp.ClientSession() as session:
tasks = [fetch(session, url) for url in urls]
for result in await asyncio.gather(*tasks):
print(f"✅ {result[0]} → {len(result[1])} символов")
asyncio.run(main())