Данные из 224вакансии · 12 августа 2026

Как стать Python-разработчиком: путь от нуля до первого оффера

Не «стань разработчиком за 3 месяца» — реальный путь входа на основе данных по 224 вакансии.

Мурадов ЮрийАвтор·Мурадов Юрий·Аналитик SkillStat
ГППроверено·Григорий Петров·Технический редактор·Python-разработчик
Junior-вакансий сейчас
20
9% от всех 224 вакансии
Сложность входа
Средняя
9% junior-вакансий
Senior / Junior+Intern
4.9x
На каждого junior+intern — 4.9 senior
Навыков / вакансия
15
медиана по вакансиям
Всего вакансий
224
активных в Москве

Можно ли стать Python-разработчиком с нуля

Да. По данным SkillStat, 9% вакансий Python-разработчика — уровня junior или стажёр. Это 20 вакансий прямо сейчас.

«С нуля» у Python-разработчика — формулировка обманчивая. Python почти всегда чей-то первый язык, и к моменту первого отклика человек уже что-то писал: скрипт, домашку с курса, парсер. Опыта это не даёт, потому что вакансия просит другое — прикладную логику, которая живёт в платформе рядом с чужими сервисами и не разваливается, когда сосед отвечает через раз. Рынок это подтверждает: 20 вакансий уровня junior из 224, на одного новичка — 4.9 senior-вакансии.

Под одним названием тут два разных рынка. Первый — сервисный: FastAPI (58.9%), PostgreSQL (69.6%), Apache Kafka (34.4%), Kubernetes (35.7%), Microservices (33%) — Python пишет логику внутри платформы из десятка сервисов. Второй — вокруг моделей: LLM стоит в 29.9% вакансий Python-разработчика, и работа там тоже питоновская, только предмет другой — вызов модели, очередь, кэш, разбор ответа, который каждый раз новый. Трудно не выучить язык: он прощает почти всё. Трудно ровно то, что он прощает. Интерпретатор не остановит тебя на опечатке в редкой ветке, ORM молча сходит в базу двести раз подряд, а один блокирующий вызов внутри асинхронного обработчика останавливает весь сервис. Всё это показывает прод.

Как стать Python-разработчиком: короткий план

Порядок важнее скорости: Python отвечает так быстро, что соблазняет пропустить всё остальное.

01
Язык и окружение
Python — в 99.6% вакансий Python-разработчика. Кроме конструкций сразу бери аннотации типов, исключения и виртуальное окружение: компилятора здесь нет, и всё, что в других языках ловится до запуска, ловят типы и тесты.
02
PostgreSQL до ORM
PostgreSQL — в 69.6% вакансий, SQL — в 41.5%, SQLAlchemy — в части. Сначала запрос руками, индексы и план выполнения. Возьмёшь ORM раньше — она будет писать за тебя запросы, которых ты не увидишь.
03
FastAPI и асинхронность
FastAPI — в 58.9% вакансий, REST — в 47.3%, HTTP — в части. Каркас осваивается за неделю, событийный цикл — нет: учи, что можно звать внутри асинхронного обработчика, а что придётся выносить.
04
Среда и тесты
Docker — в 63.4% вакансий, Git — в 42.4%, Linux — в 30.8%, CI/CD — в 37.1%, pytest — в 25%. Проект должен подниматься одной командой у постороннего человека и падать в сборке, когда тест красный.
05
Выбор контура
Здесь рынок расходится. Сервисный: Apache Kafka — в 34.4% вакансий, RabbitMQ — в 23.2%, Redis — в 37.1%, Kubernetes — в 35.7%. Модельный: LLM — в 29.9%. Выбери один и доведи до проекта: оба сразу не читаются как специализация.

Что учить Python-разработчику первым

Не всё сразу. Вот очерёдность по частотности в вакансиях — от самого нужного к менее срочному.

Навык Все вакансии
Python 99.6%
PostgreSQL 69.6%
Docker 63.4%
FastAPI 58.9%
REST 47.3%
Git 42.4%
SQL 41.5%
CI/CD 37.1%
Redis 37.1%
Kubernetes 35.7%

«Все вакансии» — доля из 224 вакансии. Обновлено 12 августа 2026.

Полный список навыков с частотностью, связками и зарплатной премией — навыки Python-разработчика →

Roadmap Python-разработчика: от нуля до junior

Порядок опирается на частотность навыков по данным вакансий. Первые 4–5 этапов — минимум для первого оффера.

  1. 01
    Основной язык и рантайм 99.6% вакансий

    Синтаксис, ООП, обработка исключений, стандартная библиотека, async-основы.

    Подробнее →
  2. 02
    Git 42.4% вакансий

    Git обычно ожидается на любом грейде, даже если не всегда явно указан в вакансии.

    Подробнее →
  3. 03
    SQL и база данных 41.5% вакансий

    Реляционные БД, запросы, индексы, транзакции.

    Подробнее →
  4. 04
    HTTP и REST API 19.6% вакансий

    Протокол HTTP, методы запросов, статусы, проектирование RESTful-интерфейсов.

    Подробнее →
  5. 05
    Веб-фреймворк 58.9% вакансий

    Один веб-фреймворк — тот, что доминирует в вакансиях по вашему языку. Он даёт маршрутизацию, обработку запросов и первый рабочий сервис.

    Подробнее →
  6. 06
    Тестирование 25% вакансий middle+

    Юнит-тесты, фикстуры, мок-объекты — ожидается даже на junior.

    Подробнее →
  7. 07
    Docker и Linux 63.4% вакансий middle+

    Контейнеризация и базовые навыки Linux — стандарт серверной разработки и CI/CD.

    Подробнее →
  8. 08
    Очереди и кэш 37.1% вакансий middle+

    Redis, RabbitMQ, брокеры сообщений — актуальны на middle.

    Подробнее →
  9. 09
    CI/CD и production-практики middle+

    GitLab CI / GitHub Actions, деплой, мониторинг. Востребованы на middle/senior.

    Подробнее →
  10. 10
    Kafka, Kubernetes — senior/infra 34.4% вакансий middle+

    Не входят в junior-минимум. Востребованы в масштабируемых системах и инфраструктурных ролях.

    Подробнее →

Junior-вакансии Python-разработчика: что реально требуют работодатели

Срез построен на 224 активных вакансии.

Junior-вакансий
20
inc. стажировки
Доля junior
9%
от всего рынка
Senior / Junior+Intern
4.9x
соотношение
Навыков / вакансия
15
медиана
Распределение вакансий по грейдам
Intern — 1.7% (3)
Junior — 9.4% (17)
Middle — 32.8% (59)
Senior — 54.4% (98)
Lead — 1.7% (3)
Что значат эти цифры. 20 вакансий уровня junior из 224 — вход умеренный, и причина у Python отдельная. С этого языка начинают почти все, кто вообще заходит в IT: он первый в школе, в вузе и на курсах. Поэтому в отклики на одну питоновскую junior-позицию попадают и будущие тестировщики, и аналитики, и те, кто три месяца назад открыл редактор. Сами вакансии написаны не на «Python вообще»: медиана — 15 навыков, и рядом с языком стоят PostgreSQL (69.6%), Docker (63.4%), Apache Kafka (34.4%), Kubernetes (35.7%). Отсеивает не язык — отсеивает этот список.

Какие проекты сделать для портфолио

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

