Как я вырастил себе стажеров, или мой опыт работы в Школе бэкенда
Привет, Хабр! Я Юрий Изотов, ведущий инженер департамента развития кредитных технологий ПСБ. До недавнего времени у меня не было опыта обучения студентов или наставничества. Накопились впечатления, хочется поделиться ими с хабравчанами. А еще порассуждать, что дает разработчику преподавание, и насколько сложно взять и начать учить новичков.
Я пришёл в ИТ больше 20 лет назад ещё студентом. Всё началось со стажировки в НИИ, где мы участвовали в разработке программно-аппаратных комплексов тестирования. Потом было ПО для микроконтроллеров, затем я разрабатывал SCADA-систему для АСУ ТП, занимался бэкендом сервиса информационных каталогов. Писал на C++, имел дело с Ассемблером, PHP, Java, а с 2014 года основным стал C#.
В прошлом году я стал экспертом Школы цифровых ролей ПСБ. Несколько месяцев подряд я проверял их домашние работы, отвечал на вопросы, в общем, помогал получить знания, пройти обучение и получить стажировку у нас в банке. В том числе и в моем отделе.
Я никогда не искал возможности заниматься со студентами. Можно сказать, и в наш курс вовлекся случайно. Идейным вдохновителем Школы бэкенда стал коллега из моего отдела. Он вел экспертов, собирал дейлики, синки. Все они сидели недалеко от меня в офисе, обсуждали детали обучения, я слушал-слушал и в один момент подумал: «А всё это интересно! Хорошо бы попробовать». Когда пришла рассылка для всех сотрудников с предложением стать экспертом, я уже был готов и сразу откликнулся.
Немного расскажу про саму школу. В ПСБ есть образовательный проект «Школа цифровых ролей», где мы обучаем студентов старших курсов технических вузов и колледжей. Специальностей много — тестирование, анализ данных, бэкенд и т.д. Преподаватели и эксперты школы не приглашенные менторы, а наши специалисты. Учим студентов навыкам, которые востребованы в банке. Те, кто успешно освоил программу, получают приглашение на стажировку и, если все идет хорошо, — остаются работать в командах ПСБ.
По большинству направлений один курс, но для бэкенда у нас их два: базовый и продвинутый. Мы набрали студентов и начали учить их писать на C# —- у нас в ПСБ много задач для разработчиков.
У студентов часто нет знания C# — кто-то изучал Java, кто-то JS, кто-то С++ или другие языки. На базовом курсе мы объясняли основы этого языка: типы данных и их свойства, основы ООП и прочие базовые вещи. Он длился около двух месяцев летом.
А вот продвинутый курс погружал студентов в C# глубже и дольше — мы начали осенью и завершили зимой. Во время прохождения продвинутого курса ребята смогли разработать полноценный микросервис со своей базой данных и развернуть его с дополнительным окружением в docker-контейнерах, освоили unit-тестирование и взаимодействие с другими сервисам, попробовали работать с брокером сообщений и классическим REST Api.
Сначала я проверял домашние задания у студентов базового курса. На этом этапе мы внимательно смотрели не только на их успеваемость, но и на мотивацию. Большинство было очень мотивировано попасть на стажировку, но были и те, кто уделял мало внимания Школе, не выполнял задания, продолжал писать, например, на C++. С ними мы попрощались — это примерно пятая часть. Остальные перешли на продвинутый курс, по итогам которого мы предложили многим ребятам стать стажерами.
У меня не было предпочтений — преподавать, готовить материалы или только проверять домашние работы. Когда я пришел в в школу, студентов уже набрали, а материалы для курсов распределили, так что я стал проверяющим экспертом.
Устроено все так: студенты отправляют пулреквесты в Git, я делаю код ревью. Так как мы, разработчики, постоянно делаем код ревью, никакого нового опыта здесь для меня не было. Из отличий — студентам нужно давать более развернутые комментарии и помогать им ссылками на документацию и материалы, которые полезно посмотреть и почитать.
Домашние задания готовили другие эксперты, но мы все собирались и обсуждали домашку, чтобы я и другие проверяющие понимали, с чем предстоит иметь дело, какие задачи будут, как их проверять и какую обратную связь давать. Проверяющих на курсе было человек пять и на каждого приходилось по 5–6 студентов. Кстати, некоторые из экспертов совмещали и преподавание, и проверки.
Проверкой я занимался в свободное время, работе это не мешало. На базовом курсе уходило по два часа в день трижды в неделю. На продвинутом курсе стало сложнее. У студентов было много кода, времени на проверки стало уходить значительно больше. В какой-то момент я сильно устал. Но преодолел это и остался до конца, о чем не жалею: мы прошли пик нагрузки, стало легче, а пользы от школы я получил очень много.
Студентам тоже приходилось нелегко: продвинутый курс пришелся на осень, а дипломный проект они сдавали зимой после праздников, и это все параллельно с учебой. Так что и экспертам, и студентам нужно следовать одному правилу — не оставлять все на потом. Догонять всегда сложнее, чем делать постепенно.
Я знал, что этот опыт будет мне полезен, но не представлял, насколько.Когда я шел в эксперты, понимал, что придется готовиться и учиться объяснять. Видел в этом плюсы. Когда изучаешь материалы других экспертов, знакомишься с задачами, то, бывает, видишь что-то и думаешь: «Ага, вот это я подзабыл. А вот это, может, и вовсе не знал». Начинаешь под другим углом смотреть на свои знания. Пополняешь их. Это верный способ поддерживать себя в тонусе, в профессиональной форме.
А вот чего я не ожидал, так это того, что роль эксперта принесет мне новый круг общения. Я вживую познакомился с разработчиками из других подразделений, которых раньше видел только через камеру. Теперь общаемся, нам есть, что вспомнить, о чем поговорить.
Компания дает бонусы экспертам и преподавателям. Например, мы можем вне очереди посетить крупные ИТ-конференции: Highload++, DotNext и другие. Есть внутренние мероприятия, где можно послушать лекции, поучаствовать в разных активностях. Помимо этого, в компании существуют денежные надбавки для экспертов Школы.
Один момент меня очень впечатлил и я не могу о нем не рассказать. Да, в роли эксперта много пользы для тебя самого, но важнее результат твоей работы — стажеры!
Работа со студентами — это по сути длинное собеседование. Проверяешь задания, отвечаешь на вопросы, общаешься и видишь, в чем они сильны и на что способны.
У меня в отделе сейчас стажируются мои вчерашние студенты. Я трачу гораздо меньше времени на их погружение в задачи, если сравнивать с тем, сколько времени занимает погружение новичков не после Школы. К тому же мне привычно ревьюить их работу.
А еще во время обучения они все уже завели чаты, где обмениваются опытом, помогают друг другу решать задачи и поэтому лучше готовы к командной работе. Очень приятно, когда спрашиваешь других коллег о своих стажерах и получаешь ответ: «Работают, очень хорошо себя показывают! Рады, что взяли».
Я собираюсь продолжать работать в нашей Школе цифровых ролей на следующих курсах бэкенда. Пока не решил, останусь ли в привычной роли проверяющего домашних работ или же попробую вести занятия. Мне было бы интересно попробовать выступать перед аудиторией, отвечать на вопросы людей, которые пока не погружены в тему.
Буду рад, если поделитесь в комментариях своим опытом работы со студентами. Что вам ближе — преподавать или проверять домашние задания? Что дало вам преподавание?