Почему я занимаюсь наставничеством
Долго искал способ быстро изучать новое и закреплять старое. И нашёл. Для это надо начать обучать других.
Я для себя сделал обзор разных способов изучения, которые представлены на российском и международном рынке. Это курсы самоподготовки, групповые онлайн-курсы, сертификация, книги, статьи, видео-подкасты и другое. Перечислять не буду — гугл и яндекс сделают это лучше меня. Также не хочу перечислять их преимущества и недостатки — попробуй сам, сделай выводы самостоятельно.
Отметил такое направление — наставничество, менторство. За рубежом это называют «1:1 help», «personal assistance», «mentorship». Это онлайн-консультации, проверка кода, поиск решений. Не массовая, а персональная помощь. Она для тех, у кого после просмотра видео-уроков, записей с вебинаров, прочтения книг и самостоятельных попыток что-то сделать возникает желание задать вопрос, но задать некому. И кому не помог stackoverflow. И кто скачал учебный курс с торрентов. И кто запутался в своём же коде. И кто хочет изучать намного быстрее. Они ищут что-то другое.
Для решения задачи я спроектировал систему помощи. Это имею в виду не сайт или программу, а концепцию работы с курсантами, в основе которой лежит ориентация на потребность изучить язык или технологию с упором на самостоятельность. У нас такой подход не очень распространен. Ни ориентация на потребности обучающихся, ни обучению самообучению. Думаю, это связано с культурными ценностями — мы (разработчики) редко думаем о том, что является ценным для других (ориентация на своё эго), и пытаемся в лучшем свете выставить свои компетенции. С навыками работы с клиентами меня познакомили Иван Бойко, product owner сервиса icons8.com, и порекомендованная Иваном книга «Клиенты на всю жизнь«. Можно ознакомиться с mind-map по этой книге.
Я создал сайт webmentor.pro и регулярно занимался поиском курсантов. Первые услуги были «Онлайн-консультации» и «Индивидуальные программы», затем я ввёл «Интенсивы» и «Проверка кода», последним появился раздел «Веб-портфолио». Ежемесячно ко мне обращались 10-15 человек, в пике было почти 50 консультаций за месяц. За три года со мной пообщались и поработали в общем около 500 человек. То есть я помог 500 курсантам решить какие-нибудь практические задачи по веб-разработке. 500 индивидуальных, неповторимых ситуаций. Большинство консультаций были однократными, но были и длительные совместные программы и настоящие интенсивы, почти realtime в режиме парного программирования. На таких долгосрочных и интенсивных программах я вёл не более пяти человек одновременно. Курсантам, которые занимались со мной продолжительное время, я помогал получить навыки разбора проблем и самостоятельного поиска решений, также мы составляли портфолио, резюме и «играли» в собеседования.
Если кому-нибудь интересно, историю развития, проблемы и достижения я описал на SmartProgress.
Первое моё желание было заработать на этом. Но менторство, оказалось имеет и другие возможности, все из них положительно повлияли на мой опыт как веб-разработчика, архитектора веб-проектов и на навыки командной разработки.
Вот список причин, по которым специалисты могли бы заниматься наставничеством:
- Дополнительный доход. Прежде всего это работа, как у репетиторов. Но и бесплатных сессий было очень много. Были много вариантов бесплатных:
- за «шару», за распространение информации обо мне в соц сетях
- за вопросы на сервисах «вопрос-ответ», куда меня приглашали — я всегда даю очень качественные ответы, иногда с видео, иногда с кодом
- за конфереции втроём
- за участие в групповых учебных проектах
- Опыт проведения собеседований. Научился определять уровень владения технологиями, алгоритмическое и логическое мышление. Научился отличать «интересующихся», «желающих», «пытающихся» и «стремящихся». Научился подмечать такие черты, которые демонстрируют «перспективность» курсанта в плане «самостоятельности» и «доходности». Извиняюсь, это бизнес. Меня несколько раз приглашали для проведения технических собеседований кандидатов-программистов, даже на английском.
- Рост навыка быстро разбираться в чужом коде. В голове появились браузер и командная строка. Я могу попробовать выполнить код на PHP, Javascript, Python, Ruby, Bash без доступа к консоли и без браузера. С определённой вероятностью, я хотя бы найду место ошибки, а может быть даже исправлю и алгоритм заработает без проверки
- Рост навыка начального проектирования, проектирования «с чистого листа», «с нуля». У каждого студента своя вроде как уникальная, но вообще-то типовая задача. Были сложные задачи, но это исключения. В любом случае, путём декомпозиции на более мелкие задачи и расстановки приоритетов все всегда начинают с очень простых задач: определение предметной области, проектирование базы данных, проектирование интерфейсов, авторизация и так далее.
- Рост навыка принимать архитектурные решения для роста модели. У курсантов типовые, не очень сложные проекты. Иногда они вносят «типовую изюминку» и в результате их программы состоят из нескольких соединённых проектов. Я помогал им менять модели данных и применять шаблоны проектирования. Теперь я вообще не задумываюсь, когда в существующий проект нужно добавить «немного социальности» (лайки и фолловеры), магазин (корзину с товарами и связь с платёжной системой), сделать блог. Я уже 50 раз это делал, комбинируя фрагменты, как детали в детском конструкторе.
- Развитие личных проектов. Курсанты сделали вклад в несколько моих мелких проектов. Если зажигательно рассказать об идее проекта, то они с удовольствием включаются, ради обучения и для своего портфолио. Если курсанты выбирают мои проекты, то я помогаю им бесплатно, даже если сам проект некоммерческий и дохода мне не принесёт — объяснение чуть ниже. Вот самые крупные проекты, созданные моими курсантами:
- Сервис сокращения ссылок copi.st (PHP/Phalcon/MySQL/SemanticUI/AngularJS), который был реализован 50/50 с Дмитрием Чихановым.
- Сервис быстрого тестирования web-mastery-gauge.ru (M.E.A.N. = MongoDB/Express/NodeJS/AngularJS), вклад в который внесли Михаил Радченко, Егор Павлов, Павел Городецкий.
- Билингва-блог diglot.ru (PHP/Yii2/Bootstrap/MySQL), в котором работает моя самая большая команда и мы рады расшириться.
- сервис review кода — команда энтузиастов помогла разработать концепцию, детали и прототипы интерфейса, возможно его реализацией захочешь заниматься ты — я буду рад помочь словом и делом
Спасибо всем, кому понравились мои идеи. В одиночку я бы не сдвинул их с места. Да, курсанты неопытны и требуется много времени на обсуждения простейших проблем. Но факт совместного участия (team pressure), регулярные встречи (collaboration), расписание выпуска версий (time pressure) — они меня подталкивают также, как и курсантов.
- Когда курсанты занимаются моими проектами, я учусь ставить задачи и принимать решения задач. Я замечал за собой, что хотя сам могу сделать что угодно, но дать задачу другим не мог. Не хватало терпения сделать нормальную постановку, не хватало терпения отследить выполнение, вовремя заметить «затыки» или «полёты фантазии» исполнителей. А также у меня до этого никогда не было команды полностью в моём подчинении. Ранее я уже выступал в качестве тим-лидера, но при этом был как марионетка в руках начальника, и фактически передавал указания и следил за исполнением. Надеюсь, что сейчас я не тиран и сумасброд. Что ставлю адекватные задачи, при этом не давлю контролем и не упускаю из поля зрения. Всё как тут написано.
- Практика эффективно обсуждать задачи. Я получил навык слушать и слышать, конспектировать, сравнивать, делать выводы. Возможно, я преувеличиваю ценность этого навыка, но у некоторых он отсутствует напрочь — сказать не могут, критику не принимают и забывают всё, что обсуждали. Так вот, я не такой благодаря моим курсантам, спасибо вам за это.
- Изучение новых технологий и языков программирования. Как это ни удивительно, но чтобы стать наставником, не обязательно быть супер-специалистом в технологии, достаточно быть на шаг впереди. Некоторые из технологий, по которым я проводил консультации, я знал чуть-чуть больше чем курсанты. Мы искали ответы вместе. Сам процесс поиска показывал им, что даже опытные программисты знают не всё, но можно найти, поставить эксперимент или придумать своё решение, и это снимало у них психологический барьер, страх перед бесконечным разнообразием веб-технологий. У меня хороший запас знаний по архитектуре веб-проектов, алгоритмам, шаблонам проектирования — уже этим я могу помочь многим, а попутно я разбираю их программы на неизвестных мне языках программирования, работающие с неизвестными мне сервисами.
- Я научился строго контролировать своё расписание и безжалостно отбрасывать задачи квадранта «неважное-несрочное«, освоил техники борьбы с прокрастинацией. Иначе я не смог бы совместить основное место работы, консультации, поиск новых курсантов и развитие учебных проектов.
- Улучшение владения английском языком. Хочу отметить мою практику наставничества на проекте codementor.io, где обучение и консультации проводятся только на английском языке. Я провожу консультации ради практики разговорной речи в области разработки программ и веб-проектирования. Теперь я значительно лучше воспринимаю на слух все видео на английском. И умею рассказать о решениях на английском языке. Да, мой «джамшутский» английский не совершенный. Я работаю над этим.
- Навыки интернет-маркетинга. Никогда не предполагал, что буду продавать свои услуги или даже сам себя. Никогда не думал, чем я вообще мог бы быть полезен, кроме написания замысловатого кода и запросов SQL.
- Улучшение памяти. Я не представляю как, но в голове хотя бы отрывочно держатся сотни проектов курсантов. Техника Getting Things Done позволила разгрузить память, но она всё равно по замерам стала значительно лучше. К слову, предыдущий скачок улучшения памяти я наблюдал когда выучил все билеты правил дорожного движения для получения прав.
- Общение. Голосом. Иногда с видео. Почему я это отметил? Потому что я работаю удалённо в Icons8, и я ограничился общением исключительно с коллегами и с родственниками. Это сейчас в Icons8 более 20 сотрудников, а 3 года назад было 4 человека и бывало такое, что я за день слова не сказал. Я был рад общаться с курсантами, проводил встречи по два часа вместо запланированных 30 минут.
Немногие могут указать в портфолио, что были архитекторами сотни программных продуктов, включая иностранные.
Большинство проектов я не видел в реализации. У некоторых курсантов были свои домены в Интернет, но по разным причинам они закрыты. Только что у меня появилась мысль бесплатно предоставлять хостинг и субдомен курсантам, чтобы проекты курсантов не исчезали из-за не оплаты. Если ты заинтересовался — напиши в комментариях. Сделаю для тебя что-нибудь вида subproject.webmentor.pro.