Вредные советы: Как обучить джуниора

    Итак, у вас в команде появился джуниор. Звучит совсем как «у вас дома появился щенок», да и ощущаться будет так же. Он будет постоянно просить вашего внимания, гадить и заглядывать вам в глаза. Однако, джуниор – не собака, и воспитывать его нужно слегка по-другому. Задача не из простых, но вполне можно научить джуниора писать хороший код! В этом посте мы рассмотрим основные моменты воспитания молодого специалиста.

    Первая встреча с джуниором

    Итак, настал момент вашей первой встречи в рабочих условиях. Джуниор вышел на работу и должен приступить к должностным обязанностям. Ваша задача в этот день – играть с джуниором в прятки, ведь они это так любят! Вам не стоит водить его за ручку, показывать офис и его рабочее место. Вы ни в коем случае не должны сразу же брать джуниора под свою опеку, будто нянька. Он сам должен приложить усилия и найти вас, таким образом он проявит свой навык problem solving. Кстати, в идеальном случае рабочее место не должно быть готово, чтобы джуниору пришлось немного посидеть на ресепшене и решать задачи без компьютера.

    Создание учетных записей

    Разумеется, учетные записи не должны быть готовы. В идеале админ Аркадий должен выпучить на вас глаза и спросить: «Какой еще новый сотрудник? Мне никто ничего не говорил». Администраторам в принципе все нужно говорить в последний момент, чтобы не расслаблялись. Не лишним будет потянуть с созданием учеток пару недель и проверить, начнет ли джуниор сам спрашивать о них. Тем самым вы проверите его настойчивость и способность goals achievement.

    Знакомство с командой

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

    Введение в детали проекта

    Думаю, вы и сами уже все поняли. По указанным выше причинам, вам ни в коем случае не стоит погружать джуниора в детали проекта. Если он проявил initiative и самостоятельно нашел нужный репозиторий, то разобраться в коде для него не составит никакого труда. При условии, что он способный, конечно. Кстати, будет полезно, если ваш проект представляет из себя огромный комок грязи с переплетенной архитектурой, чтобы и другие члены команды не расслаблялись и были в тонусе. Когда код упрощается, решения тоже становятся довольно простыми и делаются спустя рукава, а это не то, чего мы хотим. Впрочем, качество кода – это тема для отдельной статьи.

    Начало работы и эстимейты

    Итак, ваш молодой боец приступил к выполнению своей первой задачи. Хорошо бы ее поставить устно, но подойдет и тикет в Jira. Первое, что вы должны спросить, так это estimate. Джуниоров особенно полезно приучать к временным оценкам задач. Далее я даю вам подробную инструкцию как вести себя при оценивании:

    1. Джуниор называет вам какое-то число. Допустим, восемь.

    2. Вам нужно скривить рот, глубоко вздохнуть и спросить: «Что восемь?»

    3. Слегка смутившись, джуниор вам ответит: «Ну… восемь часов»

    4. Вам следует заметить, что надо было сразу так и сказать. А то что это за магическое число такое, восемь.

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

    6. Не обращая внимания на бледное лицо джуниора, уходите без каких-либо объяснений.

    Такой подход настроит джуниора на рабочий лад и придаст ему настроения.

    Код-ревью и разбор ошибок

    Не нужно. Вы работаете в команде сильных специалистов, чей код не нуждается в ревью. Пусть джуниор к этому привыкает. Однако, скорее всего он напишет какую-нибудь чушь в своем первом коммите. Ваша задача здесь – подключиться к его бранчу, молча все переписать по уму, закоммитить и смерджить в основную ветку. Главное, не ставить его в известность – он должен сам все это заметить. То, как вы переписали его задачу, должно его впечатлить. Однако, он вовсе не должен понимать, как работает ваш код и чем он лучше его изначального решения. Вы – авторитет, поэтому всегда переписывайте код, написанный джуниором. Если он вас однажды попросит что-то объяснить, просто ответьте: «Потому никто так не пишет, Сережа. Ты еще орленок».

    Менторинг

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

    Поддержка

    Поддерживать будете друзей в баре, когда они начнут вам рассказывать о своих проблемах. А джуниор в поддержке не нуждается. У него должен быть крепкий стержень, который позволит ему однажды стать настолько же крепким специалистом. Почаще говорите следующие фразы: «почему так долго», «ну кто так пишет», «зачем тебе юнит-тесты?», «о боже», «оставь, я сам допишу». Все это будет держать джуниора в тонусе и заставлять вгрызаться в проект (и в вашу глотку).

    Учите хорошим практикам

    Наверняка кто-то из вас заметил фразу «зачем тебе юнит-тесты?» в предыдущем пункте. Сразу дайте джуниору понять, что юнит-тесты – это зло. Когда разработчик пишет юнит-тесты, он заявляет всему миру, что он в себе не уверен. Он буквально кричит: «Ребята, мой код не работает!». Вы хотите работать с такими «профессионалами»? Вот и я тоже. Помимо юнит-тестов, у вас не должно быть всяких новомодных CI и CD, интеграционных и, прости Господи, e2e тестов. Но все это тема для отдельной статьи.

    Про мотивацию

    Мотивация быть должна! Но, разумеется, не материальная. Если вы поднимете джуниору зарплату, он просто расслабится и начнет писать код еще хуже, чем в самом начале. Мотивировать нужно поступками, фразами и испытаниями. Очень полезно при всех его коллегах воскликнуть: «Б***ь, Сережа, ну что это за *****? Маша из бухгалтерии решит эту задачу лучше». Это разозлит джуниора, но злость эта будет положительной и правильной. Я бы даже сказал, праведной! Впредь ему захочется писать как можно лучше, чтобы даже Света из той же бухгалтерии не смогла сделать круче.

    Если джуниор слишком любопытен

    У джуниоров часто есть период «почему». В это время они заваливают вас вопросами, но каждый из них начинается именно со слова «почему». Почему класс так называется, почему метод приватный, почему база данных не монго, почему нельзя домой, почему сервис не запускается. Грамотный джуниор сам разберется во всех этих вопросах (либо найдет другую жертву). Вы можете чисто для приличия ответить на один из вопросов по вашему усмотрению, но не балуйте вашего подопечного. Пусть он проявит свой навык learnability!

    Заключение

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

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 23

      +3
      Я в твою команду работать не пойду.
        +8
        А он в твою — пойдет!
          0
          А вы пропустили теги, я полагаю?
          +3

          Хмм. Прям как на моей новой работе.

            +1

            Фошисты ))) но мне понравилось

              +6
              Как выделить хорошего джуниора? Он спрашивает обо всем, но не больше одного раза :D
                0
                А как же гугл в помощь как напутствие? Без этого советы кажутся не полными)))
                  +2
                  Нет! Никакого гугла! Джун должен все знать сам, гугл используют только люди, неуверенные в своих знаниях! Да что там, с гуглом та самая Маша из бухгалтерии заменит полкоманды(Света просто захватит мир)
                    0
                    Ну я считаю джун таки должен гуглить прежде чем задавать вопросы. Если он вместо того чтоб потратить 15 минут и разобраться самому тратить 5 минут чтобы узнать у вас — это плохой джун. А вот если он потратил 15 минут — не разобрался и только потом пошел задавать вам вопросы — это хороший джун.
                      0

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

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

                          Люди все разные и ситуации разные бывают. Но как-то на все вопросы отсылать в Сеть на мой взгляд такой себе способ ознакомления с новым местом работы.

                        0
                        15 минут слишком упрощенно. Иногда на какой-то вопрос может уйти день. Разобраться самому полезней, чем получить готовое решение, и не отвлекается более опытный специалист, но и потеря рабочего дня даже у стажера имеет минусы.
                          0
                          У меня как-то раз джун спросил что такое join в SQL. Понятно что идти гуглить какой логин/пароль от его гитовой учетки не нужно
                          0

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

                          +3

                          Вредные советы!? Это лучший чек-лист о проведении курса молодого бойца

                            +4
                            джуниор — не стажер
                            спрос с него как со специалиста. подтирать никто не должен
                              0
                              Вот лично я на теги никогда не смотрю. По тегам осуществляется поиск, а не чтение статьи.
                                0
                                Поэтому соответствующий заголовок, чтобы сразу все было понятно ;)
                                0
                                О-о-о… Прямо моя прошлая работа, особенно про тесты, CI/CD и прочие ненужные модные штучки
                                  +1
                                  Огонь ваще))
                                    0
                                    Вы можете чисто для приличия ответить на один из вопросов по вашему усмотрению

                                    На одной работе недавно такое было)

                                      +1

                                      Начал читать статью и сразу накрыло флешбеком о своих 3х месяцах работы в СберТехе

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое