Интервью: Как живётся стажёрам-разработчикам в Русфинанс Банке?
Мы пообщались с двумя парнями, которые ещё вчера были стажёрами, а теперь работают в штате. В основном они пишут код на Java, а также широко используют внутренний фреймворк банка. В некоторых проектах на фронтенде используют React.js.
Оба — студенты, которые смогли совмещать стажировку и учёбу на очном. Они утверждают, что попасть на стажировку в крупную международную компанию возможно даже не имея большого опыта за плечами. Главное — знания и желание. О том, как стать стажёром, хорошо зарекомендовать себя и попасть на работу в штат, читайте в интервью под катом.
Почему ты выбрал для себя карьеру в ИТ? Чем тебе интересна разработка?
Миша: С детства тянет в ИТ. Во-первых, это мне всегда было интересно. Это, можно сказать, моя страсть. Во-вторых, у меня отец ИТ-специалист с 20-летним стажем, тоже разработчик на Java. Он однажды сказал мне: «Миша, выбирай Enterprise, выбирай Java». Я ни разу не пожалел. Это одна из самых дорогих отраслей и один из самых дорогих языков, которые сейчас есть на рынке.
Мне интересно узнавать новое, превращать код во что-то работающее. Как по мне, это прикольно. Чувствуешь себя творческим человеком.
Данила: С детства любил точные науки — математику, информатику и химию. Я выбирал между экономикой и ИТ. Понял, что ИТ мне ближе.
Мне нравится разработка, потому что можно использовать нестандартные решения. Всегда хотелось создавать продукты, которые будут упрощать жизнь людей.
Как ты узнал о программе стажировок в Русфинанс Банке (РФБ)?
Миша: Я создал резюме на hh.ru, и получил приглашение пообщаться. Рекрутеры банка нашли меня сами.
Данила: В РФБ я присылал резюме сам.
Почему выбрал этот вариант? Какие ещё компании ты рассматривал?
Данила: Я рассматривал Сбербанк и консалтинговые компании.
Один из вариантов мне не подходил по графику. Сбербанк тоже предложил стажировку, но в итоге я выбрал РФБ. К тому же, здесь мне предложили сделать полноценную запись в трудовой книжке, то есть, с самого начала фиксировать стаж работы по специальности. И в целом условия РФБ предложил более интересные.
Миша: Мне понравилось общаться с HR, и с начальником управления. Я подумал, почему бы и нет. У меня были другие предложения, но они долго тянули. А здесь всё произошло очень быстро — буквально за полторы недели.
Я долго изучал Java и сегмент Enterprise, посещал курсы, я готовился к этому. Так что, уже на втором курсе я задумался о работе по специальности.
Какие этапы отбора ты прошёл?
Миша: Было два этапа. Первый — это интервью, нужно было рассказать о себе. Я приехал в офис на Земляном валу. Там были HR и начальник управления. В основном мне задавали вопросы чисто биографические, но иногда и простые технические вопросы.
Потом мне дали технические задания. Их нужно было сделать дома. Я их достаточно легко решил, и потом меня пригласили на техническое интервью. Мне задавали вопросы по тем заданиям, которые я решил, а также давали небольшие задания по ходу разговора. Например, нужно было найти ошибки в предложенном примере кода.
Данила: Да, у меня примерно так же всё было.
Какие технические задания выполнил? Насколько сложными они были?
Миша: Они были направлены на ядро языка, на основы. Кроме того, пришлось разбираться с интеграцией со сторонними библиотеками. Например, мне нужно было разобраться с библиотекой запуска С-кода из-под Java. Я также делал задание на сравнение REST с GraphQL.
На выполнение задания давали неделю. А я постарался справиться быстрее: в итоге увлёкся и всё успел за один день.
Данила: Там была в основном теоретическая часть и несколько практических задач. На выполнение мне дали пару дней.
После этого было техническое собеседование — вопросы по Java и по разработке в целом, а также несколько практических задач. Все задачи были несложные, хотя некоторые, всё же, заставили задуматься.
Было ли у тебя портфолио на GitHub на момент подачи заявки? Можешь поделиться ссылочкой?
Миша: github.com/Kazeev
Большинство проектов оттуда я не считаю интересными. Поэтому они закрыты. Но есть и открытые. В целом ничего такого там нет.
В стенах компании я сделал более интересный проект — написал простенький стартер.
Данила: github.com/Danilkashtan
До этого у меня был небольшой опыт коммерческой и некоммерческой разработки, но нельзя сказать, что чем-то можно похвастаться.
Насколько сложно было совмещать стажировку с учёбой? Сколько времени длилась стажировка? По какому графику ты работал?
Миша: Сейчас я перешёл на третий курс. У меня бакалавриат, очная дневная форма. Я учусь в МЭИ (Московский Энергетический Институт) на специальности «Прикладная информатика в экономике». Ректор подписал мне индивидуальный график. Я мог не посещать некоторые занятия.
На стажировку я тратил примерно 6 часов в день (30 часов в неделю). Я работал, например, в первой половине дня, а учился — во второй. Или наоборот. Приходилось вставать рано и ложиться поздно. Но вроде справился.
После перехода в онлайн (в связи с пандемией) стало полегче. Я перешёл на полную ставку. Работаю и учусь дома. Удаётся совмещать.
Данила: Я учусь в МИРЭА (Российский технологический университет), на специальности «Прикладная информатика в экономике». Когда началась стажировка, я очно проходил обучение на 3-м курсе.
Думал, будет сложнее: когда только пришёл в банк, ожидал, что там всё очень строго, чётко. Но на самом деле и руководство, и команда лояльно отнеслись к тому, что я студент. Я ходил на пары, которые нельзя пропускать, а в свободное от учёбы время навёрстывал: мне нужно было работать 30 часов в неделю.
Какие задачи ты решал во время стажировки? Был ли у тебя стажерский проект? Удалось ли довести проект, над которым ты работал, до конца?
Миша: Как такового стажёрского проекта у меня не было. Был список заданий, которые надо было сделать в рамках изучения самописного движка (и фреймворка), созданного разработчиками банка. На это мне дали две недели. Задания были простые, поэтому их выполнение у меня заняло примерно неделю.
Примеры заданий для стажёров: добавление элементов управления на некоторую информационную форму; настройка элементов управления; извлечение данных из БД и их отображение; редактирование данных, настройка видимости полей ввода; создание общей структуры приложения; добавление новых модулей приложения; создание информационных сервлетов (термин относится к технологии JavaEE), которые возвращают некоторые данные по запросу.
И после этого я понемногу стал брать «боевые» бизнес-задачи. Сначала они были небольшие (подправить строчку, добавить колонку). Через 4–5 месяцев получил более крупное задание — разработать внутренний модуль для нашего фреймворка.
Там было сложно, потому что пришлось делать очень много работы с конвертацией форматов. Если раньше из БД приходили уже подготовленные данные, то в этот раз нужно было принимать и обрабатывать чистый JSON. Но вроде справился.
Данила: Отдельного проекта не было. Сначала я работал над задачами для изучения внутреннего фреймворка. Через месяц я попал в SCRUM-команду и присоединился к работе над продуктом.
С какими технологиями ты познакомился за время стажировки? Какие навыки приобрел?
Миша: Я изучил фреймворки банка, а также другие проверенные библиотеки, которые помогают ускорить разработку. Из крупных изменений — мы начали разносить front и back, применяя ts и java. RPC будет заменятся на REST, а gwt на react. И я этому рад: теперь у меня появляется опыт работы с новыми технологиями.
Опыта в коммерческой разработке до этого у меня не было. Раньше я не работал в командах с чётко разделёнными обязанностями. А в банке научился самостоятельно оценивать и распределять своё время, разбираться в ТЗ. Но, наверное, главное — взаимодействие с коллегами и общение.
У меня появилось больше понимания, как лучше отлаживать код, как заранее предусмотреть риски. По возможности, достаточно много времени команда уделяла code review и рефакторингу.
Отдельный навык — это работа с legacy-кодом. Мне приходилось много разбираться. И в том числе изучать внутренний фреймворк банка.
В новых проектах всё проще. Там мы пишем чистый back-end с использованием REST.
Данила: На стажировке я разобрался с внутренним фреймворком банка, а также с SVN, REST, RPC, React.js и Formik (библиотека для создания форм). В общем-то, не так важны технологии, как получение опыта коммерческой разработки, взаимодействия с командой.
Часто обучить молодых специалистов «с чистого листа» тем навыкам и технологиям, которые нужны нам, бывает выгоднее, чем переучивать специалистов с опытом работы.
Как ты относишься к legacy-коду?
Данила: С пониманием. Люди приходят и уходят, после них остаётся код. Я думаю, банк — это объективно не та организация, которая может быстро избавляться от legacy-кода. Безусловно, нужно стремиться к этому. Это позволят смотреть на то, что есть, и делать лучше.
Хотя и в других, более мелких или гибких, проектах тоже можно довольно быстро наделать ошибок и тянуть их из релиза в релиз.
Как проходила твоя адаптация и обучение? Был ли у тебя ментор/наставник?
Миша: Я стажировался в офисе. У меня был свой ментор, который целенаправленно занимался моим обучением. Он рассказывал о системе, давал задания и следил за их выполнением.
Или, например, когда мы перешли на REST и Jersey RESTful Web Services, у нас с ещё одним стажёром был дружеский парный code review. В нашей с ним работе произошёл небольшой рассинхрон. Нам указали на эти мелочи, и мы всё поправили.
Если стажёр выполняет «боевые» задачи, то code-review мог проводиться сотрудниками подразделения, к которому прикреплён стажёр.
Данила: Я тоже проходил стажировку в офисе. Это было задолго до пандемии. Каждый день ментор находил время, чтобы научить меня чему-то новому касательно работы с фреймворком (начиная с самого простого — добавление кнопок и полей на форму, взаимодействие с БД и так далее).
Кроме того, он проверял задачи, которые я выполнял. Было очень комфортно. Через неделю я уже стал понемногу брать боевые задачи.
Один ментор в РФБ может обучать до 3-х стажёров одновременно и тратить на это до 50% рабочего времени.
С какими сложностями/открытиями ты столкнулся в процессе?
Миша: Было сложно разбираться в большом количестве чужого кода. Но это такой навык, который приходит со временем.
Данила: Самое главное моё открытие — это погружение в коммерческую разработку. Твой код проходит большое количество проверок, он должен соответствовать требованиям, корпоративным стандартам.
Хотя в какой-то момент это представляло для меня сложность. Однако я довольно быстро понял, что в этом есть преимущества. Например, можно писать свой код на базе чужого кода, который уже написан для решения похожей задачи и уже соответствует корпоративным стандартам.
Кроме того, я был удивлён, что в такой серьёзной организации люди окажутся весёлыми и открытыми.
Насколько оправдались твои ожидания от стажировки?
Миша: Полностью оправдались. Я получил hard skills и soft skills. Хотя в целом задачи не сложные, но ресурсоёмкие.
От меня требуется выполнение простых операций с данными, но мне пока больше и не надо.
Данила: Стажировка превзошла мои ожидания, наверное, по всем пунктам. Особенно хочу отметить лояльное отношение к студентам-стажёрам и возможность совмещать с учёбой.
Как ты попал на постоянную ставку в штат? Что для этого сделал?
Миша: Наверное, это как раз произошло после того, как я с нуля самостоятельно реализовал тот модуль, о котором говорил выше. Это был действительно сложный модуль.
Данила: По итогам стажировки мой ментор охарактеризовал меня как человека, который может быстро разобраться и влиться в работу. Коллеги прислушались к нему. Так я был принят в штат, оставшись в SCRUM-команде.
Я быстро учился, быстро находил нужную информацию и варианты её использования. Вот поэтому и попал в штат.
Критерии отбора стажёров для работы в штате — стандартные: успешное прохождение обучающего этапа (в частности, усвоение теоретического материала, успешное решение практических заданий); успешное выполнение первых «боевых» заданий в установленные сроки; умение работать в команде; готовность к изучению применяемых в банке технологий, проявление интереса к предлагаемым задачам.
Что изменилось после твоего перехода в штат? В какой команде ты сейчас работаешь? Над какими задачами?
Миша: Я как работал в команде «Гармония», так и продолжаю там работать. У нас активно внедряют новые технологии.
Данила: Я стал выполнять более сложные задачи. Например, сейчас я создаю UI с использованием React.js. Это вообще новая для банка технология. Приятно, что мне доверили такую ответственность.
Чем тебе нравится SCRUM в целом и SCRUM-команда РФБ в частности?
Миша: Наша команда шла в сторону SCRUM и сейчас, наконец, дошла. Нам ещё только предстоит построить работу в рамках этой методологии.
Нам помогают аналитики, которые выдают очень детальные ТЗ: «добавьте кнопку сюда», «добавьте кнопку туда», «сделайте такое-то окно». Посмотрим, что будет дальше.
Данила: Мне нравится SCRUM. Это объединяет, это весело. Ты постоянно общаешься с людьми, которые делают один продукт, ты видишь цели команды, видишь направление, в котором развивается проект.
Однако мы не боимся выходить за рамки SCRUM Гайда, немного подстраивая процессы под себя.
Какие советы ты можешь дать начинающим специалистам? Какие навыки им стоит прокачивать?
Миша: Во-первых, не жалейте времени на подготовку. Нужно стремиться идеально соответствовать требованиям вакансий. Не думайте, что какие-то требования там написаны просто так и вас о них не спросят.
Во-вторых, студентам рекомендую участвовать в хакатонах и подобных мероприятиях. Например, в Москве очень много открытых площадок, на которых они проходят. Там молодые разработчики могут получить базовые soft skills, хорошо проявить себя, получить медали, грамоты.
Это безусловно будет плюсом к вашему резюме.
В-третьих, проходите курсы разработки, курсы повышения квалификации. Есть много бесплатных курсов в том числе.
Данила: Возможно, университет не даёт hard skills, но он учит быстро находить информацию и вникать в неё. Я бы посоветовал прокачивать именно этот навык.
Кроме того, советовал бы прокачивать soft skills, то есть побольше общаться с незнакомыми людьми. Например, сейчас я уже вижу, что в нашу команду мы набираем людей, ориентируясь на то, насколько нам будет комфортно с ними общаться.
И последнее: не бросайте учёбу ради работы. Мне кажется, лучше потратить больше времени на поиск работы, которую можно будет совмещать с учёбой.