При занятиях 10–15 часов в неделю путь от нуля до уровня младшего разработчика на Python обычно занимает 8–12 месяцев. В пересчёте на чистое время это ориентировочно 600–1000 часов практики. Меньше полугода получается редко, обычно у тех, кто уже писал код на другом языке или учится полный день. Если заниматься урывками по 3–4 часа в неделю, срок легко растягивается до полутора-двух лет.
Сколько часов уходит на каждый этап?
Цифры ниже служат ориентиром, а не нормативом. Разброс между людьми здесь большой, но порядок величин сохраняется.
- Базовый синтаксис (типы данных, условия, циклы, функции, работа со строками и списками): 60–100 часов.
- ООП, модули, исключения, работа с файлами: 80–120 часов. На этом этапе многие застревают: классы и наследование без практики остаются абстракцией.
- Инструменты разработчика (Git, виртуальное окружение venv или poetry, стандарт оформления PEP 8, отладчик): 40–60 часов, если осваивать их параллельно с кодом.
- SQL и реляционные базы данных (запросы, JOIN, индексы, ORM): 60–100 часов.
- Фреймворк и REST API (Django, Flask или FastAPI в зависимости от направления): 150–250 часов.
- Алгоритмы и структуры данных на уровне собеседования (асимптотика, хеш-таблицы, сортировки, рекурсия): 80–150 часов.
- Pet-проекты для портфолио: от 150 часов. Это самый недооценённый пункт, хотя именно на собственных проектах закрепляется большая часть знаний.
Для направлений Data Science и машинного обучения состав этапов другой: вместо веб-фреймворка идут pandas, NumPy, статистика и основы линейной алгебры, поэтому общий срок чаще выходит длиннее, чем в бэкенд-разработке. Скачать обучение по этой теме можно по ссылке.
От чего зависит скорость обучения
Количество часов само по себе мало что решает. Сорок часов, потраченных на просмотр видеоуроков, дают меньше, чем двадцать часов самостоятельного написания кода с ошибками и их разбором.
- Доля практики. На практике лучший результат дают программы, где на каждый час теории приходится не меньше двух часов задач.
- Регулярность. По часу в день обычно эффективнее, чем семь часов один раз в выходные: навык чтения кода и синтаксис забываются быстрее, чем кажется.
- Обратная связь. Код-ревью от более опытного разработчика или хотя бы автоматические тесты на платформах с задачами помогают избавиться от плохих привычек ещё до того, как они закрепятся.
- Предыдущий опыт. Знание любого другого языка сокращает первые два этапа примерно вдвое, а вот опыт с Excel или HTML почти не помогает.
- Английский. Документация, сообщения об ошибках и ответы на Stack Overflow написаны на английском. Без уровня чтения технических текстов любой этап идёт медленнее.
Отдельный фактор — рынок. Требования к джуниорам за последние годы выросли: от кандидата часто ждут Docker, базовое понимание Linux и написание тестов на pytest. Так бывает не везде, и в небольших компаниях планка заметно ниже, но закладывать на эти темы дополнительные 50–80 часов разумно.
Как понять, что уровень джуниора достигнут?
Формального экзамена нет. Обычно уровень считается достигнутым, когда выполняется большинство пунктов:
- вы можете без подсказок написать небольшое веб-приложение или скрипт с базой данных и разложить его по модулям;
- понимаете чужой код на 300–500 строк и вносите в него правки;
- работаете с Git через ветки и pull request, а не только через commit в main;
- решаете задачи уровня easy и часть medium на алгоритмических платформах;
- в портфолио есть 2–3 проекта с README, тестами и понятной историей коммитов.
Что делать, если изучение Python затянулось и прогресса нет
- Проверьте соотношение теории и практики. Если за неделю вы написали меньше 200 строк собственного кода, проблема почти наверняка здесь. Отложите курсы на две недели и решайте задачи.
- Выйдите из «ада туториалов». Повторение проекта за автором видео почти ничего не даёт. Возьмите готовую идею и измените её: добавьте авторизацию, поменяйте базу данных, напишите API вместо интерфейса.
- Сузьте направление. Попытка одновременно освоить веб, анализ данных и автоматизацию растягивает срок вдвое. Выберите одно направление и один фреймворк.
- Ведите журнал часов. Субъективно кажется, что занятий много. Фактический учёт часто показывает 4–5 часов в неделю вместо запланированных пятнадцати.
- Разбирайте ошибки до конца. Читайте traceback полностью и ищите причину, а не копируйте исправление вслепую. Так быстрее всего растёт понимание языка.
- Начните откликаться на вакансии раньше. Тестовые задания и вопросы на собеседованиях точно показывают, каких тем не хватает. Иногда это экономит месяцы изучения лишнего.