Рассказываем о важности постановки целей при обучении программированию и разбираемся, как к этому подступиться.
Почему люди учатся? Есть мнение, что это часть нашей природы: стремление познать окружающий мир проявляется в нас ещё с раннего детства. По мере взросления это стремление приобретает проблемно-ориентированную окраску. Проще говоря, на определённом жизненном этапе человек начинает учиться тогда, когда новые знания позволят ему разобраться с каким-либо затруднением: будь то сломанная техника или желание переехать в другую страну.
Студенты Хекслета — не исключение из этого правила. Желание сменить работу или добиться карьерного роста на текущем месте являются, пожалуй, наиболее популярными мотивами к изучению программирования. При этом, мотив — скорее общее пожелание, повод к развитию и отправная точка. Проектирование эффективного процесса обучения невозможно без формулирования целей: как большой, так и ряда промежуточных. Именно этим вопросам: «Как сформулировать свою цель обучения и декомпозировать её на цели промежуточные?» будет посвящена наша статья.
Шаг 1: Сформулировать большую цель
В этом непростом деле хорошим подспорьем станет ваш мотив. «Почему я решил изучать программирование?», — один из тех вопросов, который полезно задать себе на старте. Возьмём для примера классическую ситуацию: «Хочу стать программистом, чтобы сменить работу: уровень дохода на текущем месте меня не устраивает, развития нет, а зарплаты и перспективы в IT кажутся мне привлекательными». На этом этапе всё довольно понятно.
Следующий вопрос: «Почему я хочу начать именно с JS/Python/PHP?» станет логическим продолжением предыдущего. Вполне вероятно, что вы затронете его в самом начале. Вне зависимости от ответа, важно помнить: язык программирования — это только инструмент и, по большому счёту, не столь важно, с какого именно из них начнётся ваш путь в IT.
Частым ответом на вопрос о причинах выбора того или иного языка становится что-то вроде: «Слышал, что язык довольно популярный, видел много вакансий, да и друзья советовали начинать с него, так как он проще». При всей «дежурности» этого вопроса, затронуть его очень важно: он позволит более осознанно подойти к процессу обучения и яснее представлять желаемый результат. После этого можно перейти к ключевой части этого шага — формулированию большой цели.
Саму большую цель (как, впрочем, и любую другую) желательно сформулировать в соответствии с критериями SMART:
S (Specific) — Конкретная. (Точное описание результата, который предполагается достичь)
M (Measurable) — Измеримая. (Как я пойму, что результат достигнут? Какими будут количественные/качественные критерии?)
A (Achievable) — Достижимая. (Возможно ли достижение цели при имеющихся ресурсах?)
R (Relevant) — Релевантная, актуальная. (Отвечает ли эта цель моим жизненным приоритетам и текущим задачам?)
T (Time bound) — Ограниченная по времени. (Сколько времени мне потребуется, чтобы достичь цели?)
Большая цель для студента из предыдущего примера могла бы выглядеть примерно так:
«Устроиться на работу в должности джуниор фронтенд-разработчика с зарплатой не менее 40 тыс. рублей в месяц не позднее хх.хх.2022».
При формулировании SMART-цели большую помощь может оказать наставник, особенно там, где речь пойдёт о достижимости и временных рамках. Мифы о заоблачных зарплатах в IT, равно как и переоценка собственных возможностей («Да я за три месяца всё освою») часто влекут за собой фрустрацию спустя какое-то время после начала обучения. Именно здесь опыт наставника позволит вовремя скорректировать завышенные (или заниженные) ожидания и верно сформулировать большую цель. Итоговый вариант будет разумно зафиксировать письменно (а если вы работаете с наставником 1 на 1, то в каком-либо общем пространстве).
Читайте также: Это снова я, резиновая уточка: что такое метод Фейнмана и почему с его помощью так просто изучать программирование
Шаг 2: Декомпозиция большой цели на промежуточные
Когда с большой целью наступит определённость, самое время подумать, как именно вы будете двигаться к её достижению. Глубина абстракции здесь будет зависеть от множества факторов, но, в первую очередь — от вас самих. Общей рекомендацией может стать формулирование целей вплоть до уровня учебного модуля. Проще говоря, до уровня модуля — обязательно, далее — по ситуации.
Вернёмся к примеру из прошлого шага: студент-фронтендер планирует через какое-то время найти работу по новой профессии. Для этого необходимо:
- Освоить материалы, заложенные в определённую программу на Хекслете. Мы исходим из того, что этих знаний будет достаточно для устройства на джуниор-позицию.
- Подготовиться к прохождению собеседований, составить резюме.
Здесь уже можно декомпозировать большую цель на две промежуточных: прохождение программы и подготовка к трудоустройству. Критериями достижения цели в первом случае могут стать выполненные проекты, во втором — прохождение публичного собеседования или участие в мероприятиях карьерного трека Хекслета:
- Пройти программу профессии «фронтенд-разработчик» не позднее хх.хх.22 г. с учётом выполнения 4 проектов
- Подготовиться к трудоустройству (пройти публичное собеседование или поучаствовать в мероприятиях карьерного трека, составить резюме, выполнить не менее 3 тестовых заданий) не позднее хх.хх.22 г.
На первых порах будет разумно не формулировать полностью цель, связанную с подготовкой к трудоустройству: достаточно просто обозначить, что на определённом этапе она возникнет.
Дальнейшие же шаги будут связаны с декомпозицией первой цели — прохождение профессии: когда планируется завершить модуль, затем — курс в его составе. Цели, связанные с выполнением проектов (особенно первого) разумнее формулировать тогда, когда вы будете готовы приступить к нему, поскольку на старте далеко не всегда очевидно (даже вашему наставнику), насколько реалистичны эти сроки.
Вполне естественно, что со временем сформулированные цели могут подвергаться изменениям, особенно это касается сроков. Важно помнить, что это — нормальная часть процесса, при условии корректной работы над причинами, повлекшими эти изменения. На помощь здесь может прийти такой инструмент как PDCA — цикл:
- Plan (планирование) — что планировалось сделать в рамках достижения цели (например, пройти курс «Основы командной строки» за неделю)
- Do (выполнение) — что было сделано (пройдено 16 из 19 уроков)
- Check (проверка) — сравнение целевого результата и фактического (план не выполнен, необходимо пройти ещё 3 урока)
- Adjust (корректировка) [иногда встречается "Act" — действие] — внесение изменений, направленных на исправление ситуации (вы не успеваете осваивать объём материала более чем 2-х уроков в будние дни и 3-х в выходные, необходимо учитывать это при дальнейшем планировании и скорректировать текущий план)
Этот простой инструмент позволит зафиксировать выполненные шаги, свериться с планом и предпринять необходимые изменения, в том числе — по части формулирования целей. Таким образом вы будете сохранять фокус на целях (от промежуточных к большой), что положительно скажется и на результатах.
Заключение
Правильно сформулированная цель — ключевое условие эффективного процесса обучения. Теперь вы знаете, как её сформулировать: от мотива — к большой цели, которая уже декомпозируется на промежуточные. Цели важно формулировать в соответствии с критериями SMART, а мониторить прогресс и вносить корректировки можно с помощью PDCA-цикла.
Ниже вас ждёт небольшой чек-лист, который поможет при формулировании целей:
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях