{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Как я наконец начал изучать программирование с нуля после 6 лет откладываний (+ Notion-шаблон моей системы обучения)

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

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

Эта статья – не пошаговый план освоения программирования с нуля от опытного разработчика с 10-летним стажем.

Здесь про систему обучения. Про то, как организовать процесс обучения, чтобы не забросить через неделю.

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

Еще со школы я интересовался программированием. Я понимал, что это перспективное направление и, возможно, с моим аналитическим складом ума это занятие будет мне по душе.

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

Но за годы я так и не продвинулся в этом вопросе ни на шаг. Всё время были какие-то отговорки:

  • В школьные годы: «вот поступлю в универ, там и буду изучать»
  • Когда учился в университете: «у меня сейчас нет на это времени, я и так учусь и работаю»
  • После окончания университета: «это надо записаться на дорогостоящий курс, да и времени особо нет»

Суть подхода

Чтобы попробовать и понять твоё-не твоё необязательно поступать в университет или покупать дорогостоящий курс. Необязательно увольняться с работы и с головой окунаться в обучение по 8 часов в день (как советуют в некоторых видосах на YouTube).

Если у вас так же, как у меня, нет финансовой подушки на 8 месяцев, и вы не можете прямо сейчас уволиться с работы, целиком и полностью посвятив себя новому ремеслу – попробуйте подход, описанный в этой статье.

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

Быстро – это медленно, но без перерывов

Если бы я год назад начал заниматься программированием хотя бы по 20-30 минут в день, то сегодня уже имел бы неплохую базу.

В итоге решил попробовать сразу два языка программирования: Python и Swift. Нашел бесплатные материалы и начал обучение.

Инфраструктура

Система обучения состоит из трех инструментов:

  • Notion – база данных. Организуем материалы для обучения, пишем конспекты
  • Google-таблицы – расписание и трекер прогресса
  • Таймер

Notion

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

У меня есть страница под названием «3. Programming». «3» – потому что это третья по приоритету цель на год. Под каждую важную цель/сферу у меня есть страница в Notion.

На главной странице ещё три страницы:

  • Project ideas – идеи мини-проектов, которые я хочу реализовать. Какие-то скрипты, небольшие программки для автоматизации.
  • Python и Swift – языки программирования, которые я изучаю.

Рассмотрим страницу «Python»

Первый элемент – простая канбан-доска с материалами, которые я хочу изучить. Каждый элемент имеет 3 параметра:

  • Статус – Not started, in progress, completed
  • Тип – Книга, видеоурок, текстовый или интерактивный курс
  • Ссылка

Одновременно в столбце In progress может быть не более 2 обучающих материалов, чтобы не распыляться и доводить начатое до конца.

Чуть ниже канбан-доски располагаются конспекты уроков. Конспекты делаю в первую очередь для себя, но так же делюсь ими в своём Telegram-канале. Удобно освежить в памяти пройденный материал.

В Notion есть специальный блок для вставки кода. Можно выбрать язык для подсветки синтаксиса.

Google-таблицы

Google-таблицы я использую как расписание и трекер прогресса. Решил, что буду чередовать изучение Python и Swift. В трекер добавил и другие цели помимо программирования.

Главная идея в том, чтобы сделать из цели привычку.

Двигаюсь небольшими шагами, но регулярно. Можно быстро стартануть (учиться по 5-8 часов за день), но перегореть и забросить это дело.

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

Такой трекер реально работает для меня. Когда вечером нет сил и хочется посмотреть сериальчик, напрягать мозги и изучать Python – последнее, что хочется делать. Но если ты сегодня пропустишь занятие у тебя нарушится шахматная структура в таблице)

Таймер

Продуктивное время – время, когда вы полностью отключаете все мессенджеры и др. отвлекающие факторы, чтобы сфокусированно работать над одной задачей.

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

Если мне нужно отвлечься, ставлю таймер на паузу. Так я могу видеть реальное время, затраченное на работу над целью. Ведь если ты изучал программирование с 10 до 14 часов, это еще не значит, что ты посвятил обучению 4 часа. Сколько времени из этого ушло на серфинг в интернете, параллельное общение в чатах и просмотр ненужной инфы?