Сервис, который переживает отказ соседа
Средняя · 2 недели
Стек: FastAPI, PostgreSQL, SQLAlchemy, pytest
GitHub: Миграции, .env.example, тесты на таймаут и повторный запрос, README с описанием контракта и с ответом на вопрос, что происходит, когда внешний источник молчит
Ценность: FastAPI — в 58.9% вакансий, PostgreSQL — в 69.6%: опорная пара рынка. Отличает проект не сам обработчик, а обработка чужого отказа
Фоновая обработка через очередь
Средняя · 1–2 недели
Стек: Apache Kafka или RabbitMQ, Celery, Redis, Docker Compose
GitHub: Брокер в docker-compose, тест на повторную доставку, описание того, что останется в базе, если обработчик упал на середине
Ценность: Apache Kafka — в 34.4% вакансий, RabbitMQ — в 23.2%, Redis — в 37.1%. Фоновые задачи — половина работы питоновского сервиса, и в учебных репозиториях их почти не бывает
Обвязка вокруг языковой модели
Средняя · 2 недели
Стек: Python, FastAPI, Redis, LLM
GitHub: Кэш ответов, ограничение частоты обращений, поведение при отказе модели, замер задержки и стоимости, набор примеров для проверки качества ответа
Ценность: LLM — в 29.9% вакансий Python-разработчика. Показывает то, чего нет в учебных проектах: источник отвечает медленно, каждый раз по-разному и иногда мимо
Разбор медленного места
Лёгкая–средняя · 1 неделя
Стек: SQLAlchemy, PostgreSQL, pytest
GitHub: Замер до и после, план выполнения запроса, журнал запросов на одной странице, коммит, по которому видно, что именно изменилось
Ценность: N+1 из ORM — то, что спрашивают почти всегда, когда в вакансии стоит SQLAlchemy. Показывает, что ты смотришь на запросы, а не только на код

Как оформить GitHub и резюме

Профиль GitHub
  • Pinned: сервис на FastAPI и обработчик очереди. Скрипты с курса, решения задачек и заготовки уроков — убрать
  • Файл зависимостей с зафиксированными версиями и виртуальное окружение: без них проект поднимется только у тебя, и проверять его никто не будет
  • README: запуск одной командой через Docker Compose, .env.example, отдельная строка про то, что делает сервис при недоступной базе
  • Тесты на pytest лежат в репозитории и гоняются в сборке: pytest — в 25% вакансий, CI/CD — в 37.1%
  • Аннотации типов по всему коду: на ревью питоновского проекта по ним судят раньше, чем по логике
Резюме без коммерческого опыта
  • Указывай контур, а не язык: «сервис на FastAPI в платформе из десятка сервисов» и «обвязка вокруг модели» — это отклики на разные вакансии
  • На каждый проект три строки: где данные, где асинхронность, что происходит при отказе соседа
  • Django пиши, только если делал на нём проект. FastAPI (58.9%) и Django (28.1%) спрашивают по-разному, и подмена вскрывается первым же вопросом про админку или миграции
  • Kubernetes (35.7%) в навыках — если правда открывал: проверят вопросом про перезапуск пода, а не строчкой в резюме
  • Python как второй инструмент в другой роли — тестирование, аналитика, администрирование — не прячь в конце. Переход из смежной роли рынок читает лучше, чем чистый старт с курса
Слабое резюме

«Уверенное владение Python, опыт работы с фреймворками и базами данных, писал парсеры и телеграм-ботов»

Сильное резюме

«Сервис выдачи документов на FastAPI: PostgreSQL с миграциями через SQLAlchemy, фоновая обработка в RabbitMQ с ключом идемпотентности, кэш в Redis. Убрал N+1 в списке заказов — 240 запросов свернул в 2, ответ с 1.9 с до 180 мс. Тесты на pytest, прогон в CI/CD, поднимается одной командой в Docker Compose. GitHub: [ссылка]»

Самостоятельно, курсы или вуз — какой путь выбрать

Самостоятельно
Python обеспечен материалами лучше любого другого языка: документация, разборы и открытый код доступны в избытке и бесплатно
Избыток и мешает. Материалов про язык — горы, про сервис с очередью, базой и эксплуатацией — почти нет, и человек застревает на уровне скриптов, считая, что учит профессию
Если Python уже был рабочим инструментом в смежной роли и ты добираешь серверную часть
Курсы с ментором
Ревью ловит именно питоновское: блокирующий вызов в асинхронном коде, N+1 из ORM, изменяемое значение аргумента по умолчанию. Про это интерпретатор молчит, а прод — нет
Курсов по Python больше, чем по любому другому языку, и разброс качества соответствующий: многие учат Django, потому что так проще проверять домашние задания, а не потому, что этого просит вакансия
Если Python — первый язык и рядом нет никого, кто прочитает твой код
Вуз / колледж
Алгоритмы, сети и базы дают системно, а спрашивают их в крупных командах всерьёз
4 года. Python в программе будет учебным языком для лабораторных, а FastAPI, Apache Kafka и Kubernetes — не будет вовсе
Если целишься в крупные продуктовые компании или в сторону моделей и данных, где фундамент проверяют по-настоящему
Ловушка Python: язык отвечает слишком быстро. Скрипт в десять строк работает сразу, и это ощущается как прогресс — можно полгода писать парсеры и ботов, ни разу не столкнувшись с тем, за что платят: с чужим сервисом, который отвечает через раз, с запросом, который идёт четыре секунды, и с обработчиком, упавшим на середине очереди. Проверка простая: если твой код ещё ни разу не ломался по чужой вине — ты пока не подошёл к профессии.
Курсы · подобрано по данным рынка

Курсы для Python-разработчика

Сопоставили программы с реальным стеком из 224 вакансии — оценка соответствия рассчитана автоматически, это не реклама.

Все курсы →
Соответствие = доля ключевых навыков вакансий, которые закрывает программа курса. На основе 224 вакансии, обновлено автоматически.

Что спрашивают на собеседовании

Язык и его подвохи
Типовые вопросы
  • ·Что произойдёт, если поставить изменяемый список значением аргумента по умолчанию
  • ·Чем генератор отличается от списка и когда эта разница видна на практике
  • ·Зачем аннотации типов, если интерпретатор их всё равно не проверяет
  • ·Как менеджер контекста гарантирует, что соединение закроется при исключении
Как показать проектом

Свой сервис: покажи, где стоит генератор и почему, и как расставлены аннотации

Асинхронность
Типовые вопросы
  • ·Что случится, если внутри асинхронного обработчика вызвать блокирующую функцию
  • ·Чем асинхронность отличается от потоков и когда нужен каждый
  • ·Как отменить задачу, которая уже запущена
  • ·Почему сервис держит тысячу соединений, но встаёт на одном тяжёлом вычислении
Как показать проектом

Сервис на FastAPI: покажи, что ты вынес из событийного цикла и куда именно

PostgreSQL и ORM
Типовые вопросы
  • ·Что такое N+1 и как он появляется в SQLAlchemy незаметно для автора
  • ·Где границы транзакции в твоём сервисе и что откатится при ошибке
  • ·Как понять, что запрос идёт мимо индекса
  • ·ORM или запрос руками: как выбираешь и где ORM мешает
Как показать проектом

Замер до и после: план выполнения и число запросов на одном списке

Сервис в платформе
Типовые вопросы
  • ·Событие из очереди пришло дважды — как не создать вторую запись
  • ·Что делает сервис, если соседний отвечает дольше таймаута
  • ·Redis как кэш: что делаешь при расхождении с базой
  • ·Как поменять контракт REST, не сломав существующих клиентов
Как показать проектом

Обработчик очереди: покажи ключ идемпотентности и тест на повторную доставку

Тесты и эксплуатация
Типовые вопросы
  • ·Что подменяешь заглушкой в тестах на pytest, а что оставляешь настоящим
  • ·Что смотришь первым, когда сервис в Kubernetes перезапускается по кругу
  • ·Как воспроизвести дефект, который виден только на проде
  • ·Почему проект поднимается у тебя и не поднимается у коллеги
Как показать проектом

Docker Compose и прогон в CI/CD: покажи, что сборка падает на красном тесте

Сколько времени нужно, чтобы стать Python-разработчиком

Минимум
5–8 мес
Если Python уже был рабочим инструментом в смежной роли: учить надо сервис, базу и эксплуатацию, а не язык
Медиана
12–18 мес
Самостоятельно с нуля: язык уйдёт за пару месяцев, остальное время съедят PostgreSQL, FastAPI, асинхронность, Docker и умение читать чужой код
Реалистично
18–28 мес
Первый язык, учёба параллельно с работой, вход через стажировку или через Django-монолит в небольшой команде

