Почему программирование бросают на циклах
Обычная история: курс на YouTube, первые уроки идут легко, переменные и условия понятны. На циклах и функциях видео ещё понятно, а задача без подсказки уже нет. Ещё один курс с начала, потом третий, и через полгода человек знает пять способов вывести «Привет, мир» и не написал ни одной своей программы. Дело обычно не в способностях. Цель «научиться программировать» не говорит, что делать сегодня, сколько это займёт и как понять, что можно идти дальше.
План отвечает на все три вопроса. Выбрать направление, посчитать часы до первых откликов, разделить их на часы в неделю и получить срок. Дальше у каждого этапа понятная работа и признак «готово», по которому видно, что этап пройден, а не просто просмотрен.
Какое направление выбрать
- Python и бэкенд. Серверная часть сервисов, боты, автоматизация. Python читается почти как текст, поэтому с него проще всего начать, и основы потом пригодятся в любом направлении.
- Сайты на JavaScript. Всё, что видно в браузере: вёрстка, кнопки, формы, личные кабинеты. Подходит, если хочется сразу видеть результат на экране.
- Анализ данных. Python и SQL для таблиц, графиков и выводов. Подходит тем, кто любит цифры, учится на экономиста или уже строит отчёты в Excel.
Язык решает меньше, чем кажется: второй учится в разы быстрее первого. Важнее довести до конца один путь, чем начать три.
Сколько часов нужно до первых откликов
Единой нормы, как таблица уровней у английского, у программирования нет. Мы сложили объём бесплатных курсов и учебных проектов на каждом этапе: до двух своих проектов на GitHub и первых откликов выходит около 400 часов для Python и сайтов и около 300 для анализа данных. Платные курсы рассчитаны примерно на столько же: в Яндекс Практикуме «Аналитик данных» идёт 7 месяцев по 15 часов в неделю (90 часов теории и 200 практики), «Python-разработчик» 10 месяцев по 12 часов (149 часов теории и 355 практики).
| Этап | Python и бэкенд | Сайты | Анализ данных |
|---|---|---|---|
| 1 | Основы Python, 60 ч | HTML и CSS, 50 ч | Основы Python, 60 ч |
| 2 | Инструменты, 20 ч | Инструменты, 20 ч | Инструменты, 20 ч |
| 3 | Python глубже, 70 ч | JavaScript, 100 ч | SQL, 40 ч |
| 4 | Первый проект, 50 ч | JavaScript в браузере, 70 ч | Pandas и графики, 50 ч |
| 5 | Бэкенд, 150 ч | Фреймворк, 110 ч | Статистика и проект, 80 ч |
| 6 | Портфолио и отклики, 50 ч | Портфолио и отклики, 50 ч | Портфолио и отклики, 50 ч |
| Всего | 400 ч | 400 ч | 300 ч |
Для Python и сайтов при 5 часах в неделю путь займёт 80 недель, при 8 часах 50 недель, при 12 часах 34 недели, при 20 часах 20 недель. Для анализа данных 60, 38, 25 и 15 недель. Если основы языка уже есть, первый этап инструмент пропустит, а если есть свой проект на GitHub, план начнётся сразу со второго проекта. Сколько часов в неделю у тебя реально свободно рядом с парами и работой, можно посчитать в калькуляторе учёбы и работы.
Шесть этапов
Основы языка
Переменные, условия, циклы, списки и функции, а для сайтов сначала HTML и CSS. Лучше курс с короткими задачами и автопроверкой: 5-10 задач в день дают больше, чем час видео.
Инструменты
Редактор, терминал и Git: каждое упражнение в репозитории на GitHub. Это и рабочая привычка, и будущее портфолио.
Углубление
Для Python классы, исключения, API и тесты, для сайтов JavaScript по учебнику, для данных SQL в тренажёре.
Первый проект
Своя задача без пошагового видео: бот, страница с погодой или разбор таблицы. Здесь впервые ищешь ответы сам, и это главный навык.
Второй проект
Бэкенд с базой данных, приложение на React или исследование открытых данных со статистикой, с README и, где можно, с адресом в интернете.
Портфолио и отклики
Резюме со ссылкой на GitHub, задачи с собеседований, отклики. Как искать по неделям, есть в плане поиска стажировки.
Бесплатные материалы
- «Поколение Python» на Stepik: курс для начинающих, больше 500 задач с автопроверкой, около 56 часов по оценке Stepik.
- Хендбук Яндекса «Основы Python»: учебник с задачами и четырьмя проектами.
- learn.javascript.ru: учебник JavaScript на русском: язык, работа с браузером и тематические разделы.
- Тренажёр по SQL на Stepik и sql-ex.ru: задачи на запросы с автопроверкой.
- CS50 от Гарварда: основы информатики на английском, 11 недель от Scratch и C до Python, SQL и веба и свой проект в конце; на задачи недели Гарвард советует 10-20 часов.
- Kaggle Learn: короткие курсы на английском: Python за 5 часов, pandas за 4, SQL за 3, графики за 4.
- Pro Git и GitHub Pages: книга про Git на русском и бесплатная публикация страниц из открытого репозитория.
Пять правил недели
Каждый день понемногу
Час в день лучше, чем семь часов в субботу: синтаксис забывается быстро, а задачи на следующий день решаются легче. При 8 часах в неделю это по 1-1,5 часа шесть дней.
Код руками, а не видео
Видео без задач даёт ощущение понимания. Каждую тему закрывай задачами, а пример из урока перепиши сам, не копируя.
Правило 20 минут
Застрял, 20 минут ищи сам: прочитай ошибку, выведи значения переменных. Не вышло, спроси или найди ответ, но сначала напиши одной фразой, что именно не работает.
Проект раньше, чем кажется
Ощущение «я ещё не готов» не проходит само. Первый проект начинай, как только решаешь задачи на функции, а недостающее учи по ходу.
Отмечай готовность, а не часы
Этап закончен, когда выполнен признак «готово» из плана. Не выполнен, а часы вышли, доделай: следующий этап на дырявом фундаменте пойдёт медленнее.
Занятие удобно делить на отрезки по 25 минут с перерывами: для этого подойдёт помодоро таймер.
Пример: Аня, анализ данных к летней стажировке
Аня на третьем курсе экономического и хочет летом на стажировку аналитиком данных. Программировать не умеет, начинает в понедельник, 19 октября, а откликаться хочет к 1 мая 2027.
Для анализа данных путь до откликов по нашему ориентиру около 300 часов. При 8 часах в неделю это 38 недель, до 11 июля 2027, и к 1 мая Аня не успевает: инструмент пишет, что нужно около 11 часов в неделю. С 12 часами путь займёт 25 недель, до 11 апреля 2027, и остаётся запас 20 дней на сессию и болезни. По этапам: основы Python до 22 ноября, инструменты до 6 декабря, SQL до 27 декабря, pandas и графики до 31 января, статистика и проект до 14 марта, портфолио и отклики до 11 апреля. Аня выбирает 12 часов: по 2 часа шесть дней в неделю.
В январе сессия, и часы просядут: запас как раз на неё. Если к концу января pandas не готов, честнее сдвинуть отклики, чем пропустить статистику.
Частые ошибки
- Учить три языка сразу. Python, JavaScript и C++ «для общего развития» по часу в неделю не дают ни одного законченного проекта.
- Смотреть курсы без задач. Пять просмотренных курсов не заменяют сотню решённых задач и один свой проект.
- Ставить цель «стать программистом». Её нельзя проверить. «Два проекта на GitHub и 20 откликов к 1 мая» можно, как и любую SMART-цель.
- Ждать, пока будешь готов. Откликаться можно раньше, чем кажется: ответы и тестовые задания покажут, что подтянуть.
- Заниматься рывками. Неделя по пять часов в день, потом месяц ничего. Если всё время откладываешь начало, помогает шаг на две минуты.
Как это делает Капля
Капля не учит программированию и не проверяет код, но держит цель в голове. Напиши ей «Python до стажировки к 1 мая», и она поставит цель со сроком, набросает этапы и покажет в плане цели, где ты сейчас. Каждый день в «Делах» будет понятный шаг рядом с парами и остальными делами, а для занятий по времени есть «Фокус» с таймером.
Если параллельно сессия, курсовая или работа, удобнее держать всё в трекере целей или в Капле, где план на день собирается из всех целей сразу. Как вообще разложить большую цель на шаги, написано в гайде про декомпозицию целей.
Вопросы и ответы
Сколько времени нужно, чтобы научиться программировать?
До двух своих проектов и первых откликов на стажировки по нашему ориентиру около 400 часов занятий для Python и сайтов и около 300 для анализа данных: при 8 часах в неделю это 9-12 месяцев, при 12 часах 6-8, при 20 часах 4-5. Поиск первой работы идёт сверху, и это не гарантия: многое решают проекты, которые ты сделал сам. Учиться дальше придётся и на первой работе.
С какого языка начать программировать?
С того, что ведёт к нужной работе. Сайты делают на HTML, CSS и JavaScript, анализ данных на Python и SQL, бэкенд на многих языках, и Python среди самых простых для старта. Если не знаешь, чего хочешь, начни с Python: основы переносятся на любой язык, а второй язык учится в разы быстрее первого.
Можно ли научиться программировать самостоятельно и бесплатно?
Да. Бесплатных курсов с задачами и автопроверкой хватает на все этапы: «Поколение Python» на Stepik, хендбук Яндекса «Основы Python», учебник learn.javascript.ru, тренажёр по SQL на Stepik, книга Pro Git на русском, а на английском CS50 от Гарварда и короткие курсы Kaggle Learn. Платный курс даёт наставника и проверку проектов, но не заменяет часы, которые всё равно придётся просидеть над кодом самому.
Нужна ли математика, чтобы стать программистом?
Для сайтов и большей части бэкенда хватает школьной математики и логики. В анализе данных нужна статистика: среднее и медиана, распределения, проверка гипотез, она есть в пятом этапе плана. Высшая математика нужна в машинном обучении, графике и алгоритмах, но с неё не начинают.
Где хранится мой план?
Только в твоём браузере на этом устройстве. На сервер ничего не отправляется, регистрация не нужна. На другом устройстве или после очистки данных браузера план будет пустым, поэтому важное сохрани кнопкой «Скопировать списком» или распечатай.