24940
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd
🐍 Хитрая ловушка в Python, на которую попадаются даже опытные
matrix = [[0] * 3] * 3
matrix[0][0] = 1
matrix[1].append(9)
print(matrix)
print(len(matrix))
print(len(matrix[0]))
🧠 Продвинутая типизация Python, о которой почти никто не знает
Статья показывает, что Python уже давно вышел за рамки простых List[int] и Optional[str].
Главные идеи:
✔️ TypeGuard и новый TypeIs позволяют писать функции, которые доказательно сужают типы - например, проверка превращает Any в конкретный тип для дальнейшего кода.
✔️ assert_never из typing помогает ловить случаи, когда ты забыл обработать один из вариантов, что особенно важно в match и сложных условных ветках.
✔️ Python 3.13+ добавляет улучшенный вывод типов и строгие проверки, чтобы типизированный код стал надёжнее.
✔️ Поддержка typed function overloading - теперь можно описывать разные сигнатуры для одной функции, и анализаторы понимают их корректно.
📌 Вывод из статьи - Python типизация уже стала инструментом для архитектуры и предотвращения ошибок, особенно в больших проектах. Но большинство разработчиков использует только её простейший слой.
Кому полезно:
• работаешь с крупными кодовыми базами
• пишешь библиотеки
• хочешь меньше скрытых багов и более предсказуемые refactor-ы
Источник: martynassubonis.substack.com/p/advanced-overlooked-python-typing
🔍Тестовое собеседование на Middle Python с разработчиком из Авито завтра
9 декабря(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?
Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.
Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.
Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.
🎁 48 часов действует скидка в 40% процентов
👉 Начать учиться на Stepik
❌ НЕЛЬЗЯ ТАК ИСПОЛЬЗОВАТЬ LAMBDA В PYTHON
Главная ошибка - превращать lambda в свалку логики: добавлять туда побочные эффекты, вызовы print, длинные условия и вычисления.
Такие лямбды плохо читаются, их невозможно нормально отлаживать, и они нарушают саму идею — быть короткой и чистой функцией. Всё сложное нужно выносить в обычную функцию. Подписывайся, больше фишек каждый день !
Читать полностью…
# нельзя так делать — lambda с изменением состояния
data = [1, 2, 3]
logs = []
# опасный антипаттерн
process = lambda x: logs.append(f"processed {x}") or (x * 10)
result = [process(n) for n in data]
print("RESULT:", result)
print("LOGS:", logs)
🚨 SQL Никогда НЕ ДЕЛАЙ ТАК #sql
НИКОГДА НЕ ЛОМАЙ ИНДЕКСЫ ФУНКЦИЯМИ: не оборачивай индексируемые поля в функции внутри WHERE.
Как только ты пишешь LOWER(), CAST(), COALESCE() или любые вычисления по колонке — индекс перестаёт работать, и запрос падает в полное сканирование таблицы.
Это одна из самых тихих причин, почему запросы внезапно превращаются в тормоза.
Вместо этого приводи значения заранее или используй функциональные индексы.
Плохо: индекс по email НЕ используется
SELECT *
FROM users
WHERE LOWER(email) = 'user@example.com';
-- Хорошо: нормализуем значение заранее
SELECT *
FROM users
WHERE email = 'user@example.com';
-- Или создаём функциональный индекс (PostgreSQL)
CREATE INDEX idx_users_email_lower ON users (LOWER(email));
🔥 Коварная ловушка с замыканиями в Python
Многие хитрые баги в Python появляются из-за того, что разработчики неверно понимают область видимости переменных в замыканиях.
Частая ошибка - внутри цикла создавать функции-лямбды, которые «помнят» одно и то же финальное значение переменной, а не значение на каждой итерации. В итоге весь список функций ведёт себя одинаково. Чтобы избежать ловушки, фиксируйте значение через аргумент по умолчанию или используйте functools.partial.
Читать полностью…
funcs = []
for i in range(5):
# Ошибка - все функции запомнят i=4
funcs.append(lambda: i)
print([f() for f in funcs]) # [4,4,4,4,4]
funcs_safe = []
for i in range(5):
# Правильно - захватываем текущее значение
funcs_safe.append(lambda i=i: i)
print([f() for f in funcs_safe]) # [0,1,2,3,4]
🖥 Как организовать архитектуру большого Python-проекта?
Разработка крупного Python-проекта требует продуманной архитектуры. Правильная структура кода упрощает развитие, тестирование и поддержку приложения.
В этой статье мы рассмотрим ключевые принципы архитектурной организации для разных типов проектов - веб-приложений, библиотек, микросервисов и систем обработки данных.
Обсудим разделение системы на слои (domain, service, infrastructure), использование популярных шаблонов проектирования (Dependency Injection, Repository, Facade), организацию кода по модулям и пакетам, примеры структуры каталогов, работу с зависимостями и конфигурацией (Pydantic, dotenv), логгирование и мониторинг, обеспечение тестируемости, поддержку расширяемости и модульности.
Также приведем примеры кода и структуры каталогов, а в конце – общие советы и распространенные ошибки, которых следует избегать.
https://uproger.com/kak-organizovat-arhitekturu-bolshogo-python-proekta/
🖥 PYTHON + DOCKER: МНОГОСТУПЕНЧАТАЯ МАГИЯ
Когда Python-код в Docker начинает внезапно тормозить, а контейнеры — весить гигабайты, часто виновник скрыт глубже: Docker копирует в образ всё виртуальное окружение, кэш pip, артефакты билдов и даже .pyc-файлы.
Есть хитрый способ избежать этого и сделать контейнер в 5–10 раз легче и гораздо быстрее:
Используйте многоступенчатую сборку, где Python-зависимости собираются в одном этапе, а в финальный образ попадает только «чистый» результат.
Так вы исключаете мусор, ускоряете сборку и снижаете attack surface.
Читать полностью…
Многоступенчатый Dockerfile для Python
1. Этап сборки зависимостей
FROM python:3.12-slim AS builder
WORKDIR /build
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
2. Финальный минимальный образ
FROM python:3.12-slim
WORKDIR /app
Копируем только готовые зависимости без pip-кэша
COPY --from=builder /install /usr/local
Добавляем чистый код без артефактов
COPY . .
CMD ["python", "main.py"]
🐍 Минимум и максимум в Python
Чтобы быстро получить минимальное и максимальное значение из последовательности, используй встроенные функции min() и max().
Обе поддерживают параметр default — он задаёт значение по умолчанию, если последовательность пуста.
Подписывайся, больше фишек каждый день !
Читать полностью…
numbers = [3, 7, 2, 9]
print(min(numbers)) # 2
print(max(numbers)) # 9
# пример с пустым списком
print(min([], default=0)) # 0
print(max([], default=0)) # 0
🧠 Интерактивная 3D-визуализация нейронных сетей с Neuraxon
Neuraxon — это биовдохновленная нейронная сеть, использующая тринарную логику для моделирования динамики нейронов. С помощью интерактивного интерфейса пользователи могут настраивать сети, управлять состояниями нейронов и наблюдать за нейромодуляцией в реальном времени.
🚀 Основные моменты:
- 🧩 Создание пользовательских сетей с настройками нейронов и синапсов
- 🎮 Интерактивное управление состояниями нейронов
- 🔬 Живое изменение уровней нейромодуляторов
- 📊 3D визуализация нейронной активности
- ⚙️ Предустановленные конфигурации для различных сценариев
📌 GitHub: https://github.com/DavidVivancos/Neuraxon
#python
Добавь AI в свой Python-проект за 7 недель
На Stepik вышел курс «LangChain: с нуля до продакшн LLM приложений»:
✅ RAG-поиск по документам (FAQ-бот, база знаний)
✅ Агенты для анализа данных (CSV, JSON через Pandas)
✅ API на FastAPI с LLM под капотом
Не нужно становиться ML-инженером — интегрируешь LLM как обычный сервис.
Практика • Код из коробки • Сертификат Stepik
Скидка 25% — 3 дня 🔥
Пройти курс со скидкой
🔥 Подборка полезных ресурсов для программистов.
Здесь ты найдёшь всё это - коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
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
Папка Linux:/channel/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Сохрани себе, чтобы не потерять!
Как загрузить файл по SSH с помощью #Python и paramiko 🐍🔥
Читать полностью…
🔍Тестовое собеседование на Middle Python с Senior из X5 уже завтра!
Уже завтра(11 ноября) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Олег, старший разработчик в X5, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Олег будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Олегу
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
🔥 Удобный контекстный менеджер для работы с файлами
Использование контекстного менеджера делает работу с файлами более безопасной и удобной. В этом примере мы создадим собственный контекстный менеджер для автоматического закрытия файла и обработки ошибок.
Читать полностью…
class ManagedFile:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
self.file = None
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
if self.file:
self.file.close()
with ManagedFile('example.txt', 'w') as f:
f.write('Hello, Custom Context!')
🐍⚙️ Python + Docker совет:
Не устанавливай зависимости в образ на «сыром» pip install — используй фиксированные версии и слой кеширования. Правильный паттерн:
1) сначала COPY requirements.txt
2) затем RUN pip install -r requirements.txt
3) потом COPY исходники
Так Docker кеширует слой с зависимостями — при изменении кода пересобирается только последний слой, а не весь образ. Это ускоряет CI/CD в разы и делает сборки предсказуемыми.
🚀 DR Tulu: Reinforcement Learning for Deep Research
DR Tulu-8B — первый открытый модель для долгосрочных задач глубоких исследований. Она демонстрирует конкурентоспособные результаты на бенчмарках, сопоставимых с OpenAI. Репозиторий включает библиотеки для разработки агентов, обучение с помощью RL и SFT.
🚀Основные моменты:
- Мощная библиотека агентов для глубоких исследований.
- Обучение с эволюционными рубриками.
- Поддержка высококонкурентного асинхронного управления запросами.
- Интеграция с существующими моделями и фреймворками.
📌 GitHub: https://github.com/rlresearch/dr-tulu
🔥Python: САМЫЙ ЭФФЕКТИВНЫЙ АЛГОРИТМ ДЛЯ ПОИСКА
Нет «одного» идеального алгоритма на все случаи жизни, но для поиска по отсортированным данным классика — бинарный поиск с сложностью О лог н.
Вместо того чтобы проходить весь список по очереди, он каждый раз делит диапазон пополам и быстро сужает область поиска.
Главное правило: если можешь отсортировать данные и потом искать — почти всегда лучше использовать бинарный поиск, а не линейный проход.
Читать полностью…
nums = [1, 4, 7, 9, 15, 20, 33, 42]
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return True
if arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return False
print(binary_search(nums, 33))
print(binary_search(nums, 100))
⚡️Представь: ты дошёл до оффера в Big Tech, осталось «просто поболтать про прошлый опыт» — и именно тут тебя разворачивают. Разница между middle и senior — это не только LeetCode и system design, а то, как ты говоришь о своих проектах.
🔥9 декабря в 19.00 мск. приглашаем на открытый вебинар «Самое важное интервью при устройстве в Big Tech».
Спикер: Даня Слободенюк, Team Lead разработки в ex-Yandex, ex-T-Bank, ex-Sber, founder algocode
Вопросы:
• устройство секции про прошлый опыт
• как структурировать рассказ о сложном проекте
• как разбирать факапы и показывать лидерство
• типовые вопросы про масштабирование и «пожары»
• как эта секция решает твой грейд и ЗП
🎁Бонус: доступ к algocode на 3 дня за 1 рубль, чек-лист по прохождению секции
👉Регистрация
algocode помогает готовиться к собеседованиям в Big Tech — от алгоритмов и system design до таких «простых» секций про прошлый опыт.
#реклама
О рекламодателе
🕔 Как сделать задержку в Python разными способами
В Python есть несколько способов сделать задержку, и каждый подходит под разные задачи.
Обычная пауза - через time.sleep().
Неблокирующая задержка - через asyncio.sleep() в асинхронном коде.
Точная задержка в цикле — через time.perf_counter().
Выбирайте под свой сценарий.
import time
Читать полностью…
print("Старт")
time.sleep(2) # простая задержка
print("Пауза 2 секунды завершена")
#2 вариант
import asyncio
async def main():
print("Асинхронный старт")
await asyncio.sleep(1.5) # не блокирует поток
print("Прошла асинхронная задержка 1.5 сек")
asyncio.run(main())
#3 вариант
import time
start = time.perf_counter()
while time.perf_counter() - start < 1: # точная контрольная задержка ~1 сек
pass
print("Прошла точная задержка без sleep")
🎨 NFT Generator: Создавайте уникальные NFT с легкостью!
Этот репозиторий предлагает простой способ генерации изображений NFT с использованием Python. Просто структурируйте свои изображения в папках и запустите скрипт для создания множества уникальных комбинаций. Поддерживает анимацию и графический интерфейс.
🚀Основные моменты:
- Легкая генерация NFT из изображений.
- Поддержка уникальных комбинаций и анимации.
- Интуитивно понятный GUI для удобства использования.
- Настраиваемая структура папок для ваших изображений.
📌 GitHub: https://github.com/vooltex5083/NFT-generator
#python
На собеседованиях всегда выигрывает тот, кто понимает, чего ждут на каждом этапе — а не тот, кто просто отвечает на вопросы.
Разница между ними огромная: первый видит процесс целиком, понимает логику найма, цель каждого раунда и то, какие сигналы считывает интервьюер. Он знает, когда важно показать глубину, а когда — скорость или коммуникацию. Второй же приходит «как есть» и надеется, что ответы «понравятся». И чаще всего это не работает, даже если у кандидата хороший опыт.
На вебинаре karpovꓸcourses «Кого возьмут в аналитики в 2026 году: честный взгляд руководителя продуктовой аналитики из Garage Eight» разберут: как устроена логика этапов, что хотят проверить менеджеры и какие маркеры показывают, что кандидат реально понимает продукт, данные и мышление аналитика. Вы сможете посмотреть на процесс «с другой стороны» и подготовиться осознанно.
Узнать как проходит весь процесс найма на бесплатном вебинаре — https://clc.to/erid_2W5zFGd8X1J
Реклама. ООО "КАРПОВ КУРСЫ". ИНН 7811764627. erid: 2W5zFGd8X1J
🔴 Реальный собес на Python от ТехЛида с опытом работы в Авито и Яндексе в прямом эфире
25 ноября (уже сегодня!) в 19:00 по мск приходи на прямой эфир с реальным собеседованием на Middle разработчика.
Почему точно нужно прийти:
📂 Савва Демиденко, ТехЛид с опытом в Яндексе и Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Савве
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
🔍 Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе
📊 Подробный практический гайд по статистике на Python
Этот практический гайд по статистике на Python - ваш надёжный проводник в мир анализа, визуализации и интерпретации данных.
От простых описательных показателей до регрессий и временных рядов — с примерами, кодом и реальными задачами. Всё, что нужно, чтобы уверенно применять статистику на практике.
🟠Гайд
🚀 VibeThinker: Новый стандарт в моделях с малым количеством параметров
Это 1.5B модель, которая демонстрирует выдающиеся способности в решении математических задач, соперничая с гораздо более крупными моделями. Используя инновационную методику постобучения, она достигает результатов, сопоставимых с открытыми моделями, такими как GPT OSS-20B Medium, при значительно меньших затратах.
🚀Основные моменты:
- Эффективность: 1.5B параметров, производительность на уровне 1000B+ моделей.
- Инновационная методология: "Spectrum-to-Signal Principle" для улучшения разнообразия выходных данных.
- Выдающиеся результаты: Превосходит модели, в 10-600 раз большие.
- Экономичность: Разработка модели стоит всего $7,800 против сотен тысяч для конкурентов.
📌 GitHub: https://github.com/WeiboAI/VibeThinker
#python
🚀 Пул интерпретаторов в Python 3.14
Что появилось:
- В Python 3.14 добавили *пул интерпретаторов* — теперь в одном процессе можно запускать несколько независимых интерпретаторов.
- Это шаг к более безопасным, масштабируемым и изолированным системам на Python.
Зачем это нужно:
- Снижает зависимость от тяжёлых процессов — можно управлять несколькими интерпретаторами внутри одного процесса.
- Повышает отказоустойчивость: сбой одного интерпретатора не падает весь процесс.
- Открывает возможность частично обходить ограничения GIL, используя параллельность на уровне нескольких интерпретаторов.
Главные плюсы:
- Лучшая изоляция выполнения.
- Больше возможностей для масштабирования внутри одного процесса.
- Архитектурно Python становится ближе к моделям с lightweight-виртуальными машинами.
Главные минусы:
- Каждый интерпретатор требует своё адресное пространство → больший расход памяти.
- Увеличивается время инициализации в сравнении с потоками.
- Не во всех сценариях заменяет multiprocessing или threading.
Пул интерпретаторов - фундаментальное изменение, которое позволит по-новому строить высоконагруженные и безопасные Python-приложения, но потребует переосмысления архитектуры и учёта повышенного расхода ресурсов.
https://www.youtube.com/watch?v=Jd0MOM1dlfI
Эффективное тестирование Python-кода
Продвинутый совет: тестируй Python-код эффективно, используя связку pytest плюс фикстуры плюс правильное тестирование через hypothesis.
Сначала проверяй основные сценарии, потом добавляй окружение через фикстуры (файлы, БД, mock API), а затем включай генерацию случайных входов — так ты поймаешь скрытые баги, не переписывая километры тестов.
Подписывайся, больше фишек каждый день !
Читать полностью…
from hypothesis import given, strategies as st
Базовый юнит-тест
def test_add():
assert add(2, 3) == 5
Фикстура окружения (временный файл)
@pytest.fixture
def temp_file(tmp_path):
p = tmp_path / "data.txt"
p.write_text("42")
return p
def test_read_data(temp_file):
assert read_data(temp_file) == 42
Property-based тест
@given(st.integers(), st.integers())
def test_add_random(a, b):
assert add(a, b) == a + b
Запуск только упавших тестов (быстрый цикл разработки):
# pytest --lf
💡 12 команд Git, которые должен знать каждый:
git init - создаёт новый Git-репозиторий в текущей папке (начинает контроль версий).
git add - запоминает изменения, подготавливая их для сохранения.
git commit - сохраняет подготовленные изменения с твоим комментарием (например, «починил баг» или «добавил кнопку»).
git push - отправляет сделанные коммиты в облачный (удалённый) репозиторий, чтобы их видели другие.
git pull - забирает последние изменения из облака и добавляет их в твою рабочую версию (автоматически объединяет).
git remote - помогает управлять ссылками на удалённые репозитории (добавлять новые или смотреть, какие уже подключены).
git branch - показывает существующие ветки, создаёт новые и позволяет переключаться между ними (чтобы работать параллельно с разными версиями кода).
git fetch - скачивает последние изменения из облака, но не объединяет их с текущим кодом (можно посмотреть заранее, что изменилось).
git checkout - переключает твою рабочую папку на другую ветку или на конкретный коммит (например, для тестирования).
git merge - объединяет изменения из одной ветки с текущей веткой (сливает их воедино).
git status - показывает, какие файлы были изменены, какие готовы к коммиту, а какие ещё нет (текущее состояние проекта).
git reset - позволяет вернуться назад по истории кода, отменив изменения до конкретного коммита (например, если что-то пошло не так).
🧠 DeepSeek-OCR: Оптимизация оптического распознавания текста
DeepSeek-OCR — это модель для исследования роли визуальных энкодеров в контексте LLM. Она предлагает новые подходы к сжатию визуального текста и поддерживает различные режимы разрешения. Идеально подходит для задач OCR и обработки документов.
🚀Основные моменты:
- Модель для оптического распознавания текста.
- Поддержка нескольких режимов разрешения.
- Интеграция с Hugging Face для удобного использования.
- Исследование сжатия визуального текста.
📌 GitHub: https://github.com/deepseek-ai/DeepSeek-OCR
#python