0

Код-ревьюер в Яндекс.Практикуме: кто это, как им стать, а главное — зачем

Партнёрский материал. Что это?
Обложка: Код-ревьюер в Яндекс.Практикуме: кто это, как им стать, а главное — зачем

Яндекс.Практикум ищет код-ревьюеров для проверки кода студентов. Расскажем, в чем заключается их работа, зачем вам становиться код-ревьюером и что для этого нужно знать и уметь. Или можете просто посмотреть вакансии: сейчас ищут код-ревьюеров на курсы «Веб-разработчик» и «Python-разработчик». Достаточно опыта от года и 10 часов в неделю свободного времени.

1

Чем код-ревью в учебе отличается от классического?

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

В Практикуме нет преподавателей в классическом понимании — тренажеры автоматические, а задания проверяют код-ревьюеры — профессиональные разработчики, а не учителя. Это помогает приблизить работу над практическими заданиями к реальным, «боевым» условиям. Такое код-ревью немного отличается от классического:

  • Студенты не смотрят код друг друга, чтобы не наращивать ошибки. Код-ревью обязательно проводят только опытные программисты.
  • Код-ревью становится обязательным. В рабочем процессе код можно выпустить и без ревью. С учебой не так — студент может написать нерабочий код. Поэтому без проверки ревьюером обучение дальше не идет.
  • От ревьюера нужно подробное объяснение. Когда проверяешь опытного программиста, достаточно выделить фрагмент кода и поставить вопросительный знак — он поймет, что что-то не так, и сам разберется. Ученику каждый неправильный фрагмент нужно пояснять подробно, с примерами и ссылками на уроки. Такое ревью требует больше терпения.
2

Зачем разработчику становиться код-ревьюером?

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

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

Руслан Амиров, Senior Python Developer в PitchMe.co, код-ревьюер на курсе Python-разработчик

Опыт наставничества. Во многих компаниях, особенно крупных и зарубежных, для карьерного роста нужно заниматься обучением стажеров и джунов. Без такого опыта стать сеньором или занять позицию тимлида невозможно. Например, в Uber для карьерного роста нужно развивать компетенцию Citizenship, в которую обязательно входит менторство.

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

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

Самое приятное, когда студенты во время обучения или после сдачи диплома пишут благодарности. Они говорят о том, что мои ревью научили сильнее задумываться над написанием кода и порой давали больше знаний, чем теория.

Руслан Амиров, Senior Python Developer в PitchMe.co, код-ревьюер на курсе Python-разработчик

Один из учеников в своей проектной работе сделал карточки со своими наставниками и каким-то чудом нашел и мою фотографию. Оставил ко мне подпись «Видит все баги», было забавно 🙂

Айгуль Маликова, старший код-ревьюер на курсе «Веб-разработчик» в Яндекс.Практикуме

Дополнительные деньги. Это неплохая подработка для разработчика, например проверка одной работы на курсе «Веб-разработчик» оплачивается в среднем от 500 до 1000 рублей, в зависимости от сложности. Есть даже карьерный рост — можно стать старшим ревьюером и координировать работу коллег.

Я устроилась ревьюером в Практикум 1,5 года назад. Со временем мне доверили проверять больше направлений, и вот спустя некоторое время предложили роль старшего ревьюера. Вообще я всегда была связана со сферой образования. Занималась репетиторством, преподавала в онлайн-школе. Мне хотелось продолжать обучать студентов и помогать им осваивать новую для них профессию. Думаю, что будучи код-ревьюером в Практикуме мне удалось помочь не одному десятку студентов осуществить свою мечту.

Айгуль Маликова, старший код-ревьюер на курсе «Веб-разработчик» в Яндекс.Практикуме

Когда-то я работал разработчиком в Яндекс.Такси и хотел ротироваться в Практикум, потому что это продукт с близкой мне социальной миссией. Тогда не вышло, но в итоге стал ревьером и получил, что хотел — работу в Практикуме и дополнительный доход.

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

Руслан Амиров, Senior Python Developer в PitchMe.co, код-ревьюер на курсе Python-разработчик

3

Как выполняется код-ревью?

В общем схема выглядит так:

  1. Студент выполняет работу, обычно по четкому ТЗ. Работа посвящена конкретным темам и стекам технологий.
  2. Работа падает на проверку код-ревьюеру в специальной внутренней системе. В Практикуме проверить работу и оставить комментарии нужно в течение суток.
  3. В свободное время ревьюер открывает ТЗ и смотрит работы, которые упали на проверку. Код можно проверять во внутреннем инструменте, а можно скачать к себе на компьютер и развернуть в привычной IDE — так делают некоторые ревьюеры.
  4. Ревьюер просматривает общую структуру кода, соответствие best practice, наименования, детали реализации, сложность восприятия. Оставляет комментарии трех видов: «Надо исправить», «Можно лучше», «Отлично». Комментарии обязательно развернутые — с примерами кода и отсылками на темы, которые нужно повторить.
  5. Ревьюер через внутреннюю систему отправляет код студенту на правки, если они необходимы. После правок — еще итерация ревью, пока код не станет рабочим и достаточно хорошим.

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

Руслан Амиров, Senior Python Developer в PitchMe.co, код-ревьюер на курсе Python-разработчик

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

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

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

Никита Ковалев, ведущий разработчик, код-ревьюер на курсе «Python-разработчик» в Яндекс.Практикуме

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

Айгуль Маликова, старший код-ревьюер на курсе «Веб-разработчик» в Яндекс.Практикуме

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

4

Кто может стать код-ревьюером?

Основных требований для код-ревьюера пять, два — по hard skills и три — по soft skills.

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

Владение стеками, востребованными на курсах. Сейчас в Практикуме есть курсы для желающих стать разработчиками на JavaScript, Python, С++, Java, Go, периодически появляются и новые направления. В обучении обычно используются популярные технологии и инструменты.

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

Руслан Амиров, Senior Python Developer в PitchMe.co, код-ревьюер на курсе Python-разработчик

Умение объяснять. Ревьюер студентов — в чем-то все-таки преподаватель. Он должен не просто подсветить неверные моменты, но и объяснить, как сделать правильно и лучше.

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

Руслан Амиров, Senior Python Developer в PitchMe.co, код-ревьюер на курсе Python-разработчик

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

К студентам нужен индивидуальный подход. Пережестил на ревью? Студент закопался в правках и потерял мотивацию. Недожал? Студенту стало скучно от курса и он ничему не научился. И к вопросу планирования времени приходится подходить индивидуально. Кому-то нужно дать больше подсказок, кому-то можно предложить дополнительное усложнение. А в это время нужно еще основную работу работать. Заложил мало времени? Качество проверки пострадало или не успел вернуть студенту проект.

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

Никита Ковалев, ведущий разработчик, код-ревьюер на курсе «Python-разработчик» в Яндекс.Практикуме

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

Умение выстраивать границы. В коммуникации важно не ставить себя выше студента. Нужно понимать и показывать студентам, что ревьюер указывает на то, ЧТО нужно исправить, а не КАК. Для последнего у студентов есть общие чаты с сокурсниками и наставниками.

Попробуйте свои силы в роли код-ревьюера!

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