«Python учится за три месяца» — правда, которая ничего не решает. Язык короткий, синтаксис действительно уходит за недели. Только вакансия Python-разработчика собрана вокруг другого: PostgreSQL (69.6%), Docker (63.4%), FastAPI (58.9%), CI/CD (37.1%), медиана 15 навыков в вакансии. Три месяца — срок до первого работающего скрипта, а не до первого оффера.

Срок решают три вещи: был ли Python рабочим инструментом раньше; есть ли проект, который ломается не по твоей вине; выбран ли контур. Того, кто полтора года учит «Python вообще» и так и не выбрал между сервисом и моделями, рынок читает как человека без специализации — и это дороже любого пробела в стеке.

Ошибки новичков

Учат Django, потому что курсов по нему больше

Почему мешает: Django — в 28.1% вакансий Python-разработчика, FastAPI — в 58.9%. Это не «оба сгодятся»: монолит с админкой и сервис в платформе — разная работа, разные вопросы на собеседовании и разные команды

Как исправить: Открой десяток вакансий, на которые целишься, и учи то, что стоит в них. Второй каркас добирается за пару недель, когда первый понят по-настоящему

Ставят блокирующий вызов в асинхронный обработчик

Почему мешает: Событийный цикл один на всех. Один синхронный поход в базу или к внешнему источнику — и сервис не отвечает никому, пока вызов не вернётся. Локально на одном запросе это выглядит нормально

Как исправить: В асинхронном коде — асинхронные библиотеки. Тяжёлое и синхронное выносится в отдельный поток или в очередь

Доверяют ORM на слово

Почему мешает: SQLAlchemy и ORM в Django молча превращают цикл по списку в двести запросов к PostgreSQL. Код при этом выглядит чисто, и проблема всплывает на объёме, которого нет на твоей машине

Как исправить: Включи журнал запросов на своём проекте и посчитай, сколько их уходит на одну страницу. Пятиминутная проверка, которая меняет отношение к ORM навсегда

Пишут скрипт и называют это сервисом

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

Как исправить: Раздели обработчик, логику и доступ к данным. Проверка — можно ли поменять базу, не трогая логику

Игнорируют окружение и версии зависимостей

Почему мешает: «У меня работает» — питоновская классика: пакеты стоят глобально, версии не зафиксированы, у проверяющего проект не поднимается. Отклик закрывается ровно здесь, до чтения кода

Как исправить: Виртуальное окружение и файл зависимостей с версиями — с первого коммита. Проверь на чистой машине или в Docker (63.4%)

Считают LLM отдельной профессией

Почему мешает: LLM — в 29.9% вакансий Python-разработчика, и работа там питоновская: вызвать модель, положить в очередь, закэшировать, обработать отказ, проверить ответ. Обучают модели в других ролях и другими руками

Как исправить: Тянет в этот контур — собери обвязку вокруг готовой модели. Это ближе к сервису, чем к науке, и на входе спросят про таймауты и кэш

Учат Kubernetes раньше, чем появился сервис

Почему мешает: Kubernetes — в 35.7% вакансий, но новичку в нём нужны три вещи: посмотреть логи, понять перезапуск, найти конфигурацию. Без своего сервиса в кластер просто нечего класть

Как исправить: Docker и Docker Compose — сначала. Kubernetes читается за неделю, когда есть что запускать

Не пишут тесты, потому что «код же простой»

Почему мешает: В Python нет компилятора, который поймает опечатку в имени поля на ветке, куда ты не заходил. pytest — в 25% вакансий: тесты здесь закрывают то, что в строгих языках делает сборка

Как исправить: Тесты на граничные случаи: пустой ответ, ошибка внешнего сервиса, повторный запрос. Прогон в CI/CD (37.1%) с первого дня

Как SkillStat считает данные

Источник: 224 вакансии в московском сегменте. Навыки и грейды извлекаются автоматически из текста каждой вакансии.

Грейды: определяются по требованиям вакансии — уровню опыта, упоминанию «junior», «intern», «стажёр». Это рыночная оценка объявления.

Сложность входа: рассчитывается по доле junior-вакансий и медиане навыков на junior-уровне. Это индикатор, а не гарантия.

Обновление: данные пересчитываются регулярно. Текущий срез — 12 августа 2026.

Частые вопросы

Можно ли стать Python-разработчиком с нуля?
Можно, но конкурс на вход выше, чем кажется по популярности языка, — и как раз из-за неё. По данным SkillStat, 20 из 224 вакансии Python-разработчика — уровня junior или стажёр, на одного новичка приходится 4.9 senior-вакансии. С Python начинают почти все, кто заходит в IT, поэтому на одну входную позицию откликается толпа с примерно одинаковым набором: язык и пара учебных проектов. Проходят те, у кого рядом с языком стоит база, контейнер и понимание, как сервис живёт после релиза.
FastAPI или Django — что учить первым?
Смотри на долю и на тип работы. FastAPI — в 58.9% вакансий Python-разработчика, Django — в 28.1%. Это не два способа сделать одно: Django — монолит с админкой, своей ORM и готовой экосистемой, его берут, когда приложение делается целиком и быстро. FastAPI — отдельный сервис в платформе, где рядом Apache Kafka (34.4%) и Kubernetes (35.7%). Выбирай по вакансиям, на которые целишься, и учи один как следует.
Нужен ли SQL, если есть ORM?
Нужен, и именно из-за ORM. PostgreSQL — в 69.6% вакансий Python-разработчика, SQL — в 41.5%, SQLAlchemy — в части: база встречается чаще любого каркаса. ORM скрывает запрос, но не отменяет его, и разбирать медленную выдачу ты будешь по плану выполнения, а не по коду модели. Порядок обратный привычному: сначала запросы руками и индексы, потом ORM.
Что такое N+1 и почему про него спрашивают всегда?
Это когда код в цикле дёргает связанные записи, и вместо одного запроса к базе уходит двести. В SQLAlchemy и в ORM Django это получается само: пишешь обычный цикл по списку, ORM подгружает связь лениво на каждой итерации. Спрашивают потому, что дефект не виден ни в коде, ни на десяти тестовых записях — он ждёт объёма. Ответ, который ждут: включить журнал запросов, увидеть их число, свернуть жадной загрузкой.
Нужна ли асинхронность на входе?
Понимать — да. FastAPI — в 58.9% вакансий Python-разработчика, а он асинхронный по устройству, и первый же вопрос будет про блокирующий вызов внутри обработчика. Событийный цикл один: синхронный поход в базу останавливает не твой запрос, а все. Писать сложные конкурентные схемы от новичка не ждут — ждут, что ты знаешь, что можно звать внутри цикла, а что надо вынести.
Нужен ли Docker?
Да, это входное требование, а не украшение. Docker — в 63.4% вакансий Python-разработчика (142 из 224). От новичка ждут немногого: собрать образ, поднять проект вместе с PostgreSQL и Redis одной командой, понять, почему контейнер упал. Плюс побочный эффект — исчезает «у меня работает»: окружение зафиксировано, и проект поднимается у проверяющего.
Нужен ли Kubernetes?
Понимать — да, настраивать — нет. Kubernetes — в 35.7% вакансий Python-разработчика, и это маркер: сервисов у команды много, твой будет одним из них. Junior в кластере делает три вещи: смотрит логи, разбирается, почему под перезапускается, находит конфигурацию. Разворачивать кластер тебя не попросят.
Нужны ли Kafka и RabbitMQ?
На входе — понимание, дальше — обязательно. Apache Kafka — в 34.4% вакансий Python-разработчика, RabbitMQ — в 23.2%, Microservices — в 33%. Питоновский сервис редко живёт один: он принимает события, ставит задачи в фон и отдаёт результат соседям. Один обработчик очереди с защитой от повторной доставки закрывает тему на собеседовании.
LLM в вакансии — это уже ML-инженер?
Чаще нет. LLM стоит в 29.9% вакансий Python-разработчика, и в большинстве это обычная питоновская работа вокруг чужой модели: вызвать, поставить в очередь, закэшировать ответ, обработать отказ и медленный ответ, проверить качество на наборе примеров. Обучение моделей и математика — соседняя роль. Если тебе интересен этот контур, входить проще как разработчику: спросят про таймауты, кэш и стоимость вызова, а не про градиентный спуск.
Чем Python-разработчик отличается от дата-аналитика?
Языком они пересекаются, предметом — нет. Аналитик отвечает на вопрос о данных и отдаёт результат человеку: витрину, отчёт, вывод. Python-разработчик отдаёт результат другой программе и отвечает за то, чтобы сервис работал в три часа ночи без него. Отсюда и стек: PostgreSQL (69.6%), Docker (63.4%), Apache Kafka (34.4%), Kubernetes (35.7%) — половина списка про эксплуатацию, которой у аналитика нет.
Нужен ли Linux?
Да, на рабочем уровне. Linux — в 30.8% вакансий Python-разработчика: питоновские сервисы живут в контейнерах, а отлаживать их приходится оттуда же — логи, процессы, переменные окружения, права на файл. Отдельно учить дистрибутив не надо; достаточно перестать бояться терминала и уметь дойти до причины по логам.
Нужна ли математика?
Для сервисного контура — нет. Пригождается понимание сложности алгоритмов и структур данных: почему поиск по списку в цикле — это плохо, а по множеству — нет. Высшая математика нужна только в модельном направлении, и то не в обвязке, а глубже, у тех, кто модели обучает.
Нужно ли высшее образование?
Большинство вакансий Python-разработчика диплом не требуют — проверяют кодом и вопросами про базу, асинхронность и поведение сервиса при сбое. Но у Python есть нюанс: из-за низкого порога входа резюме без опыта и без диплома читают бегло, и вес переносится на репозиторий. Диплом тут не пропуск, а один из способов не быть отсеянным на первом экране.
Сколько проектов нужно в портфолио?
Два доведённых лучше пяти начатых. Один сервис на FastAPI с PostgreSQL и внятным поведением при отказе внешнего источника плюс обработчик очереди с защитой от повторов — этого хватает. Третьим можно добавить то, что показывает выбранный контур: обвязку вокруг модели или разбор медленного запроса с замером до и после. Опорные навыки профессии: Python, PostgreSQL, Docker.
Правда ли, что Python учится за три месяца?
Язык — да, профессия — нет, и разрыв между этими двумя фактами у Python больше, чем у любого соседа по рынку. Именно поэтому обещание и звучит правдоподобно: три месяца — честный срок до первого работающего скрипта, и человек принимает его за срок до оффера. Дальше начинается то, что языком не закрывается: база, асинхронность, контейнер, очередь и умение читать чужой код. Из чего собрана вакансия — в карточках сроков выше.
Когда начинать откликаться?
Когда твой сервис поднимается у постороннего человека одной командой, тесты на pytest зелёные и ты можешь объяснить, что произойдёт при отказе базы. Ждать «ещё немного» дорого: время работает против тебя, а обратная связь с собеседования точнее любого чек-листа. По текущему срезу мест для входа 20 вакансий из 224.
Что писать в резюме без коммерческого опыта?
Проект как работу, с предметом и последствиями. Инструменты — конкретные: Python, PostgreSQL. Вместо «писал API» — «фоновая обработка в RabbitMQ с ключом идемпотентности, N+1 в списке заказов свёрнут с 240 запросов до 2». Если Python был инструментом в смежной роли — тестировании, аналитике, администрировании — вынеси это наверх: рынок читает такой переход лучше, чем чистый курс.
Сколько зарабатывает начинающий Python-разработчик?
Ориентир для junior — 126 900–183 300 ₽ при медиане 282 000 ₽ по профессии. Медиана описывает не новичка: перекос по грейдам заметный — 4.9 senior-вакансии на одного junior, и она тянется к их ставке. Разбивка по уровням — на странице зарплат Python-разработчика.
Где посмотреть навыки Python-разработчика?
На странице навыков Python-разработчика: частотность по 224 вакансии, разбивка по грейдам и связки технологий. Полезно смотреть не первую строчку, а сцепку: Python → PostgreSQL → Docker → FastAPI — рынок просит их вместе, а не по отдельности.