
Junior vs Middle Python: что конкретно надо знать на каждом уровне
Константин Потапов
28 марта 2026 г.
15 мин
Карьера
Зачем вообще разделять
Путаница в уровнях — одна из главных причин, почему джуниоры застревают. Они либо думают что уже готовы (и получают отказы), либо думают что ещё не готовы (и не откликаются на вакансии). Эта статья даёт конкретные критерии.
Данные собраны из реальных технических интервью и описаний вакансий.
Python: что знает Junior
Типы данных — использует правильно
Junior понимает изменяемость и умеет выбирать структуру под задачу:
ООП — базовое понимание
Функции — уверенно
Что Junior обычно не знает (и это нормально)
- Метаклассы
- Протоколы и structural subtyping
__slots__и оптимизации памяти- asyncio internals (event loop, Future, Task)
- Профилирование и оптимизация производительности
Python: что знает Middle
Асинхронность — глубоко
Типизация — продвинутая
Контекстные менеджеры — пишет свои
Производительность — умеет измерять и улучшать
Базы данных
Junior знает
| Тема | Уровень |
|---|---|
| SELECT, INSERT, UPDATE, DELETE | Уверенно |
| JOIN (INNER, LEFT) | Понимает |
| WHERE, GROUP BY, ORDER BY | Уверенно |
| Индексы — что это и зачем | Базово |
| ORM (SQLAlchemy или Django ORM) | Базово |
| Миграции (alembic или django) | Запускает команды |
Типичный Junior-запрос:
Middle знает
| Тема | Уровень |
|---|---|
| Составные индексы, EXPLAIN ANALYZE | Понимает |
| Транзакции и уровни изоляции | Объясняет |
| N+1 проблема и её решение | Видит и чинит сам |
| Window functions | Использует |
| Партиционирование таблиц | Знает зачем |
| Connection pooling | Настраивает |
Middle решает N+1:
Архитектура и паттерны
Junior
- Знает MVC/MVP на уровне "понимаю зачем"
- Пишет код в одном файле или слабо организованный
- Слышал про SOLID, может объяснить S и O
- Знает Repository Pattern
Middle
- Применяет SOLID на практике (а не только на словах)
- Выделяет слои: API → Service → Repository
- Понимает когда нужен паттерн, а когда он усложняет
Тестирование
Junior
Middle
DevOps и инструменты
Junior должен знать
- Git: add, commit, push, pull, branch, merge, rebase
- Docker: написать Dockerfile, запустить docker-compose
- Linux: ls, cd, cat, grep, ps, kill, chmod
- Виртуальное окружение: venv или Poetry
Middle должен знать
- CI/CD: GitHub Actions / GitLab CI — написать пайплайн
- Docker: multi-stage builds, оптимизация слоёв
- Мониторинг: логи в структурированном формате (JSON), метрики
- Kubernetes: базовое понимание (Pod, Deployment, Service)
- Секреты: как правильно работать с
.env, secrets management
Soft skills
| Аспект | Junior | Middle |
|---|---|---|
| Code review | Принимает замечания | Даёт конструктивный фидбек |
| Задачи | Выполняет описанные | Уточняет требования, видит edge cases |
| Помощь | Просит помощи | Помогает джунам |
| Оценка | Теряется с оценкой | Декомпозирует и оценивает |
| Архитектурные решения | Спрашивает | Предлагает и обосновывает |
Как понять, что ты готов к Middle
Честный тест — возьми задачу из рабочего проекта и ответь:
- Ты видишь проблемы с производительностью до code review, а не после?
- Ты сам пишешь тесты, а не только когда просят?
- Ты можешь объяснить новому человеку как работает твоя часть системы?
- Ты предлагаешь решения, а не только описываешь проблемы?
- Ты обоснуешь почему выбрал именно этот паттерн?
Если "нет" на 3+ вопроса — пока Junior. Это не плохо, это точка роста.
Что дальше
На Tech Path Finder можно проверить свой текущий уровень в квизах — курсы разделены по темам, и аналитика показывает конкретно где пробелы. Это лучше, чем гадать "а вдруг я уже Middle?".