Всем нравится концепция наставничества. Вы как поможете своему падавану, так и проясните для себя вещи. Возможно, вы также получите повышение за такую ​​деятельность. Так что минусов вообще нет, и если есть возможность, стоит попробовать. Но жестокосердные старшие разработчики обычно забывают: младший трепещет и уязвим. Он почти как ребенок, которого нужно учить всему в этом незнакомом мире. И его дальнейшая карьера во многом зависит от его наставника.

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

Научить ловить рыбу лучше, чем дать рыбу

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

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

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

Дерьмовая удочка хуже, чем ничего

Если ваш подопечный уважает вас, он не усомнится в ваших словах. Поэтому берите на себя ответственность за свои советы. Утверждайте что-то, просто будучи абсолютно уверенным, что альтернативы нет. Объясните, почему это лучшее решение, какие у него есть преимущества, какие проблемы оно решает. Лучше вообще не давать решения, а перечислить известные вам методы, их плюсы и минусы. Пусть младший научится сам брать на себя ответственность за решения. Во время анализа и сравнения альтернатив он может иногда научить вас чему-то.

Что касается сетевых запросов, я, очевидно, использовал Alamofire. Некоторое время спустя мой наставник посмотрел на код и был не очень доволен. Его последний совет состоял в том, чтобы заменить код синхронным NSURLSessionTask. После .resume() вызова поток был заблокирован и разблокирован только в обратном вызове задачи. Без комментариев.

Он также поделился своей собственной реализацией типа Result и посоветовал мне использовать ее без дополнительных объяснений. Идея Result, как я теперь понимаю, в порядке ... Но в тот раз я просто оставил этот файл лежать и умирать в каталоге проекта. Даже одна прикрепленная статья о схеме железной дороги могла бы значительно улучшить мое понимание.

Усталый, циничный и бородатый

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

Вы подобны апостолу Петру у Жемчужных ворот. Попробуйте представить ИТ в чуть более выгодном свете. Понятно, что вы профессионал, который исправляет ошибки на костылях 24/7, но… Поделитесь твиттером IT-знаменитостей, шутками от крупных компаний или попейте пива на местных встречах разработчиков. Или просто порекомендуйте Swift by Sundell, это может быть очень интересно. Покажите забавную часть нашей сферы, а не просто скучные дни перетаскивания задач в Jira.

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

Понятно, что строгий бизнес хочет, чтобы «сделали завтра». Но пусть расправит крылья перед настоящей постановкой. Джуниор - это долгосрочное вложение, не стоит сразу пытаться получить от него прибыль.

Мой наставник всегда меня слушал и часто одобрял найденные мной технические решения. Я всегда буду уважать его за то, что он позволил нам выбросить устаревший код, когда кто-то воскликнет: «О, это сейчас не имеет большого значения, не трогайте его». Иногда он узнавал от нас новое решение, и мы долго обсуждали (как и пожилые люди) его удобство. Было очевидно, что он заботится о нашем профессиональном росте.

Здесь нет

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

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

«Знал, но забыл», «Давно не использовал» и «У меня сейчас другой стек технологий» - эти фразы следует исключить. Вы царь и бог только тогда, когда быстро и правильно отвечаете на вопросы, решаете возникшие проблемы. Если ты только можешь прийти, пять минут простонать, «включить / выключить» и уйти, значит, ты совсем не хорош.

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

Четкий путь роста

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

Обеспечьте выбор задачи и четкие критерии приемки. Создавайте процессы, как в реальном мире производства. Пусть это будут спринты и планирование, подготовка и ретроспективы. Это создаст возможность регулировать график. Младший сможет выбирать задачи, которые ему интересны или которые он понимает, как выполнять. В случае ступора или долгого ожидания важного ответа от кого-то он может просто переключиться на другую задачу и не томиться. И, конечно же, есть мотивация выполненного плана. Вы завершили план спринта в середине? Молодец, возьми пива и пой песню ACDC.

Моя бэкэнд-команда сидела без задач две недели, потому что: «фронтенд отстает, мы должны подождать, сделать что-нибудь для себя». Разочарование и каннибализм в рядах разработчиков. Всегда кормите своих зверей.

Вы точно старший?

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

