Привет, меня зовут Валерий Антонов, я руковожу направлением Java в Уральском банке реконструкции и развития (УБРиР).
Осенью у нас окончилось обучение в двух школах Java. По итогам работы мы приняли в штат двух учеников школы Java, а несколько сотрудников банка сменили свои должности, став разработчиками на языке Java. В этой статье я расскажу, как мы запускали школу, кого учили, какая была программа и с какими сложностями мы столкнулись. Надеюсь, статья будет полезна тем, кто собирается запускать свое обучение, а также тем, кто стоит на распутье в изучении Java и не знает, с какой стороны подступиться.
Предпосылки
Вторая половина этого года для УБРиР ознаменовалась значительным ростом потребности в разработчиках разного уровня. При этом зарплатные ожидания кандидатов взлетели на такие высоты, откуда землю-матушку уже и не разглядеть. Как не разглядеть и собственных проблем в элементарных знаниях.
Рынок диктует, какие технологии востребованы, за что больше платят. Разработчики учат то, что чаще упоминается в вакансиях, оставляя нюансы на потом. Эдакий технический долг, который тянется до лучших времен. Не будем же их осуждать, в конце концов, мы не видели проектов без техдолга. Перед тем, как запустить школу, мы активно искали разработчиков на рынке и выделили два условных перекоса у разработчиков:
кандидаты, которые разбираются во фреймворках, могут пилить высокоуровневые задачи, но не знают основ. Так как наша цель - пересесть с иглы легаси на колеса микросервисов, нам нужны люди, которые могут копать глубоко и понимают суть задачи чуть глубже;
кандидаты слабо разбираются во фреймворках, что, впрочем, не мешает им писать что-то однотипное. Человеку дали функцию, а он по аналогии как-то сделал. Может он однотипные домики лепить, но у нас домиков нет, у нас здоровенный котлован. И вот с ним у кандидатов уже начинаются проблемы.
Итог: и те, и другие не подходили для наших масштабных работ. Большие мускулы, но тоненькие ножки. Таких специалистов можно нанять и переучить, но они просят большие деньги. И процесс обучения не стоит того. Так появилась идея самим подготовить себе кадры.
Когда учил только Spring, но пропускал лекции по Java Core
О сроках
Обучение в первой школе длилось 4 месяца, во второй - в 4 раза меньше. Почему мы решили сократить сроки обучения? Первая причина упирается в деньги: бюджет банка не резиновый. Лектор, проверка домашних работ – все это затраты, которые увеличиваются с продолжительностью курса. Вторая – время текущих сотрудников. Мы не хотели затягивать обучение, чтобы долго не отвлекать сотрудников с домашками и дополнительной нагрузкой.
Правда, потом мы очень пожалели, что сильно сократили сроки обучения во второй школе. Ребята не успевали сделать домашние задания, и в итоге - подготовиться к дипломной работе. Хотя в результате ребятам немного “свезло”: из-за больничного и отпуска лектора у студентов образовался зазор, во время которого они успели нагнать программу и закрыть свои “хвосты”.
Точно могу сказать. Закладывайте время на форс-мажоры, иначе можно потерять студентов под конец обучения. Они как загнанные лошадки: не смогут двигаться дальше под тяжестью невыполненных задач.
Воронка
Первое звено: 55 сотрудников + 7 внешних кандидатов
Первый отклик от сотрудников на открытие школы Java - 55 человек. Разработчики PHP/Oracle/АВAP, аналитики, ребята из техподдержки и сотрудники самого банка заполняли анкету, чтобы разобраться, зачем им школа и как они будут применять полученные знания в работе.
Кто-то хотел пересесть на Java, кому-то пришлось самому разбираться в ней для проекта и хотелось поднять свой уровень. Интересно, что среди аналитиков было большое количество желающих поучиться, при этом у них не стояла цель стать разработчиками на Java, они хотели расти в профессиональном плане - более грамотно ставить задачу. Если аналитик знает, как работает код, то он сможет точнее поставить задачу, заранее понимать, сработает ли всё так, как хочет заказчик, или нет, возможно-невозможно.
Аналитиков для обучения мы не взяли. Во-первых, им не был нужен тот уровень, который давали в школе. Во-вторых, все лекции и материалы презентаций обучения мы открыли для сотрудников банка. Лекций без практических заданий хватает, чтобы закрыть потребности в знаниях аналитиков.
Открывайте доступ на внешнее обучение своим сотрудникам. Это поможет сохранить те кадры, которые сейчас работают, страдают, но молчат.
Второе звено: 8 сотрудников + 7 внешних кандидатов.
За два потока школы прошли 21 человек. В первый поток мы включали только сотрудников, так как нам требовались погруженные в банковские процессы люди. Мы не были готовы обучать новичков, для них элементарно не нашлось бы менторов. Сотрудников выбирали по следующему принципу: у кого сейчас в проекте есть Java или кто мог бы мигрировать со своего проекта на Java-проект. К слову, часть сотрудников собиралась сменить компанию именно из-за стека, они хотели перейти на другую технологию, но у нас пока не было такой возможности. О планах некоторых сотрудников покинуть УБРиР мы узнали позже, и большой радостью стало, что школу мы уже запустили и взяли конкретных сильных людей, избежав затрат на подбор, адаптацию и закрытие кадровых дыр в проектах.
Второй поток мы разделили на две части: текущие сотрудники и кандидаты, когда-то не прошедшие собеседование в компанию. У нас сохранился список начинающих разработчиков, которые не смогли пройти техническую часть собеседования, но были потенциально перспективными и приятными людьми. Рекомендую: договаривайтесь о возможном сотрудничестве с потенциально подходящими приятными кандидатами заранее, когда у вас только появляются мысли об обучении. Это сократит время на подбор студентов.
Третье звено: джава-разработчики 5 сотрудников + 2 внешних кандидата
Стратегия брать в студенты сотрудников не дает 100% прохождения воронки. Три человека в первом потоке не стали менять проект и пересаживаться на Java, хотя прошли обучение до конца и защитили диплом. Мы связали это с тем, что человек не хотел уходить из конкретной команды и готов вернуться к коду на Java, когда мы будем добавлять технологии Java в его команде.
Из внешних кандидатов мы взяли двух лучших учащихся и определили в команды. Я не был удивлен этими результатами и даже не ожидал принять больше. Да и больше джунов мы бы просто не устроили в команды.
Не стоит ждать, что после обучения к вам придет большой поток сотрудников, мы, например, закладывали 20%. Если у вас был такой опыт - поделитесь, каким оказался процент трудоустройства с курсов или внешнего обучения. К слову, у онлайн-школ примерно 10% учеников находят работу.
Как строилось обучение
Мы не стали изобретать велосипед и пригласили специализированные учебные центры. Для первого потока программу выстраивал лектор исходя из собственного опыта, во второй школе мы верстали программу сами, учитывая также мнения команд.
Занятия проходили два раза в неделю по 3 часа. плюс домашние задания. Задания проверялись так: выполненное задание заливается в git-репозиторий, преподаватель проверяет и дает комментарий. Мы отказались от платформы для общения ученик-учитель, в пользу git-репозиториев и общих чатов. Так ученики получали ответы в чатах быстрее и могли помогать друг другу, а отправка заданий создавала привычку использования гита. Они показались нам слишком песочницами.
Основные сложности были с программой обучения, потому что аудитория курса оказалась слишком разношерстной. Семь человек на начинающем уровне Java, двое пишут на Java в компании из производственной необходимости, у них образовался разрыв между текущими задачами и фундаментальными знаниями, остальные сильные мидлы, которым не нужны прописные истины, но нужны тонкости языка.
Поэтому мы в банке адаптировали программу под себя, то есть добавили разделы, которые выходят за рамки стандартов обучения: многопоточность, тестирование и тому подобное.
Столкнулись мы и с другой проблемой – временные и финансовые ограничения отбросили часть программы. Ниже приведу программу месячного курса второго потока.
(скрываемый-раскрываемый раздел)
Основы объектно-ориентированного программирования
Реализация ООП в Java
SOLID принципы
Коллекции
Потоки
Исключения
Тестирование
В первом потоке дополнительно изучались Spring Boot и Hibernate
Когда строите школу, отвечайте на вопросы:
1. какой уровень знаний и опыта у аудитории;
2. что для них будет полезной информацией, а на что вы просто потратите ресурсы;
3. есть ли внутренние возможности самим давать эти знания или лучше привлечь партнера.
И что же в итоге?
Что в результате мы получили:
5 “официальных” джавистов и 10 амбассадоров, способных включаться в разработку на Java в случае необходимости;
2 новых сотрудника-джуна;
база знаний для аналитиков и всех желающих поднять свой уровень образования;
проект, мотивирующий сотрудников делиться знаниями
О последнем пункте расскажем подробнее. Школа получилась вовлекающей: несколько МР-ов выступили перед студентами и рассказали о своих командах. Кроме этого специалисты банка прочитали студентам лекции про использование системы контроля версий и использование системы багтрекинга, а аджайл-коучи организовали тренинг про жизнь в аджайл. Почему это было полезно? Во-первых, внешние ребята лучше узнали структуру команд. Во-вторых, такой формат обучения стал первыми шагами в построении комьюнити банка. Но это совсем другая история)
Отобрать новых сотрудников из числа студентов было просто - по итогам дипломных работ. Двое студентов защитили дипломные работы на высоком уровне без дополнительного времени на переделывание, и после знакомства команд с кандидатами мы забрали этих ребят в штат. На этом отбор закончился.
Собирайте лекции и дополнительные материалы в отдельную папку с удобной навигацией. Когда вас начнут расспрашивать “а где посмотреть можно?”, вы скажете себе спасибо)
Теперь раз в неделю я провожу консультации, на которых готов ответить на вопросы и подсказать, в каком направлении двигаться в Java. Я помогаю разобраться с языком, решать конкретные кейсы и сформировать путь развития.
Закладывайте время на дальнейшую поддержку своих студентов, обязательно выделяйте менторов и организуйте консультации, встречи для обсуждения проблем. “Варите” своих студентов в одном котле и помогайте им не выгореть после новых навыков.
Ну и о профите
Планируя обучение, мы рассматривали за основу принцип Парето, принцип 80/20. Превышение целевого показателя в 20% можно рассматривать как несомненный успех проведенных мероприятий. Первый поток: на входе 6 сотрудников, из них 3 стали разработчиками на Java
Второй поток: на входе 7 сотрудников, 2 разрабатывают на Java; на входе 8 внешних кандидатов, из них 2 приняты разработчиками в штат банка. Хочется добавить, что у нас оказалось более продуктивным внутреннее обучение, а не набор извне. Мы решили не брать на себя обучение новичков, но интегрировать с помощью стажировок тех, кто уже где-то учился и готов к развитию. Оставим внутренние школы, чтобы поднимать уровень знаний собственных сотрудников, этот вариант оказался самым благоприятным.
Комментарии (21)
xakepmega
17.01.2022 14:15+7Почему банк не может себе позволить нанять себе синьйоров лидов и тд, профессоналов своего дела? Я бы не хотел доверять свои "деньги" джунам
wolfy_str
17.01.2022 14:33+2Потому что лидов и мидлов на рынке нет от слова совсем. На 2 вакансии мидла по 1 разработчику. Потому сейчас курсы реально работают, что бы сразу закинуть человека на мидла, потому что среди джунов творится дикий трэш - во первых по 20 человек на место, во вторых джунов вакансий реально без преувеличения меньше чем мидлов. И это как то не правильно как и "конские" зарплаты по мнению некоторых. Никто обучать не хочет легче дать 250к сразу миддлу. А на зарплаты в 30-50к у джунов конкуренция не хилая. Если не доверяешь - тогда плати по четверть миллиона за миддла, который ещё не факт как себя проявит после собеседования.
k-morozov
17.01.2022 16:32+7Не хотел бы я работать вместе с мидлом, который после курсов. Курсы - это про джунов. А мидл - это уже опыт, которого никакими курсами не наберешь.
wolfy_str
18.01.2022 21:32знаю что после курсов некоторые ребята становятся СТАРШИМИ программистами) а ты не бойся, есть места где учат. Хотя, да, миддл+ всё таки для этого опыт нужен
nikit_ozz
17.01.2022 14:38+1Возможно дело в том, что команда, состоящая из одних сеньоров будет недостаточно эффективна на длительной дистанции. Не все задачи требуют бешенного опыта и скиллов, и опытным разработчикам очень скоро надоест пилить модельки и заниматься прочей рутиной. Я не имею ввиду, что надо собирать команду из одних джунов, тут как раз важен балланс, чтобы сеньоры занимались более отвественными задачми (задачами-вызовами, о которых не стыдно будет написать в резюме), а джуны прокачивали опыт, воюя с более-менне простыми задачами под контролем менторов (тех же сеньоров)
wolfy_str
17.01.2022 14:56+1А не синьорам должно быть с стыдно писать резюме или они не люди? На рынке какая то дикость, просто зайдите и посмотрите число вакансий на миддлов и джунов. Мидлов будет больше, хотя понятно, что должно быть наоборот. Но джунов никто не хочет. Даже по своему опыту прохождения собесов могу сказать. Требования сильно повысились и теперь джун как бы должен дофига всего знать :) А знаете прочитать про микроархитектуру бывает не так уж сложно и не так уж объёмно по сравнению с "первоночальным" багажом знаний. Согласен что миддл должен уметь в микроархитектуру и фреймворки, а джун об этом знать только в теории. Но чёт по рынку не скажешь что джуны нужны. Всем нужны "линейные" специалисты (как линейные корабли) с уровнем миддл+ за 300к, но на которых можно сразу плыть. Чисто по моему субъективному опыту обзора рынка. Хотя если кто не знает про зарплаты в 300к можно урезать и предлагать уже 150к за ту же работу. Кстати лайфхак для работодателей - многие специалисты далеко не знают себе цену и тянут уровень миддл+ за 100-150к считая это нормой, сравнивания с другими нищенскими зарплатами у себя в регионе.
nikit_ozz
17.01.2022 15:42Ни в коем случае не спорю о ситуации на рынке) Бардак полнейший. Я писал с точки зрения процесса организации труда, про сферическую команду в вакууме и как я вижу ее эффективную компоновку. Куда движется процесс найма мне не очень понятно. Средняя продолжительность работы в одной компании сокращается. Чтобы стоять на месте бежать нужно все быстрее. И как следствие инвестиции в выращивание и обучение сотрудников становятся более рискованными. Компании решают не рисковать и брать готовых, только вот готовых больше не становится.
andreyverbin
17.01.2022 18:59+1Их ещё найти надо. Похоже хорошие специалисты работу не ищут, она их сама находит. Потому на hh остаются очень странные кадры. Это гипотеза, подтверждается только моими наблюдениями. Из ~10 спецов высокого класса, которых я знаю, ни один за последние 10 лет не публиковал резюме на hh.
inkvizitor68sl
17.01.2022 21:35Ну на HH почти никто не публикует, факт - все на linkedin есть. Но вот по статусу "ищу работу" даже там нет смысла искать людей.
(а российские HR в основном тусят на habr-карьере, как ни странно. Разошлись по разным платформам, ага).
JLavlinskaya
19.01.2022 09:56В коменде из одних сеньеров они либо поубивают друг друга, либо очень быстро выгорят. Простые задачи сеньоры пилить не должны, всегда необходимо иметь несколько джунов на подхвате, так ресурсы равномерно распределяются и команда не стагнирует.
ItsGreyDay
17.01.2022 15:101)Оцените, сколько из внешних кандидатов можно было бы брать без обучения, как стажеров на 2-3 дня в неделю ( а остальное время они учатся дома по заданным темам) - и учить в процессе работы с ментором? Хотя не понятно что затратнее - время менторов, которые бы давали темы обучения и иногда отвечали на вопросы, или же внешние обучающие.
Мы когда делали свою джава-школу 2 года назад , то оказаалось, что тез кого взяли, можно было брать и пораньше - на середине или начале обучаения. А тех кого не взяли и с джава школой не взяли в итоге.
2)База знаний, сомнительный плюс: мало материалов в интернете ? зачем городить свой огород в который раз.
KoteMilote
17.01.2022 15:38+3Аналитиков для обучения мы не взяли. Во-первых, им не был нужен тот уровень, который давали в школе.
Взяли и прокинули аналитиков, хотя они сами просились. То что вы материалы открыли ни чего им не даст, материалов и так много. Аналитикам нужен навык ковыряния в коде, вот его и надо прокачивать, откройте отдельную школу по Java для аналитиков или скажите им что они не в фокусе.
souls_arch
17.01.2022 18:20+6Глубокие основы и фреймворки + куча того, что откладывают на потом, так и остается нетронутой, а это куча бывает на года от sql до алгоритмов и структур данных. И это вы решили давать за 4 месяца, а потом за 1? Ну-ну.
"Эффективный" менеджмент и экономика во всей красе. А то люди годы тратят, дураки такие.
elisoff
18.01.2022 16:45+++ 4 месяца жавы для работающих сотрудников(некоторый без опыта в ИТ) это слишком мало.
iiwabor
18.01.2022 10:30Обучение сотрудников и повышение квалификации - это очень нужное и важное дело! Респект вам и уважуха!
Это может не так заметно со стороны, но специалист, повысивший свой уровень, и сам себя увереннее чувствует - и в работе и по жизни, и начальство к нему более уважительно начинает относиться, боясь что он уйдет если что не так. Это хорошо.
ivan_nesterov
19.01.2022 09:57И все таки - Core был или нет?
Длительность 4 мес по 6 часов в неделю - 96 часов. Помню в институте только основы ООП целый семестр шло.
gtbear
А как вы закрывали риск, что эти обученные сотрудники ощутив свои силы уйдут в рынок на конские зарплаты?
Zhbert
Они же не сразу уйдут, а к тому времени можно и новых обучить =)