python_job_interview | Unsorted

Telegram-канал python_job_interview - Python вопросы с собеседований

24940

Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd

Subscribe to a channel

Python вопросы с собеседований

Главный секрет bool: он на самом деле int
Складываю True и True, получаю 2

Складываешь два True в Python и получаешь 2. Не баг и не магия: bool наследуется от int, поэтому True это единица, а False это ноль. Минута, и ты больше никогда не удивишься sum по списку булевых значений.

#python

Читать полностью…

Python вопросы с собеседований

🚀 ИИ-агент ускорил SQLite до 59% меньше чем за 8 часов

Ускорить SQLite хотя бы на 5% уже было бы серьёзным результатом. Это один из самых зрелых и оптимизированных проектов в мире — его команда почти 20 лет выжимает из кода каждую долю производительности.

Но AI-агент KISS Sorcar менее чем за 8 часов и с затратами меньше $150 добился заметного ускорения сразу в нескольких типах нагрузки.

Результаты:

- 2,06× быстрее в официальном speedtest1 (~30 тыс. операций)
- 1,90× в TATP — транзакционная OLTP-нагрузка
- 1,30× в Star Schema Benchmark — аналитические запросы
- 1,25× в kvtest — работа с BLOB и дисковым I/O

Агент нашёл места, где стандартная конфигурация SQLite несла лишние расходы — особенно при записи транзакций на диск.

После этого он:

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

анализ зрелой кодовой базы → поиск узких мест → изменение реализации → бенчмарки → проверка собственных решений.

GitHub:
https://github.com/ksenxx/sqlite-optimized/

#AI #SQLite #Programming #CodingAgents #Performance #OpenSource

Читать полностью…

Python вопросы с собеседований

Открыли регистрацию на E-CUP 2026 Students 🎓

В этом сезоне — только для студентов. Будет интересно тем, кто изучает ML / DS / big data / аналитику данных.

Сможете ускорить модель по поиску дубликатов на 20%? Получится создать классификатор для модерации товаров? Сумеете предсказать поведение покупателя?

Как минимум — попробуете и получите фидбэк от тех, кто делает это в Ozon Tech каждый день. Как максимум — разделите призовой фонд в 7 200 000 ₽ в торжественной атмосфере конференции E-CODE.

Нетривиальные задачи, нетворк с ведущими специалистами индустрии, кастомный мерч и шанс масштабно усилить портфолио — это про E-CUP 2026 Students.
Больше подробностей и регистрация ↩️

Читать полностью…

Python вопросы с собеседований

🔴 Завтра тестовое собеседование на Middle Python с разработчиком из Авито

Уже завтра вечером в 19:00 по мск
приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама.
О рекламодателе.

Читать полностью…

Python вопросы с собеседований

Python-сервис не должен падать вслед за чужим API

Interlock - современная реализация circuit breaker для Python. Она временно блокирует обращения к нестабильному сервису, а затем аккуратно проверяет, восстановился ли он. Синхронный и асинхронный код поддерживаются одним классом.

Вместо примитивного подсчёта ошибок подряд библиотека умеет оценивать долю сбоев в скользящем окне - по числу запросов или времени. Медленные вызовы тоже можно считать ошибочными.

Для сложных сценариев есть resilience

pipeline = (
Pipeline.builder()
.fallback(lambda exc: [])
.retry(attempts=4)
.circuit_breaker(breaker)
.bulkhead(8)
.timeout(2.0)
.build()
)

Порядок стратегий задаётся явно: timeout, bulkhead, circuit breaker, повторные попытки и запасной ответ.

Также доступны интеграции с FastAPI, Litestar, HTTPX, aiohttp, Requests, Redis и OpenTelemetry. Состояние breaker можно синхронизировать между несколькими процессами, а при недоступности Redis библиотека временно возвращается к локальному состоянию.

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

Проект молодой, поэтому проверенные годами pybreaker и circuitbreaker по-прежнему могут быть безопаснее для консервативного продакшена. Но для rate-based окон, контроля медленных запросов и составных политик отказоустойчивости Interlock выглядит интересно.

https://github.com/bagowix/interlock

Читать полностью…

Python вопросы с собеседований

One Day Offer для Python-разработчиков!💚

15 августа открываем двери в команду Agent Execution Framework ⚡️

Коллеги создают платформу для GenAI‑агентов в банке — делают так, чтобы ИИ реально работал в серьёзных финпроцессах: с безопасностью, нагрузкой и пользой.

Чем предстоит заниматься:

✔️ развивать backend на Python
✔️ подключать LLM, инструменты, базы знаний и RAG
✔️ строить пайплайны оценки качества агентов
✔️ участвовать в архитектуре и ревью кода

Встречаемся 15 августа онлайн.

Регистрируйся по ссылке

Читать полностью…

Python вопросы с собеседований

One Day Offer: заходи в команду, которая двигает финансы на терабайтах данных! 🔥

На связи блок «Финансы» в Сбере! Мы строим системы, которые автоматизируют казначейство, риск‑менеджмент, отчётность — и добавляем AI для точных прогнозов.

На One Day Offer мы хотим найти коллег сразу в 3 продуктовые команды. Базовый стек и уровень задач одинаковы — выбирай направление по душе:

✔️ BigData: Spark (batch+streaming), сложные SQL‑оптимизации, DWH/Data Lake.
✔️ Микросервисы: Python (FastAPI/Django), API, интеграции с системами.

От тебя ждём: Python от 5 лет, экспертный SQL, PySpark, SOLID/asyncio, HDFS/Kafka.

👉 Регистрируйся по ссылке. Встречаемся 8 августа!

Читать полностью…

Python вопросы с собеседований

Один из лучших курсов со Stepik - Rust для тех, кто уже пишет прод 🦀

Когда начинаешь думать не только «работает ли код», но и что происходит с памятью, аллокациями, потоками и ошибками под нагрузкой - Rust становится особенно интересным.

На курсе разберёшь язык через реальные механики:

ownership, borrowing, lifetimes, traits, generics, error handling, модули, тесты и сетевое программирование.

После каждого блока - код и задача с автопроверкой.

Подойдёт разработчикам на Go, C++, Java, Python, JavaScript и других языках.

⚡ Старт сразу
💻 Упор на практику

Освой Rust так, чтобы после курса открыть новый проект и реально понимать, что пишешь и почему это работает: https://stepik.org/a/294885/

Читать полностью…

Python вопросы с собеседований

В Python есть словарь, который умеет менять порядок элементов без пересоздания - OrderedDict из collections.

Например, move_to_end() перемещает ключ в конец:

from collections import OrderedDict

data = OrderedDict([
("python", 1),
("django", 2),
("fastapi", 3),
])

data.move_to_end("python")

print(data)
# django, fastapi, python

А с last=False ключ можно отправить в начало:

data.move_to_end("fastapi", last=False)

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

Читать полностью…

Python вопросы с собеседований

OvisOCR2 вышел на ModelScope.

Это компактная OCR-модель на 0.8B параметров для page-level document parsing: на вход подаётся изображение страницы, на выходе получается структурированный Markdown в нормальном порядке чтения.

Формулы модель отдаёт в LaTeX, таблицы в HTML, визуальные области помечает image tags с bbox-координатами.

По заявленным результатам OvisOCR2 набрала 96.58 overall на OmniDocBench v1.6 и стала первой end-to-end моделью, которая заняла первое место в лидерборде, где раньше доминировали pipeline-системы.

На PureDocBench тоже сильный результат: 75.06 Avg3. Это важнее, чем просто победа на одном бенчмарке, потому что документный парсинг давно страдает от переобучения под популярные наборы.

Модель сделана на базе Qwen3.5-0.8B и дообучалась через SFT, RL и OPD. Для деплоя есть поддержка vLLM, лицензия Apache 2.0.

https://modelscope.ai/models/ATH-MaaS/OvisOCR2

Читать полностью…

Python вопросы с собеседований

Что выведет код?


t = ([],)

try:
t[0] += [1]
except TypeError as e:
print("Ошибка:", type(e).__name__)

print(t)


Многие думают:


Ошибка: TypeError
([],)


Но Python выведет:


Ошибка: TypeError
([1],)


Почему?

`t` — tuple, его нельзя менять.

Но внутри tuple лежит список, а список менять можно.

Оператор `+=` сначала мутирует список:

```python
[] -> [1]
```

А потом Python пытается записать результат обратно в tuple:

```python
t[0] = ...
```

И вот тут падает `TypeError`.

Итог странный: ошибка была, но данные уже изменились.

Главный урок:

immutable-контейнер не делает вложенные объекты immutable.

Если внутри tuple лежит list, этот list всё ещё можно изменить.

Читать полностью…

Python вопросы с собеседований

Шаринган разработчика: увидь, где код жрёт время, и бей туда

Оптимизация на языке Итачи. Не улучшай всё подряд, сначала увидь настоящий bottleneck. Включаешь профилировщик cProfile, собираешь статистику, сортируешь по cumtime и бьёшь в самую дорогую функцию. build_report на 78% времени это не догадка, а факт из профиля. Меньше слепых правок, больше точных ударов.

https://www.youtube.com/shorts/11O1Sadtcwc

Читать полностью…

Python вопросы с собеседований

tracesage добавляет локальный tracing без инфраструктуры для LangChain/LangGraph-агентов всего в две строки.

Он записывает каждый chain, tool call и LLM call в SQLite, а затем показывает запуск в браузере как live graph и timeline.

Open source, установка через pip install, лицензия MIT.

https://github.com/kjgpta/tracesage

Читать полностью…

Python вопросы с собеседований

🖥 Редкий Python-трюк: `contextvars` вместо глобальных переменных в async-коде

Хочешь, чтобы request_id, user_id или trace_id были доступны в любом месте кода, но без прокидывания через 20 функций?

Не делай так:


current_user = None


В async-приложении это ловушка. Один запрос может перезаписать данные другого.

Правильнее использовать contextvars:


from contextvars import ContextVar

request_id = ContextVar("request_id", default="-")

async def handler(req):
token = request_id.set(req.headers["X-Request-ID"])
try:
await process_order()
finally:
request_id.reset(token)

async def process_order():
print("trace:", request_id.get())


Почему это круто:

1. значение живёт внутри текущего async-контекста
2. параллельные запросы не смешиваются
3. не нужно таскать request_id по всем функциям
4. идеально для логов, tracing, middleware и background tasks

Особенно полезно в FastAPI, aiohttp, Celery-like воркерах и сервисах с большим количеством async-задач.

threading.local() был норм для потоков.

contextvars - нормальный инструмент для современного async Python.

Читать полностью…

Python вопросы с собеседований

🐍 Python Парсинг: Большой продвинутый бесплатный курс

Полное практическое руководство по веб-скрейпингу на Python — от основ HTTP до production-grade пауков, обхода антибот-защит, асинхронности и проектирования надёжных пайплайнов. Каждый раздел содержит рабочие примеры, типовые ошибки и продвинутые практики.

https://github.com/justxor/Pythonparsing-/tree/main

Читать полностью…

Python вопросы с собеседований

⚡️ Как узнать количество CPU в Python одной строкой

Для этого не нужны сторонние библиотеки — всё есть в стандартном multiprocessing:


import multiprocessing

print(multiprocessing.cpu_count())


Например:


8


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

То же самое можно получить через:


import os

print(os.cpu_count())


Это особенно полезно, когда нужно автоматически подобрать количество worker-процессов:


workers = multiprocessing.cpu_count()


Но запускать N workers только потому, что у CPU есть N потоков, не всегда оптимально. Для CPU-bound задач количество процессов обычно подбирают экспериментально, а для I/O-bound архитектура может быть совсем другой.

Маленькая функция, но часто полезна при настройке multiprocessing, worker pools и параллельных вычислений.

#Python #Programming #Multiprocessing #Backend

Читать полностью…

Python вопросы с собеседований

🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта

GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.

Что внутри:

- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.


from graphforge import GraphForge

graph = GraphForge("research/")

result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")

print(result.to_pandas())


При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.

Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.

https://github.com/CurateLabs/graphforge

#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph

Читать полностью…

Python вопросы с собеседований

✔️ Liquid AI выпустила локального агента, который работает на телефоне

LFM2.5-2.6B - компактная агентная модель на 2,6 млрд параметров. Она умеет планировать действия, вызывать инструменты и выполнять многошаговые задачи полностью на устройстве, без облачного API.

Модель обучили примерно на 34 трлн токенов, расширили словарь до 128 тысяч токенов и добавили контекст 128K.

Особенно интересно устроено дообучение:

- отдельные модели-эксперты усиливали математику, код, tool use и длинный контекст;
- затем их навыки перенесли в одну модель через on-policy distillation;
- финальный этап прошёл внутри реальных агентных сред, включая Hermes Agent и OpenClaw.

По тестам Liquid AI, модель выдаёт:

- до 220 токенов/с на Apple M5 Max;
- до 113 токенов/с на Ryzen AI Max+ 395;
- около 30 токенов/с на смартфоне;
- почти 15 000 выходных токенов/с на одной H100 при высокой параллельной нагрузке.

При этом потребление памяти на CPU остаётся ниже 2,5 ГБ.

В бенчмарках LFM2.5-2.6B обходит более крупные Gemma и Qwen в ряде задач на следование инструкциям и использование инструментов. В сложном программировании большие модели пока сохраняют преимущество.

Есть поддержка llama.cpp, MLX, vLLM, SGLang и ONNX. Доступны базовая и дообученная open-weight версии.

Источник:
https://www.liquid.ai/blog/lfm2-5-2-6b

#LiquidAI #opensource

@ai_machinelearning_big_data

Читать полностью…

Python вопросы с собеседований

🔥 PyTorch Monarch теперь поддерживает AMD GPU через ROCm

Monarch позволяет управлять распределённым обучением на сотнях GPU из одной Python-программы. Вместо ручной координации процессов разработчик работает с акторами и группами устройств, а runtime берёт оркестрацию на себя.

Главное преимущество - отказоустойчивость. Если один узел выходит из строя, исправные реплики продолжают обучение. Система перезапускает повреждённую группу, восстанавливает её состояние и возвращает в работу без полного рестарта кластера.

Поддержка ROCm включает:

- Actor runtime и supervision trees
- шардирование тензоров
- RCCL и RDMA
- SLURM, Kubernetes и SkyPilot
- интеграцию с TorchTitan и TorchFT

Подход протестировали на кластерах из 128 AMD MI300 и 256 MI355 GPU. Даже при искусственно вызванных сбоях обучение продолжалось почти так же стабильно, как в обычном запуске.

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

Подробнее:
https://pytorch.org/blog/bringing-pytorch-monarch-to-amd-gpus-single-controller-distributed-training-on-rocm/

Читать полностью…

Python вопросы с собеседований

🐍 Python-совет: когда `deque` лучше обычного списка

collections.deque — двусторонняя очередь, оптимизированная для быстрых операций с обоих концов.


from collections import deque

queue = deque(["a", "b", "c"])

queue.append("d") # добавить справа
queue.appendleft("z") # добавить слева

queue.pop() # удалить справа
queue.popleft() # удалить слева


У deque добавление и удаление с краёв выполняются за O(1). У списка операция pop(0) требует сдвига остальных элементов и работает за O(n).

Ещё одна полезная возможность — циклический сдвиг:


queue.rotate(1) # сдвиг вправо
queue.rotate(-1) # сдвиг влево


Подходит для очередей задач, скользящих окон, буферов и алгоритмов обхода графов.

Читать полностью…

Python вопросы с собеседований

🐍 Python-совет: как объединить списки разной длины

Обычный zip() прекращает работу, когда заканчивается самый короткий список:


x = [1, 2, 3, 4, 5]
y = ["a", "b", "c"]

print(list(zip(x, y)))
# [(1, "a"), (2, "b"), (3, "c")]


Чтобы сохранить все элементы, используйте zip_longest()


from itertools import zip_longest

print(list(zip_longest(x, y)))
# [(1, "a"), (2, "b"), (3, "c"), (4, None), (5, None)]


Для пустых позиций можно указать своё значение:

result = zip_longest(
x,
y,
fillvalue="нет значения",
)```

Полезно при объединении таблиц, колонок и данных из источников разной длины.

#Python #Programming #DataProcessing

Читать полностью…

Python вопросы с собеседований

«Сэр… всё кончено. Китайцы выложили веса Kimi K3 в открытый доступ»

Moonshot AI опубликовала Kimi K3 на Hugging Face — мультимодальную MoE-модель с 2,8 трлн параметров, из которых на токен активируются около 104 млрд.

Что внутри:

контекст до 1 млн токенов;
работа с текстом и изображениями;
длительные агентные задачи и вызов инструментов;
программирование, исследование репозиториев и работа с терминалом;
нативная квантизация MXFP4.

На Terminal-Bench 2.1 авторы заявляют 88,3 балла, а на FrontierSWE — 81,2. Результаты получены в собственном агентном окружении Kimi Code, поэтому сравнивать их нужно с учётом harness.

Веса доступны по лицензии Kimi K3 License. Это уже не экспериментальная модель «для посмотреть», а открытый 3T-класс, который можно разворачивать через vLLM или SGLang.

Читать полностью…

Python вопросы с собеседований

🔥 За одну неделю вышло сразу 6 интересных open-weight моделей

Пока все ждут веса Kimi K3 и Ling 3.0, Sebastian Raschka обновил свою LLM Architecture Gallery свежими релизами. И там есть несколько необычных решений.

1. Nanbeige 4.2 3B
Берёт один стек из 22 Transformer-блоков и прогоняет его дважды. Получается эффективная глубина 44 блока без удвоения весов: больше compute, но почти тот же parameter footprint.

2. Laguna S 2.1
118B MoE, всего 8B активных параметров и контекст 1M токенов. Poolside позиционирует её для долгих coding-agent задач, причём модель помещается на одном DGX Spark.

3. Motif 3 Beta
314B-A13B MoE с новой Grouped Differential Latent Attention: latent-compression внимания дополняется группировкой heads и механизмом подавления «шума».

4. Solar Open 2
250B-A15B от Upstage. Архитектура чередует 3 linear-attention слоя и 1 GQA, что помогает довести контекст до 1M токенов.

5. Antares 1B
Маленькая security-модель Cisco на базе Granite 4.0. Её дообучили через SFT + GRPO для поиска уязвимых участков кода через терминал. Хороший пример того, насколько далеко можно увести специализированную модель всего на 1B параметров.

6. BTL-3
Всего лишь rank-32 LoRA поверх Qwen3.6-27B, заточенная под coding agents и structured tool calling. Авторы заявляют 88,5% на BFCL v4 AST и 95,12% HumanEval pass@1.

Open-weight экосистема сейчас интересна именно разнообразием архитектур: looped transformers, sparse MoE, linear attention, специализированные SLM и обычные LoRA-адаптеры развиваются одновременно.

Все схемы и сравнения:
https://sebastianraschka.com/llm-architecture-gallery/

Читать полностью…

Python вопросы с собеседований

Kimi K3 может стать моментом DeepSeek 2.0

Первые бенчмарки выглядят очень сильно. Kimi K3 уже называют моделью, которая сокращает разрыв между китайскими open-weight моделями и закрытыми флагманами США. FT пишет, что K3 должна превзойти Opus 4.8 в ряде бенчмарков, но при этом всё ещё не дотягивает до закрытой Fable.

Opus 4.8 вышла в конце мая, Anthropic позиционировала её как заметное обновление для agentic-задач, reasoning и работы с инструментами. Если Kimi K3 действительно обходит её в части тестов, тезис «Китай стабильно отстаёт на 6–8 месяцев» становится всё слабее.

Отдельно Kimi-K3 уже вышла на первое место в Frontend Code Arena с 1679 pts, обойдя Claude Fable 5. В frontend она стала №1 в 6 из 7 доменов: Brand & Marketing, Reference-Based Design, Data & Analytics, Consumer Product, Simulations и Content Creation Tools.

Конечно, бенчмарки ещё нужно проверять реальным использованием: coding agents, большие репозитории, 3D, интерфейсы, долгие задачи, стабильность и цена.

Китайские модели всё ближе к frontier-уровню американских закрытых.

Kimi K3 - не Fable и не Mythos. Но она уже слишком близко к топовым западным моделям, чтобы относиться к ней как к «ещё одной open model».


kimi.com/code/docs/en/kimi-code/models

Читать полностью…

Python вопросы с собеседований

В regex 1.13 появился макрос regex!.

Важно: это не compile-time regex.

Он не компилирует регулярку на этапе сборки.

Смысл другой: макрос закрывает частый паттерн, когда вы используете что-то вроде std::sync::LazyLock, чтобы регулярное выражение компилировалось примерно один раз, а не при каждом вызове.

То есть вместо ручной обёртки вокруг lazy-инициализации теперь есть более удобный встроенный способ.

PR: github.com/rust-lang/regex/pull/1371

Читать полностью…

Python вопросы с собеседований

Что выведет этот код?


funcs = []

for i in range(3):
funcs.append(lambda: i)

print([f() for f in funcs])


Многие думают:


[0, 1, 2]


Но Python выведет:


[2, 2, 2]


Почему?

`lambda` не запоминает значение `i` в момент создания.

Она запоминает саму переменную.

Когда цикл закончился, `i` уже равно `2`.

Поэтому все функции смотрят на одно и то же последнее значение.

Правильный фикс:

```python
funcs = []

