понедельник, 29 декабря 2014 г.

О менторах и менторстве

В некотором роде этот «капитанский» пост можно считать продолжением популярного прошлогоднего поста Увлеченный программист, в котором тема менторства уже поднималась.

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

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

Такие люди играют роль маяков, которые мотивируют тебя на постоянное развитие, но даже прямое общение с ними вряд ли поможет понять, что их сделало такими. Да, понятно, что Джон “Stackoverflow” Скит мега крут, постоянно развивается и отлично управляет своим временем. Но какие навыки или умения позволяют ему это делать и что именно полезно перенять у него здесь и сейчас вряд ли будет очевидным.

Менторы – повсюду!

Принято считать, что ментор должен быть сильнее по всем параметрам. Это такой себе уверенный в себе седовласый гуру, который забодал десятки проектов и знает все: от архитектуры высоконагруженных систем до особенностей x86 ассемблера. И хотя подобный тип ментора полезен, он достаточно редкий, да и вряд ли он будет нянчиться с вами больше полугода-года. После этого начинается период «перекрестного опыления».

В любой хорошей команде будет достаточно коллег, которые будут делать что-то лучше вас. Один будет отлично вникать в детали и докапываться до сути любой проблемы. Другой будет прагматичным и упрямым разработчиком, который будет отстаивать сроки задачи перед начальством любого уровня. Третий будет спокойно педалить код, даже если задача вам кажется совершенно не интересной. Четвертый будет прекрасно разруливать конфликты, хотя вы бы уже давно выбили бы несколько зубов оппоненту. Даже менеджер, к способностям которого вы относитесь весьма снисходительно, на деле может оказаться толковым парнем (или девушкой), который умеет доводить дело до конца и может справляться с десятком мелких задач одновременно. Каждый из этих людей может стать вашим «ментором» в той или иной области, даже если он не будет подозревать о своей роли.

Для успешного перенимания опыта очень важно у себя в голове убрать понятия «круче/лучше» или «слабее/хуже». Это не конструктивно и глупо. Легко найти коллектив, в котором вы будете первым программистом на селе, но какой в этом толк? Быть достойным среди лучших значительно полезней, чем лучшим среди худших. Единственный человек, которого нужно обогнать – это вы сами месяцем или годом раньше!

Подавляющее большинство очень умных людей не скрывают своего незнания. Они знают свои сильные стороны и не стесняются говорить о своем незнании. Нет ничего зазорного в том, чтобы попросить своего коллегу рассказать вам о Git-е или попросить поделиться его опытом использования техники Pomodoro. Когда вы знаете свои сильные стороны, то теряется необходимость скрывать свои слабости!

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

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

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

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

З.Ы. Немного статистики. За 11 лет я сменил 3 компании и 4 проекта. За это время у меня был один формальный ментор первые 3 месяца моей проф. деятельности и не менее 15 коллег, чей опыт мне очень помог в развитии.

5 комментариев:

  1. "Когда вы знаете свои сильные стороны, то теряется необходимость скрывать свои слабости!" -- спасибо, отлично сказал!

    ОтветитьУдалить
    Ответы
    1. Это, на самом деле, одна из ключевых мыслей поста:).

      Удалить
  2. "Десятку человек в мире повезло и они встретили своего мудрого наставника, когда он им был нужен и они были готовы воспринимать его мудрость"
    И кому же так свезло?;)

    ОтветитьУдалить
  3. Интересный пост, уже втрой раз в жизни встречаю ментора, именно в то время в которое он нужен. Работа в офисе, для меня, привлекательней, именно из-за "прямого" обмена опытом.

    ОтветитьУдалить