Python за 3 месяца ежедневной учёбы: что реально двигает вперёд, а что — иллюзия прогресса
Из десяти человек, которые садятся учить Python с нуля и обещают себе пахать каждый день, до конца третьего месяца дотягивают примерно двое. И дело тут не в лени. Просто большинство из них всё это время делают вообще не то.
Смотрите: можно потратить 90 дней по часу — получится 90 часов чистого времени. Это вполне нормальная цифра, чтобы уверенно писать простые скрипты, понимать чужой код процентов на семьдесят и в целом подобраться к уровню джуна. А можно за те же 90 часов прийти к тому, что вы всё так же путаете append и extend, не вдупляете, зачем нужен __init__, и до смерти боитесь открывать чужие репозитории.
Разница не в мозгах. Разница в том, что одни три месяца писали код, а другие три месяца просто смотрели, как это делают другие.
Что значит «учить каждый день» — и где здесь подвох
«Каждый день по часу» — фраза звучит дисциплинированно, но по факту ни о чем не говорит. Час — это сколько именно времени вы провели с пальцами на клавиатуре? У многих, кто рапортует о ежедневных занятиях, реальный расклад такой: 15 минут — поставить чайник и запустить VS Code, 25 минут — пересмотреть кусок видео, 10 минут — пролистать чужой код в надежде, что что-то само осядет в голове, и ещё 10 минут — помучить задачу и закрыть её, потому что «не идёт».
Итого из часа — десять минут реального кодинга. Умножаем на 90 дней и получаем 15 часов работы вместо обещанных девяноста. Ну и кто теперь удивится, что прогресс выглядит так, будто человек учил Python всего неделю?
Я не пытаюсь кого-то задеть, просто метрика «сколько дней подряд» сильно врет. Гораздо лучше работает другая: сколько строк рабочего кода вы написали за неделю и сколько багов в нём поймали и осознали.
Что реально работает
Писать руками с первого дня. И я сейчас не про то, чтобы переписывать код с экрана видео или копировать с сайта — нет, именно писать самому. Даже если это самая примитивная функция, которая просто складывает два числа. Мозг запоминает то, что прошло через моторику и через ошибки. Видео в этом плане — это как смотреть чужую тренировку в зале вместо того, чтобы самому пойти и попотеть.
По моему опыту, ребята, которые с первой недели открывают редактор и пишут — пусть с тупыми ошибками, пусть по 10 минут за раз — через месяц обходят тех, кто два месяца «сначала изучал теорию».
Делайте маленькие реальные проекты вместо упражнений на синтаксис. Сто задач вроде «сложите числа из списка» не научат вас программировать. Учит — скрипт, который читает CSV с вашими расходами и считает, куда улетает больше всего денег. Бот, который шлёт прогноз погоды в Telegram. Или прогу, которая сортирует фотографии по папкам с датами. Короче, программы, которые имеют бытовой смысл и которыми вы реально хотите пользоваться.
При этом маленький проект — это не «приложение мечты на полгода». Это штука, которую можно допилить за выходные. И таких проектов за три месяца должно быть пять-семь, а не один грандиозный план, который заглох на третьей неделе.
Кстати, возвращайтесь к одной задаче несколько раз. Написали скрипт неделю назад? Откройте его и попробуйте улучшить — добавьте обработку ошибок, разбейте на функции, замените два списка одним словарем. Такой возврат дает больше, чем три новые задачи: вы смотрите на свой старый код глазами человека, который за неделю стал чуть умнее, и понимаете, что выросли.
Читайте чужой код, даже если не всё понятно. Найдите небольшие open source-библиотеки. Не лезьте сразу в Django, возьмите что-то на 200-500 строк. requests или какие-нибудь утилиты с GitHub. Читайте функцию за функцией, гуглите всё незнакомое. Это самая недооценённая практика на старте. Готовый код вы будете читать намного чаще, чем писать с нуля, так что качать этот навык нужно так же активно, как и умение писать.
И освойте отладчик вместо бесконечных print. Не обязательно сразу, но ко второму месяцу включите дебаггер в IDE. Поставьте breakpoint, пройдите по коду пошагово, гляньте, что там лежит в переменных. Один час с дебаггером дает больше понимания того, как работает Python, чем десяток статей про «устройство памяти под капотом».
Что — трата времени
Бесконечные плейлисты на YouTube. «Python за 10 часов», «Курс с нуля до сеньора» — это не учеба, это сериал. Можно посмотреть всё до конца и не написать ни одной строчки самому. Видео — нормальный формат для разовых вопросов типа «как работают декораторы?» или для первого знакомства, но не как основа. Если вы за вечер посмотрели три ролика и не открыли редактор — этот вечер просто потерян.
Перфекционизм с инструментами в первый месяц. Час на настройку темы в VS Code, два дня на выбор между PyCharm и VS Code, бесконечное сравнение плагинов. Это такая прокрастинация в обертке «я готовлюсь учиться». Возьмите VS Code, поставьте расширение Python и остановитесь. К настройкам вернётесь через пару месяцев, когда поймете, чего вам реально не хватает.
LeetCode и алгоритмы на старте. «Хочу с первого дня тренировать алгоритмы, чтобы потом легче было на собеседованиях». Звучит логично, но на деле убивает мотивацию за неделю. Пытаться решать алгоритмические задачи в начале — это как учить тяжелоатлетический рывок до того, как научились приседать с пустым грифом. Сначала — обычный код, бытовые скрипты, базовые структуры данных. К алгоритмам перейдете через 3-4 месяца, когда появится база, на которую их можно накладывать.
Конспекты от руки. Многим советуют «записывай всё, как в институте». Для большинства это бесполезно. Программирование запоминается через ошибки и повторение в коде, а не через переписывание определений в тетрадку. Конспекты работают, если вы записываете туда не теорию, а свои инсайты — типа «тут я три часа не мог понять, что список изменяется по ссылке». Такая запись — да. Переписывание главы из учебника — нет.
Чтение толстых книг от корки до корки. «Изучаем Python» Лутца, «Python для всех», «Чистый Python» Бейдера — отличные книги. Но не для линейного чтения с первого до последнего слова. Они работают как справочники: возникла тема — открыли главу, прочитали, применили. Линейное чтение Лутца в качестве основного курса — это почти гарантированный сход с дистанции где-нибудь на 150-й странице.
Прыжки во фреймворки без базы. «Хочу делать сайты, начну сразу с Django» или «Хочу в анализ данных, сразу в pandas». Мотивация понятная, но без базы Python вы будете просто копировать код из туториалов, не понимая сути. И как только что-то сломается чуть-чуть иначе, чем в примере — вы встанете в тупик. Сначала два месяца чистого Python (синтаксис, функции, классы, файлы, исключения, основы ООП), а потом уже фреймворк по интересу. Скучно? Возможно. Зато работает.
Кому этот режим не подойдёт
«Каждый день по часу» — не какой-то универсальный рецепт. Если у вас работа на 50 часов в неделю, маленький ребенок и хронический недосып — час в день вы выдержите две недели, а потом сорвётесь и начнете себя винить. В таком случае лучше четыре раза в неделю по два часа в выходные плюс короткие сессии в будни. Реалистичный режим, который вы тянете три месяца, бьет любой героический план, который вылетает через три недели.
Людям после 40 переход даётся не быстрее и не медленнее, чем в 25, но психологически бывает тяжелее: меньше энергии на эксперименты, больше страха «а вдруг не выгорит». По моим наблюдениям, тем, кто старше, лучше заходит не «час каждый день», а ритм в два полноценных вечера в неделю плюс выходное утро. Меньше моральных издержек на ежедневную дисциплину — больше пользы от каждой сессии.
И последнее. Если через три месяца ежедневной работы вы понимаете, что Python вам скучен и вы делаете это через силу — это сигнал. Не надо «терпеть», возможно, стоит попробовать другой трек. Python — не единственный путь в IT. QA Automation, например, имеет более низкий порог входа, и туда часто уходят те, кому чистое программирование даётся тяжело. Flutter — вариант для тех, кому важно видеть результат на экране телефона. Стоит честно проверить, что цепляет именно вас, а не то, что чаще обсуждают в чатах.
Что в итоге
Три месяца — реальный срок, чтобы вплотную подойти к джуновскому уровню, если эти месяцы наполнены своим кодом, а не чужими видео. И абсолютно нереальный срок, если все 90 дней вы просто смотрите курсы и копируете чужие примеры.
Если бы пришлось дать один совет, он был бы такой: считайте не дни, а строки своего кода в неделю. Если за неделю не написано хотя бы 200-300 строк, которые вы сами придумали и сами отладили — неделя потеряна, сколько бы видео вы в ней ни посмотрели.
Ну, в общем, пойду проверю свои последние коммиты.