Таймер можно использовать любой. На телефоне это может быть стандартный секундомер. На компьютере я использую таймер таск-менеджера TickTiсk в режиме Фокус.

Я настроил автозагрузку приложения без открытия основного окна при включении компьютера и отключил отображения иконки в доке. Т. е. у меня просто сверху появляется маленькая иконка таймера, который я могу запустить в пару кликов перед стартом фокусировки.

Итог

На момент написания этой статьи я придерживаюсь своего плана больше месяца без пропусков. Это с учетом того, что у меня есть основная работа, спорт 3 раза в неделю и другие бытовые моменты.

Это не про то, что я супер молодец, посмотрите все какой я дисциплинированный человек. Скорее наоборот. Как раз таки за счет внедрения такой геймификации мне удалось заниматься этим регулярно, и я чувствую результат.

То, что я не ставил минимальную планку по времени занятия, помогло делать это не надрываясь, в комфортном темпе.

P. S. Благодарю за прочтение этой статьи. Надеюсь, вы получили для себя пользу.

Если вам понравился этот материал, можете заглянуть в мой Telegram-канал «Изучаю Python и Swift с 0». Там я делюсь материалами по Python и Swift, которые изучаю, и скидываю конспекты по урокам.

Подписывайтесь, будем развиваться вместе: https://t.me/pyswift

0
102 комментария
Написать комментарий...
Александр А

Интересный пост. Сам изучал по подобной системе. Но в итоге пришел к выводу, что это все не эффективно.
Сейчас отказался от этого.

Основные минусы такой системы:

1. Отсутсвие гибкости.

Но если ты сегодня пропустишь занятие у тебя нарушится шахматная структура в таблице

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

2. Размывание процесса.

Это с учетом того, что у меня есть основная работа, спорт 3 раза в неделю и другие бытовые моменты.

За счет того что есть системы, трекеры и прочее создается иллюзия движения вперед. Вместо того чтобы сосредоточиться по максимуму на одной цели, можно одновременно "достигать" 10 целей. В итоге по графикам движение есть во все 10 сторон, а по факту результатов нет.

3. Высокие накладные расходы.

Система обучения состоит из трех инструментов:
На главной странице ещё три страницы:
Если мне нужно отвлечься, ставлю таймер на паузу.

Иногда расходы на поддержание и развитие системы начинают перевешивать сами расходы на достижение цели.

4. Фокус не на цели, а на процессе.

Ведь если ты изучал программирование с 10 до 14 часов, это еще не значит, что ты посвятил обучению 4 часа.

Это как обучение вождению на машине. Либо ты получил права и можешь ездить, либо нет. Остальное не важно. Я научился вождению на 35% - это не работает.

Ответить
Развернуть ветку
pyswift
Автор

Хорошие замечания.

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

Если я что-то внедрил и это помогает мне в достижении главной цели – круто. Но ни в коем случае работа над системой (заполнение таблиц, шаблончиков) не должно становиться самоцелью.

Однозначно согласен насчет гибкости. Если в какой-то момент понял, что изначально намеченный маршрут ведет в никуда – важно вовремя это заметить и внести коррективы (или вовсе отказаться от цели).

Ответить
Развернуть ветку
Александр А

Я с вами полностью согласен. Главный вопрос в цели. В ее формулировке. Если ваша цель была "поробовать" и "заниматься регулярно", то тут 100% попадание у вас.
Часто люди обучаясь программированию формулируют цели не правильно. А от этого уже и весь процесс идет не туда.
Примеры целей:
1. Устроится на работу программистом. Для этого нужно:
Получить оффер -> Пройти собеседование -> Получить приглашение на собеседование
Как следствие: иметь резюме, быть подготовленным к собеседованию и т.д.
2. Научится программированию чтобы написать какой-то свой проект.
Для этого проще посмотреть какие-то уроки на ютюбе или udemy где делают с нуля какое-то приложение.
3. Изучить "теорию" программирования. Всякие алгоритмы, LeetCode и прочее.

Ответить
Развернуть ветку
99 комментариев
Раскрывать всегда