Обложка статьи «Наставник — кто это и как он помогает расти в IT другим и себе самому»

Наставник — кто это и как он помогает расти в IT другим и себе самому

Оля Зотова

Оля Зотова, лид команды наставников и ревьюеров веб-факультета «Яндекс.Практикума»

Наставничество — это инструмент, который до сих пор не всеми оценён по достоинству. Он даёт программисту возможность подняться в профессии на одну, две, три ступеньки выше. Или «выше и в сторону». Причём этот инструмент приносит пользу и тому, кому помогают, и самому наставнику. «Яндекс.Практикум» открылся только в 2019 году, но мы с самого начала поставили перед собой задачу сделать наставничество частью платформы, и в октябре запускаем большую онлайн-школу наставников. Я расскажу, как вижу наставничество сама: какой профит приносит процесс всем его участникам, чем наставник отличается от преподавателя, как и где наставничеству учиться, и как его практикуем мы.

Что такое наставничество

Главное, чем занимается наставник: способствует развитию подопечных, или, как их называют сами наставники, мéнти (от английского mentee). Развитию как личному, так и профессиональному, смотря в какой сфере наставник работает. Он не столько учит новому сам, сколько помогает «научиться учиться» — воспринимать разный опыт и извлекать из него пользу, размышлять над изученным и делать из него продуктивные выводы. Наставник определяет цели и помогает менти увидеть оптимальный для него путь. Такой специалист видит, как его подопечному добиться качественного прогресса, однако не толкает того в нужном направлении, а вместе с ним определяет цели и помогает разглядеть оптимальную траекторию движения к ним.

Я буду говорить о наставничестве только применительно к онлайн-образованию в IT, потому что сама занимаюсь именно этим. А наш с коллегами опыт показывает: освоить «цифровую профессию» так, чтобы сразу после учёбы быть готовым к работе в отрасли, без поддержки наставника трудно.

Казалось бы, при наличии квалифицированного преподавателя наставник ни к чему. Однако это предположение опровергают первые же занятия. Преподаватель призван отвечать на вопросы по существу конкретного занятия («как развернуть Kubernetes-кластер на голом железе»), а вот вопросы менее определённые и вместе с тем жизненно важные обычно вне его компетенции: «А зачем вообще лепить такие кластеры на bare metal, если можно использовать облака? Мне это знание пригодится при работе в крупном онлайн-сервисе?». Или «наглухо не понимаю, как виртуализация ложится на микросервисную архитектуру». Или даже «боюсь я Kubernetes…». Хороший наставник-практик, работая со студентом, чаще преподавателя оперирует более широким контекстом и отталкивается от своего опыта. И тем самым помогает своим подопечным с навигацией в новом для них и часто пугающем мире.

Наставник — это интеллектуальный партнёр, с которым можно обсудить как насущные проблемы в учёбе вроде «не понимаю, как устроены GET-запросы», так и о более глобальные — «а какой смысл вообще изучать какой-нибудь фреймворк, если он наверняка устареет, когда я устроюсь на настоящую работу?».

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

На деле между двумя ролями нет противопоставления. Наставничество не обязательно строго отделено от преподавания. Вообще-то в IT преподаватель-наставник — лучшее сочетание из возможных, при условии что человек хорош в обоих амплуа. Такой универсал сумеет поставить студента перед такими вопросами, что тот будет развиваться гораздо быстрее и с большей «граблестойкостью».

Как наставник помогает начинающему разработчику расти

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

На старте обучения, в условиях изматывающей неопределённости, будущие аналитики данных часто спрашивают: «А вы видели человека без профильного образования, который сумел стать аналитиком данных?». Наставник не просто расскажет о таком специалисте — не выдуманном, а из плоти и крови, — но и обозначит поворотные точки в его карьерной траектории, главные трудности, с которыми он в связи с отсутствием бэкграунда был вынужден справляться и справился. А положительный пример заразителен. Из него новичок начинает черпать уверенность: «Ха, и правда, я не первый, кто столкнулся с такой проблемой. Теперь стало понятнее, как её преодолеть». Когда же студент осилит половину курса и задумается над вопросами более предметными, например какие дисциплины ему стоит изучить или подтянуть, наставник не вывалит на него список с десятками пунктов must, не осудит ни прямо, ни косвенно («Э-э, ты не знаешь дискретной математики?! Нда…»), а вместе с ним сперва разберётся, какие задачи тот тянется решать и до какого профессионального уровня надеется дорасти в ближайшие годы.

