Loading...

Набор заметок по теме.

1. Платформы

Последние 12 лет, каждый рабочий день, я провожу час или больше за самообучением. До этого, была учёба в университете. Разумеется, перепробовал большинство форматов, ресурсов и подходов. И вот моё мнение (не совет, не истина, просто мнение).

Все мейнстримные обучающие платформы пытаются подсадить вас на "бесконечную" подписку. С точки зрения их владельцев, человек, который годами смотрит видео-курсы – идеальный программист.

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

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

Ресурсы типа FreeCodeCamp и CodeWars предлагают вам годами решать однообразные задачки ради виртуальных рейтингов. Так ли сильно это отличается от соц. сетей?

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

А что делает человек без собственных целей? Действует в интересах кого-то другого. В даннном случае, в коммерческих интересах владельцев сайта.

Об этом не принято говорить, но обучение может стать вашей очередной "зоной комфорта", из которой нужно будет вырываться. И тут стоит вспомнить про Disjoint Experience, критикуемый мейнстримными ресурсами. Большие средства вкладываются в гламурный дизайн и монополизацию вашего внимания... Однако, чем более удобна, однородна и стерильна ваша учебная среда, тем сильнее будет культурный шок от столкновения с реальностью.

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

2. Подход

С моей т.з, оптимальный подход к обучению, подразумевает смену платформ, форматов и переключения между теорией и практикой. Расскажу немного о шагах, которые предпринимаю сам при изучении новой темы (в общем случае).

  1. Начинаю с видео-курсов. Они дают контекст и "кикстарт". Вы видите инструменты, команды в консоли, и всё другое, что обычно не даёт документация. На этом этапе я избегаю курсов, в которых делается один большой проект в "copy-paste" стиле, предпочитаю более обзорные и теоретические.

  2. Дальше идут задачи. Они нужны, чтобы закрепить изученное в памяти. Хороших задач по кодингу очень мало (это то, что мы пытаемся исправить на Paqmind). Если по задач по теме не находится, можно пробовать небольшие (микро!) проекты.

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

  4. Наконец, я делаю собственный проект и внимательно изучаю документацию. "Проектом" я называю всё то, что занимает несколько файлов и делается больше одного дня. Даже на этом этапе я стараюсь не брать сложные проекты типа "сделать магазин или CMS-ку". Они занимают гораздо больше времени, чем кажется, и их приходится оставлять незавершёнными. Что, лично мне, не доставляет удовольствия.

  5. После проекта, обычно приходится переключаться на новую тему. В реальности, у вас не будет возможности учить что-то одно месяцами. Тут есть и свои плюсы, т.к. можно использовать полученные знания какое-то время, дать время информации на пассивную обработку. Для дальнейшего прогресса, я итеративно возвращаюсь к теории. Это могут быть Advanced видео-курсы или книги.

Рискуя нарваться на негодование пуристов, отмечу, что, в последнее время, предпочитаю видео книгам. "Голый" текст, по моим субъективным ощущениям, гораздо больше нагружает (и перегружает) визуальный канал чем видео-ролик. Впрочем, продвинутые видео есть далеко не по всем темам, поэтому от книг нам никуда не деться.

3. Менторство

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

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

Проблема переместилась в плоскость времени и конкуренции на рынке. От начинающего React разработчика сегодня ждут больше чем 1-2 года назад. Почему? Мы подсознательно стремимся к идеалу и формируем ожидания на базе лучших примеров. Наиболее талантливые (или везучие) джуны устанавливают негласный стандарт качества на рынке рабочей силы. И этот стандарт постоянно растёт.

Популярность awesome листов, роадмепов и других гайдов по обучению показывает, что людям остро не хватает ориентира в море информации. Ментор даёт этот ориентир с поправкой на ваши индивидуальные особенности: опыт, цели, временные ресурсы и т.д. Разница между длительностью обучения "вслепую" и с ментором измеряется месяцами, а иногда и годами. Вопрос в том, насколько вы цените своё время. В 20+ лет обычно ценят деньги, в 30+ – время. Некоторые взрослеют раньше.

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

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

Для классических учебных платформ а-ля FrontendMasters качество вашего обучения измеряется длительностью подписки. "Больше заплатил – лучше выучился (наверное)". Платформам, которые зарабатывают на продаже данных рекрутерам а-ля HackerRank, тоже без разницы сколько времени вы потратите на попадание в топ их рейтинга.

Работая со студентом напрямую, ментор разделяет его успехи и неудачи и потому максимально заинтересован, чтобы студент как можно быстрее получил нужные навыки и нашёл работу. Число студентов в единицу времени ограничено понятными факторами, поэтому искусственно удерживать кого-то в состоянии "вечного обучения" не имеет коммерческого смысла (если даже закрыть глаза на вопросы этики).

4. Сроки Обучения

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