Скачать

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

Выбери направление, что уже умеешь и сколько часов в неделю есть на занятия. Инструмент разложит путь на шесть этапов с датами, у каждого этапа покажет, что делать и как понять, что он готов, и честно скажет, успеваешь ли к стажировке. Бесплатно и без регистрации, всё хранится только в твоём браузере.

Обновлено

Составь план

Направление
Часов в неделю

Что сейчас

План по этапам

План появится, когда загрузится страница.

    Почему программирование бросают на циклах

    Обычная история: курс на YouTube, первые уроки идут легко, переменные и условия понятны. На циклах и функциях видео ещё понятно, а задача без подсказки уже нет. Ещё один курс с начала, потом третий, и через полгода человек знает пять способов вывести «Привет, мир» и не написал ни одной своей программы. Дело обычно не в способностях. Цель «научиться программировать» не говорит, что делать сегодня, сколько это займёт и как понять, что можно идти дальше.

    План отвечает на все три вопроса. Выбрать направление, посчитать часы до первых откликов, разделить их на часы в неделю и получить срок. Дальше у каждого этапа понятная работа и признак «готово», по которому видно, что этап пройден, а не просто просмотрен.

    Какое направление выбрать

    Язык решает меньше, чем кажется: второй учится в разы быстрее первого. Важнее довести до конца один путь, чем начать три.

    Сколько часов нужно до первых откликов

    Единой нормы, как таблица уровней у английского, у программирования нет. Мы сложили объём бесплатных курсов и учебных проектов на каждом этапе: до двух своих проектов на 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 ч
    3Python глубже, 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, план начнётся сразу со второго проекта. Сколько часов в неделю у тебя реально свободно рядом с парами и работой, можно посчитать в калькуляторе учёбы и работы.

    Шесть этапов

    1. Основы языка

      Переменные, условия, циклы, списки и функции, а для сайтов сначала HTML и CSS. Лучше курс с короткими задачами и автопроверкой: 5-10 задач в день дают больше, чем час видео.

    2. Инструменты

      Редактор, терминал и Git: каждое упражнение в репозитории на GitHub. Это и рабочая привычка, и будущее портфолио.

    3. Углубление

      Для Python классы, исключения, API и тесты, для сайтов JavaScript по учебнику, для данных SQL в тренажёре.

    4. Первый проект

      Своя задача без пошагового видео: бот, страница с погодой или разбор таблицы. Здесь впервые ищешь ответы сам, и это главный навык.

    5. Второй проект

      Бэкенд с базой данных, приложение на React или исследование открытых данных со статистикой, с README и, где можно, с адресом в интернете.

    6. Портфолио и отклики

      Резюме со ссылкой на GitHub, задачи с собеседований, отклики. Как искать по неделям, есть в плане поиска стажировки.

    Бесплатные материалы

    Пять правил недели

    1. Каждый день понемногу

      Час в день лучше, чем семь часов в субботу: синтаксис забывается быстро, а задачи на следующий день решаются легче. При 8 часах в неделю это по 1-1,5 часа шесть дней.

    2. Код руками, а не видео

      Видео без задач даёт ощущение понимания. Каждую тему закрывай задачами, а пример из урока перепиши сам, не копируя.

    3. Правило 20 минут

      Застрял, 20 минут ищи сам: прочитай ошибку, выведи значения переменных. Не вышло, спроси или найди ответ, но сначала напиши одной фразой, что именно не работает.

    4. Проект раньше, чем кажется

      Ощущение «я ещё не готов» не проходит само. Первый проект начинай, как только решаешь задачи на функции, а недостающее учи по ходу.

    5. Отмечай готовность, а не часы

      Этап закончен, когда выполнен признак «готово» из плана. Не выполнен, а часы вышли, доделай: следующий этап на дырявом фундаменте пойдёт медленнее.

    Занятие удобно делить на отрезки по 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 до стажировки к 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. Платный курс даёт наставника и проверку проектов, но не заменяет часы, которые всё равно придётся просидеть над кодом самому.

    Нужна ли математика, чтобы стать программистом?

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

    Где хранится мой план?

    Только в твоём браузере на этом устройстве. На сервер ничего не отправляется, регистрация не нужна. На другом устройстве или после очистки данных браузера план будет пустым, поэтому важное сохрани кнопкой «Скопировать списком» или распечатай.