Столь же важно умение наставника делиться личным опытом и живыми кейсами. Он не только помогает студенту успешнее овладевать утилитарными навыками, то есть hard skills, но и наглядно объясняет, например, как в выбранной им сфере принято общаться в командах, какие практики совместной разработки — стандарт в самых крутых компаниях на рынке. Наставник раскрывает такие нюансы внутренней айтишной кухни, каких не вычитаешь ни из одного учебника и не извлечёшь ни из одного онлайн-курса. Ну откуда, например, «новобранцу» знать, как длительность цикла поддержки ПО влияет на решения о переходе на новые версии инструментов разработки? Более того, многие на старте карьеры в IT не понимают, зачем в действительности нужен GitHub, и считают, что он только портит жизнь. Поэтому втихую саботируют изучение команд для работы с ним, которые сложнее git commit. Для инженера с опытом командной разработки это дикость, а для новичка — в порядке вещей. Добросовестный же наставник такие подводные камни держит в уме и знает, как примерами из своих джуниорских лет доказать, что умение обращаться с репозиториями для совместной работы жизненно необходимо.

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

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

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

Кроме того, важно, что хороший наставник — действующий специалист, который помогает студентам и попутно занимается своей основной работой. Его стараниями студенты начинают видеть больше смысла в том, что происходит с ними на курсе. Они убеждаются: то, чему их учат, действительно понадобится им в будущем. Таким образом удаётся сохранить их мотивацию и не дать сомнениям дойти до точки «А какого лешего я всё это учу?».

В чём польза от наставничества для самого наставника

Теперь посмотрим на это с другой стороны — глазами наставника. Разберёмся, чего в конечном счёте добивается тот, кто решился ввязаться в это дело.

Делает мир лучше

Не у каждого такая мотивация есть, тем не менее у многих профессионалов она в какой-то момент обычно проклёвывается. Часто программисту, дата-сайентисту, QA-инженеру на основном месте работы не хватает ощущения, что он занимается чем-то созидательным. В результате — хрестоматийный кризис: «Пишу код, который улучшает другой код, который улучшает какие-то бизнес-процессы, только зачем?». Выходом из него может послужить наличие вполне благородной цели — помочь другим научиться ремеслу эффективнее, чем довелось учиться тебе самому. Да ещё так, чтобы лет через пять в индустрии было меньше джуниоров и миддлов, от чьего кода захочется схватиться за голову.

Наращивает свою профессиональную экспертизу

Волей-неволей наставник сталкивается с необходимостью глубже разобраться в тех подходах и инструментах, которые сам применяет нерегулярно или которых вообще раньше избегал. То есть начинает заниматься тем самым T-shaping, что помогает выйти за пределы рутины и изменить развитие карьеры. К тому же, осваивая новое, он доносит это до студентов с самым разным уровнем подготовки, восприятием, запросами. Как следствие, одно и то же требуется объяснять совершенно по-разному. И обучая, наставник учится сам — устраняет пробелы в собственных познаниях и начинает видеть свою сферу деятельности более целостно. Точно так же, как его студенты, он начинает ловить инсайты. Раз — и вдруг сложилось понимание того, как сделать у себя в департаменте рефакторинг крупных залежей legacy-кода менее мозгодробительным, хотя, казалось бы, про отдельные практики такого рода уже читал статьи и слушал доклады на конференциях.

Прокачивает навыки коммуникации

Сколько студентов, столько и сценариев общения. Один студент — чрезвычайно вежливый, но тревожный и склонный замыкаться в себе. Другой — въедливый отличник, которому сколько ни дай советов, всё мало. Третий — грубиян, норовит подловить наставника на какой-нибудь оплошности, зато схватывает на лету. Нужно учиться доверительно и по делу общаться с каждым из них и удовлетворять их запросы не в ущерб базовой программе курса. После таких приключений становится гораздо проще строить коммуникацию в своей команде. Особенно с новичками. Особенно с джуниорами.

Улучшает свои лидерские качества

Перед middle- или senior-разработчиком часто стоит задача научиться лучше добиваться своего в командах на работе. Не руководить напрямую — скорее вести за собой и аккуратно гнуть свою линию. Работая со студентами и учась у других наставников, человек быстро пополняет инструментарий soft skills: ещё бы, ведь наставничеству чужд директивный стиль управления.

Ищет людей к себе в команду