for i in range(3):
funcs.append(lambda i=i: i)

print([f() for f in funcs])
```

Теперь будет:

```python
[0, 1, 2]
```

Хитрость простая:
если создаёшь функцию в цикле — фиксируй значение через аргумент по умолчанию.

Читать полностью…

Python вопросы с собеседований

🖥 Python-трюк: `iter()` умеет работать как цикл до стоп-сигнала

Многие знают iter() только для списков, но у него есть второй режим:


iter(callable, sentinel)


Он вызывает функцию снова и снова, пока она не вернёт sentinel.

Например, читать большой файл кусками без while True:


with open("video.mp4", "rb") as f:
for chunk in iter(lambda: f.read(8192), b""):
process(chunk)


Что происходит:

• lambda читает по 8192 байта
• когда файл закончится, read() вернёт b""
• цикл сам остановится

Выглядит мелко, но это чистый и питоновский способ убрать вечные:


while True:
chunk = f.read(8192)
if not chunk:
break


Редкая штука, которую приятно знать.

Читать полностью…

Python вопросы с собеседований

Основы Git и GitHub за 30 секунд: настройка, коммиты, ветки, Pull Request

GitHub пугает новичков не сложностью, а количеством команд, в которых легко утонуть в первый же день. Эта шпаргалка собирает весь базовый путь от пустого терминала до открытого Pull Request, чтобы не держать всё в голове и не гуглить каждый шаг.
Сначала первая настройка: задаёшь имя и email, иначе коммиты уходят непонятно от кого. Дальше старт работы: клонируешь репозиторий, заходишь в папку и сразу создаёшь свою ветку под задачу. Потом ежедневный цикл, который повторяется каждый день: status, pull, add, commit, push. Проверил, обновил, добавил, закоммитил, отправил. Отдельно блок полезных команд на каждый день: log с графом, diff, stash, branch и переключение на main.

Читать полностью…

Python вопросы с собеседований

Разберем математику бесконечности Сатору Годжо, которая работает не как обычный щит.

Он не просто останавливает удар в последний момент. Идея в том, что пространство между атакой и Годжо как будто делится на всё более маленькие отрезки.

Сначала объект проходит половину расстояния. Потом половину оставшегося. Потом ещё половину. И так снова и снова.

Математически это похоже на бесконечную сумму: одна вторая, одна четвёртая, одна восьмая, одна шестнадцатая.

Объект всё ближе, но до контакта так и не доходит.

На практике атака как будто замедляется почти до нуля. Чем ближе она к Годжо, тем сильнее падает её эффективная скорость.

Поэтому Бесконечность — это не просто барьер. Это контроль пространства, где противник застревает в бесконечном приближении.

Читать полностью…

Python вопросы с собеседований

Python Совет: как добавить watermark на график Matplotlib

В Matplotlib водяной знак можно добавить прямо через fig.text().

Пример:


import matplotlib.pyplot as plt

fig = plt.figure(figsize=(5, 8))

fig.text(
1, 0.15,
"Mouse vs Python",
fontsize=45,
color="blue",
ha="right",
va="bottom",
alpha=0.4,
rotation=25
)

plt.show()


Что здесь важно:

* fig.text() добавляет текст на всю фигуру, а не внутрь конкретной оси
* alpha=0.4 делает watermark полупрозрачным
* rotation=25 поворачивает надпись
* ha и va управляют привязкой текста по горизонтали и вертикали

Полезно для отчётов, графиков в блогах, внутренних дашбордов и картинок, которые могут разойтись без контекста.

Читать полностью…
Subscribe to a channel