Подумайте о своем представлении. Покажи, что ты что-то делаешь. Заставьте его захотеть попасть в вашу жизнь. Прикажите ему подписаться в своем Instagram, где вы публикуете фотографии с конференций и встреч, или показываете эпизод подкаста с самим собой. Поделитесь ссылкой на блог, покажите сертификат «Сотрудник месяца». Если хвастаться совершенно нечем, может, еще рано кого-то учить, не правда ли?

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

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

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

Я вырасту и стану как ты

Мой друг-младший сказал мне очень разумную мысль:

«Теперь я наконец вижу путь к тому, чтобы стать тем, кем хочу быть. Чтобы пройти этот путь, нужно лишь усердие и воля. А талант вообще не имеет значения »

Новичок видит программиста Rockstar, который оказывается посреди процесса разработки, дает инструкции, предлагает решения. Младший оглядывается на свои маленькие задания и не понимает, как стать таким крутым. Стоит ли ему просто подождать необходимых трех лет опыта?

Расскажите ему о прошлом, о том, как вы начали. Истории об успешных известных бизнесменах гораздо менее впечатляющие, чем история о парне из вашего университета, получившем предложение от Facebook.

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

Всего за один привезенный имперский стаут ​​можно услышать от наставника рассказ о его юности. Услышьте его судьбу, мотивацию сделанных шагов в жизни, а затем оцените результаты. И это малоизвестное «учиться на чужих ошибках». Скорее, «проложить путь, по которому учитель ходил по кругу».

Что мы будем делать сегодня вечером?

Иногда не хватает заданий для младшего уровня. Стандартное решение - отмахнуться со словами: «познакомиться с базой кода». На самом деле «знакомство» с базой кода без конкретной задачи - пустая трата времени. Как вы вообще это представляете? Просто откройте и прочтите названия всех 1000 классов проекта?

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

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

Строгий тренер

Конечно, не нужно защищать юниора от всех опасностей IT-мира. Он должен быть готов к неизбежному стрессу и отчаянию. Все мы знаем доктора Кокса и « Чудо на льду ». Контролируйте самоуважение юниоров. Иногда можно вспомнить, что он все еще не так хорош. Главное - не переборщить, ведь в IT-сообществе есть проблемы с токсичностью. Идеальный вариант - сделать такую ​​команду, чтобы каждому было с кем уровень, постараться наверстать упущенное.

Старайтесь все время трясти. Приходите на работу и говорите: «Я начал изучать новый фреймворк / курс / язык, это так интересно, а вы все еще сидите, смотрите сериал?» Запрети ему останавливаться хоть на секунду, отдыхать еще рано.

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

Станьте айтишником

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

Дайте ему почву под ногами, дайте понятия, которые он не может гуглить или читать. Актуальные ответы на такие вопросы, как «Кто сейчас востребован на рынке?», «Как вырасти в компании?», «Как пережить мракобесие» и дерьмо в коллективе? » - которые действительно трудно достать.

Порекомендуйте подкасты и блоги. Юниор - это ваза, в которую можно бесконечно наливать, поэтому лишнее уйдет само. Но оставлять вазу пустой - не выход. Пусть живет программированием, дышит терминами, повторяет предложения. Чем раньше он войдет в мир Medium, Twitter и блогов, тем более конкурентоспособным он станет по сравнению со своими товарищами.

Мне никто не объяснил, что говорить во время стендапа. «Что ты делал сегодня?» и я серьезно углубился в подробный рассказ о том, какой класс я тестировал сегодня. Ценные знания «Всегда ставьте улыбку в конце сообщения чата, иначе вас назовут токсичным» только через год.

Я многому учусь у своих наставников, именно они сформировали меня как разработчика. Даже плохие примеры дали мне понять, как НЕ делать, хотя я бы предпочел, чтобы у меня были только хорошие учителя. После этой статьи даже младший сможет скорректировать поведение наставника и оптимизировать свое обучение.

Отдельные поздравления Екатерине Петровой и Рустаму Кадырову. Они дали мне веру в светлое будущее и подтолкнули ко многим важным делам в моей жизни. И я всегда буду помнить наши разговоры и вечера в офисе.

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

Уважайте своих младших, выращивайте их без токсичности.

Пройдите небольшой опрос - https://goo.gl/forms/StARJasrqOpIqiwv1
Ваше мнение очень важно для меня!

Если вам понравилась статья, похлопайте (50 раз) и поделитесь ею. Подпишитесь на меня, чтобы узнать больше о разработке для iOS. Обеспечьте своих детей нормальными наставниками :)