Как стать автором
Обновить
54.8
Arcadia
Заказная разработка, IT-консалтинг

Студенческие IT стажировки — как мы стараемся делать их наиболее эффективными

Время на прочтение 12 мин
Количество просмотров 8.8K

Привет! Меня зовут Денис Александров, и помимо работы в качестве Android-разработчика, я уже более семи лет готовлю стажеров в разных компаниях и занимаюсь студенческими практиками. Мне приходилось и работать с перспективными студентами персонально, и проводить групповые стажировки с отсевом. Я собрал самые важные и полезные тонкости проведения стажировок для студентов, благодаря которым мы делаем наши стажировки максимально полезными и эффективными для всех ее участников. 

Когда (и кого) начинать стажировать 

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

  1. Не брать студентов, а дождаться их выпуска — с надеждой, что выпускники будут лучше подготовлены к рабочей деятельности. 

  2. Работать со студентами, но дать им возможность успешно закончить учебу. 

  3. Брать студентов в штат без учета их образовательной деятельности. 

Мы стараемся придерживаться второго подхода, и на это есть несколько причин.  

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

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

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

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

Я более 11 лет работаю в преподавании, и сейчас ребята, которых я готовил еще к ЕГЭ, уже работают в крупных компаниях. Я периодически пересекаюсь со своими бывшими студентами на хакатонах и олимпиадах, и ставлю себе мысленные заметки «вот студент, который прошел ожидаемый путь развития; было бы неплохо посмотреть, как он может применить опыт на проекте, где я сейчас работаю». Конечно, это очень долгосрочная и туманная по результатам работа, но в плане результатов игра стоит свеч. 

Нашу работу со студентами можно разделить на 3 основных этапа: 

  1. Работа в вузе. Для того, чтобы заинтересовать самых перспективных студентов, мы начинаем работу не с рекламы собственного блога или группы в социальных сетях, а с онлайн и офлайн работы в вузе — лекции, семинары, участие в вузовских мероприятиях. 
     

  2. Студенческая практика. Это обязательная часть обучения в вузе, цель которой — закрепить полученные знания. Каждый учащийся должен «найти» себе место для практики и отчитаться о ней, так что со стороны студентов «спрос» всегда есть. Но бизнес заинтересован в том, что привлечь самых талантливых и мотивированных, и для этого мы так много работаем на 1 этапе. 

  3. Стажировка. Это не обязательная часть обучения, которую мы предлагаем лишь тем, кто хорошо себя показал на 2 этапе. Мы принимаем студента в штат компании и платим ему зарплату. 

Сотрудничество с вузами 

Вот что мы делаем для того, чтобы найти и привлечь лучших студентов: 

  • Участие в университетских хакатонах, олимпиадах и дипломных работах в качестве экспертов.  

  • Преподавание в вузе. 

  • Открытые занятия и семинары на территории вуза. 

  • Студенческая практика. 

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

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

В вузе студента стоит научить базовым вещам — языку C++, принципам ассемблирования и компиляции, способам организации памяти на «железном» уровне и др. Да, этого не будет в списке требований к Android-кандидату. Как, наверно, не будет и в 98% других вакансий. Вуз дает ту теоретическую базу, которая позволяет, например, видеть протекающие дыры в абстракциях (по выражению Джоэла Спольски, сформулировавшего Закон дырявых абстракций).

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

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

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

Многие студенческие проекты страдают не столько от низкой степени технической проработки (как будто в большом бизнесе такое не встречается!), сколько от непонимания в целом — зачем и для кого предназначен объект исследования. Студентам всегда тяжело даются фреймворки, процессы разработки и прочие «бытовые» вещи в IT-разработке. Без практики знания о таких вещах сложно усваиваются. Мы стараемся помочь студентам разобраться в этих процессах — подсказываем, где применение фреймворка поможет сэкономить драгоценное на хакатоне время, проводим игровые занятия с разбором ролей в команде разработки и в бизнес-процессах. 

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

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

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

Студенческая практика 

Я встречал множество способов организации студенческой практики — от «принеси диплом на подпись в последний день» до «вот тебе бизнес-фича в реальном проекте, у тебя как раз две недели, должен успеть». 

Мы практикуем групповые студенческие работы. Во время прохождения такой практики студенты делают совместный проект под присмотром практикующего специалиста. 

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

Наш воркшоп QARATE. В нем приняли участие в том числе и мои стажеры. 

Обязательное время в офисе и минимум часов мы не обозначаем. Посещать занятия тоже не обязательно — материалы можно изучить самостоятельно (хотя это и очень сложно). 

Практика у разных курсов длится по-разному — от 2 до 10 недель. Но кроме этого мы периодически устраиваем расширенные практики с возможностью дальнейшей стажировки. В этом случае практика будет длиться в среднем 6-10 недель. Студенты могут завершить практику точно в срок, регламентированный вузом, получить необходимые документы и возвращаться к учебе. В случае же, если студент выберет, успешно завершит нашу «расширенную» практику и хорошо себя проявит — мы можем предложить ему дальнейшую стажировку.  

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

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

Для меня главным критерием готовности человека к стажировке является умение быстро и в необходимой мере учиться. Так или иначе, стажировка — это процесс интеграции в реальные проекты и процессы компании. Здесь просто необходимо научиться учиться. Если студент проявляет все необходимые предпосылки, мы предлагаем ему стажировку. 

Стажировка 

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

Мы сформулировали несколько причин, почему стоит максимально отложить привлечение начинающих специалистов к боевым проектам: 

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

  2. Поэтапное внедрение в процессы. Тяжело с ходу разобраться во всех особенностях работы в IT. Стажировка — один из способов поэтапного внедрения в компанию. 

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

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

Стажировка и стресс 

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

Что мы делаем для поддержания студента: 

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

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

  • Учебные каникулы для сдачи сессии. Так как под стажировкой мы понимаем в первую очередь образовательный процесс, мы стараемся не задействовать стажеров в коммерческой разработке. Это позволит студенту безболезненно взять отпуск и сдать сессию или долги. 

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

Стажировка и оплата 

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

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

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

Что считается успешным завершением стажировки

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

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

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

Ну и наконец, в-четвертых, это готовность (в первую очередь временнАя) к работе на реальном проекте. Здесь важно иметь необходимое для работы количество часов, а также возможность участия в плановых созвонах и совещаниях.  

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

И наконец, после того, как все критерии соблюдены, мы можем предложить стажеру позицию разработчика. 

Что дальше?

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

Кроме этого, студент принимает участие в экспертизе других разработчиков (попросту code review). Я считаю, что для этого крайне важно привлекать специалистов разных уровней. Так и дилетантские ошибки найти проще (а опытные разработчики часто их пропускают), и вырасти команде разработки проще. В конце концов, Junior-разработчику тоже нужно разбираться в чужом коде, и лучше начинать это делать уже на этапе code review. 

Вместо выводов 

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

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

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

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

Полезные ссылки: 

«Зачем студенту стажировка: 7 аргументов “за”» на hh.ru 

«Рабочие будни программиста: ожидания и реальность» в блоге Mail.ru Group 

«Топ-10 качество программиста. Мнение лучших работодателей» на geekbrains.ru 

Теги:
Хабы:
+10
Комментарии 7
Комментарии Комментарии 7

Публикации

Информация

Сайт
arcadia.spb.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Дмитрий Адов