Приток джуниоров в IT увеличивается, но тех, кто с порога готов к осмысленной работе, по-прежнему маловато. А руки в компании нужны: часто — самому миддлу-наставнику, чтобы скинуть с себя рутинные задачи. Вот, например, кровь из носу требуется начинающий аналитик данных. Но чтобы с SciPy в одной руке и Cython — в другой. И случается, легче не отсеивать поток резюме с HH, а присмотреть на курсе и лично поднатаскать расторопного студента, который пусть пока не готов включиться в работу над реальным проектом, зато быстро учится. В ходе учёбы будет время познакомить его с подходами к работе, которые приняты в компании.

Как стать наставником: с чего начать

Обыкновенная история, когда крепкий middle-разработчик созрел для того, чтобы помогать другим учиться, но сомневается. Он рассуждает: «Наверное, это отдельная профессия, и неохота выставить себя дураком перед теми, кто в ней мастер». А тут и внутренние демоны наготове: «Да и кто я такой, чтобы кого-то чему-то учить? Сам себя за уши из болота за эти три-четыре года вытянул, а хватит ли ума и скиллов помочь другим?».

Хорошая новость: «сам себя вытянул» — здесь ключевые слова. Если вы узнаёте в этом сомневающемся себя, в первую очередь вспомните, какие трудности в обучении возникали у вас самого. Поинтересуйтесь у коллег, какие проблемы были у них. Когда соберёте груду таких «подводных камней», попробуйте разложить их по кучкам — классифицировать. Тогда сразу станет понятнее, что с ними можно сделать. Задумайтесь, какие приёмы и рекомендации вернее всего помогали вам, какие — друзьям, кто наиболее эффективно помог вам в развитии, что вы в итоге умеете на текущий момент. И конечно, чего вам остро не хватало в период освоения IT-ремесла. Ведь наставник должен помочь человеку дойти до конца обучения и открыть ему самостоятельный путь в профессии.

Попутно вы поймёте, чем из арсенала наставничества владеете неплохо, а что вам даётся с трудом. Например: «Меня раздражает, когда мне приносят „обезьяний“ код» или «От моей обратной связи джуниоры в команде трясутся и нервно уходят в курилку», или «Как ни объясняю, мои подшефные ничего не понимают. Идут после моих консультаций читать книги, и талмуд Кнута почему-то им яснее». И вот перед вами основа для to-do-листа, показывающего, какие навыки вам стоит улучшить в первую очередь, чтобы стать классным наставником.

Конечно, есть базовые принципы, которым хорошо бы следовать наставнику, если он не хочет превратиться в «наставника курильщика». Единого и общепринятого чеклиста нет — я опишу лишь то, что мы взяли за основу сами:

Человечность и умение устанавливать доверительный личный контакт. Для студентов наставник — авторитетная фигура, которая вдохновляет их на преодоление трудностей. Нет доверия — меньше достижений, меньше шансов дойти до конца обучения, медленнее прогресс.

Гибкость и готовность менять подход в зависимости от ситуации. Например, один из опорных принципов наставничества — задавать наводящие вопросы, а не давать исчерпывающие ответы. Всё для того, чтобы студент выполнил работу и дошёл до правильного и красивого решения сам. Однако не всегда через вопросы удаётся направить человека на верный путь. В начале обучения есть смысл опекать студента чуть более плотно и, возможно, с подсказками. Если забросать неуверенного в себе новичка вопросами на старте, легко отбить у него охоту не то что советоваться — вообще учиться дальше. Принцип начинает работать, когда наставник понимает, что студенту уже под силу самому найти решение, а его мотивация устойчива.

Ориентированность на практику. Наставник должен «заземлить» студента, помочь ему синхронизироваться с реалиями индустрии. Как минимум для того, чтобы выпускник умел делать «необходимое и достаточное» по техзаданию, а не рваться всякий раз построить идеальную архитектуру или написать самый изящный код без учёта временных затрат.

Осознание ответственности и её границ. Необходимо, чтобы наставник отдавал себе отчёт в том, кто за что отвечает в процессе обучения. Так, ответственность студента, а не кого-нибудь ещё — выполнить или не выполнить задание. В то время как ответственность наставника — адекватно ситуации принять решение, вовлечься или не вовлечься в работу студента, понять, где помощь обязательна, а где допустимо предоставить ему свободу поиска.

Чек-лист наставника: необходимые навыки

В нашей картине мира хороший, профпригодный наставник поставит галочки напротив каждого пункта в чек-листе ниже — конечно же, не исчерпывающем.

Не смешно? А здесь смешно: @ithumor