Хабрахабр

Нужен готовый джун — научи его сам, или Как мы запускали курс семинаров для студентов

image

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

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

Значит, надо пойти и самим их научить: познакомить с компанией и дать материал, который нужен для работы у нас. А мы хотим готовых студентов, которые немного программировали на С++, знакомы с Angular и видели Linux. Зимой прошлого года мы её реализовали, а в этой статье расскажем, как это было. Так родилась идея организовать курсы по бэкенд и фронтенд-разработке.

Подготовка

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

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

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

Там как раз появился удобный коворкинг, а еще намечался День карьеры — встреча студентов с потенциальными работодателями, куда мы регулярно ходим. Первые семинары решили провести для ребят с киберфака ИРНИТУ. В этот раз как обычно рассказывали о себе и вакансиях, а еще приглашали на курс.

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

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

Не все студенты знали, что такое бэкенд и фронтенд, и не все работали со стеком технологий, который мы применяем. Результаты опроса подтвердили наши предположения. Что-то слышали и даже делали проекты на C++ и под Linux, очень мало кто реально использовал Angular и TypeScript.

К началу занятий набралось 64 студента, этого было более чем достаточно.

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

Содержание лекций

Но стремились показать процесс разработки в современной продуктовой компании и заодно познакомить с нашим стеком технологий. Мы понимали: за курс из восьми занятий невозможно научить программировать на C++ или создавать веб-приложения на Angular.

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

Вводная лекция

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

Разработчик бэкенда на вводной лекции шутит про подход к обучению: «Семинары будут как инструкция для начинающих художников: шаг 1 — рисуем кружочки, шаг 2 — дорисовываем сову»
 

Содержание курсов по бэкенду

В первой части затронули компиляцию, make СMake и Conan, многопоточность, методы и паттерны программирования, работу с базами данными и http-запросами. Часть занятий по бэкенду была посвящена программированию, часть — процессу разработки в целом. Во второй части говорили о тестировании, Continuous Integration и Continuous Delivery, Gitflow, работе в команде и рефакторинге.

Слайд из презентации бэкенд-разработчиков
 

Содержание курсов по фронтенду

Потом взялись за модули, научились пользоваться базовыми директивами и создавать компоненты. Сначала настраивали окружение: устанавливали NVM, с помощью него Node.js и npm, с помощью них — Angular CLI и создавали проект на Angular. Узнали, что такое сервисы и каковы особенности их работы в рамках отдельных компонентов, модулей и целого приложения. Далее разобрались, как перемещаться между страницами и настраивать роутинг.

Научились создавать формы, обрабатывать события. Ознакомились со списком предустановленных сервисов для отправки http-запросов, работы с роутингом. На десерт узнали о концепции реактивного программирования и таких инструментах, как RxJS. Для тестирования создали mock-сервер на Node.js.

Слайд из презентации фронтенд-разработчиков для студентов
 

Инструменты

Семинары подразумевают практику не только на занятиях, но и вне их, поэтому нужен был сервис для приёма и проверки домашней работы. Фронтендеры выбрали Google Classroom, бэкендеры решили написать свою систему рейтинга.

Сразу видно, что писал бэкендер 🙂 Наша система рейтинга.

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

Пока наша система по удобству уступает решению Google, но это поправимо: для следующих курсов мы её доработаем. Рейтинг привносил в занятия элемент соревновательности, поэтому мы решили оставить его, а от Google Classroom отказаться.

Советы

Оформили этот опыт в советы, вдруг кому-нибудь пригодится. Мы неплохо подготовились к семинарам и почти ни в чем не просчитались, но на несколько граблей всё-таки наступили.

Выбирайте время и распределяйте занятия правильно

Уже под конец занятий выяснилось, что наш курс пришелся на самое неудобное время учебного года — перед сессией. Мы понадеялись на университет, но зря. Иногда решения приходили в 4–5 часов. Студенты приходили домой после пар, готовились к экзаменам, а потом садились за наши задания.

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

На первые занятия берите коллег для помощи

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

Записывайте семинары на видео

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

Лектор говорит, камера пишет
 

Будьте готовы поменять подход, если это понадобится

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

Иными словами, давали студентам удочку, а дома они уже сами искали водоём, наживку и ловили рыбу — вникали в детали и разбирались с синтаксисом С++. В первой половине лекции стали подробно рассматривать предыдущее домашнее задание, а во второй части читать теорию к следующему. Такой подход оказался более продуктивным. На следующей лекции вместе обсуждали, что получилось.

Не меняйте преподавателей часто

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

Задавайте вопросы на каждом занятии

Они боятся выглядеть глупо и задавать «дурацкие» вопросы, стесняются прерывать лектора. Сами студенты вряд ли скажут, если что-то идёт не так. Так что если будет сложно, никто не признается. Это и понятно, ведь несколько лет они видели другой подход к обучению.

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

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

Устройте неформальную встречу в конце

Подарили подарки тем, кто продержался до конца, назвали пятёрку лучших, нашли новых сотрудников. Получив итоговое приложение на последней лекции, мы решили отметить это пиццей и просто пообщаться в неформальной обстановке. Были горды собой и студентами, ну и рады, что всё наконец-то закончилось :-).

Внутри пакета: футболка, чай, блокнот, ручка, наклейки
 

image
Вручаем призы.

Итоги

До конца занятий дошли 16 студентов, 8 по каждому направлению. По словам преподавателей вузов, это немало для курсов такой сложности. Пятерых лучших мы взяли или почти взяли на работу, ещё пятеро придут на практику летом.

Сразу после занятий запустили анкету, чтобы собрать отзывы.

Помогли семинары определиться с выбором направления?

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

Что оказалось наиболее ценным?

  • Новые знания: «в универе такого не получить», «свежий взгляд на дремучий C++», обучение технологиям для повышения продуктивности — CI, Git, Conan.
  • Профессионализм и увлечённость лекторов, стремление передать знания.
  • Формат занятий: объяснение и практика.
  • Примеры из реальной работы.
  • Ссылки на статьи и инструкции.
  • Классно составленные презентации лекций.

Они поняли, в каком направлении хотят двигаться и стали чуть ближе к успешной карьере в ИТ. Главное — нам удалось рассказать, что после окончания университета ребят ждёт много интересной и сложной работы.

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть