Меня зовут Ренат Тазиев.
Мне 22 года, я разработчик.
(Пишу код на чемпионате Урала по спортивному программированию.
) В июне я собрал вещи, сел на поезд Оренбург-Екатеринбург и поехал на летнюю стажировку.
До этого я ни разу не проходил стажировку, не уезжал на работу в другие города и не сталкивался с многотысячными компаниями.
Сейчас расскажу, как я решил это сделать, как проходил отбор, чем я занимался все лето и что интересного вспомнил.
Если вы студент и не знаете, нужна ли вам стажировка, добро пожаловать под кат. Год назад я тоже не знал.
Поэтому мой опыт будет полезен.
Решение
Я изучал «компьютерную безопасность» в ОГУ.За последние пять лет я много раз слышал, что начать карьеру можно со стажировки.
И я не сомневался, что это правильный путь.
Оставалось самое простое — выбрать компанию, в которой можно расти, а не топтаться на месте.
Впервые я услышал о Контуре на первом курсе.
я участвовал в Чемпионат Урала по спортивному программированию , а Контур был его спонсором.
(Привет всем ИТ-компаниям, которые не решаются инвестировать в студенческие мероприятия.
) И вот в декабре 2016 года я наткнулся вебинар о летней стажировке в Контуре.
Иногородним стажерам, прошедшим отбор, девушка с экрана пообещала компенсацию за проезд и проживание.
Я решил попробовать.
Селективная весна
25 января в сообщество ВК В образовательных программах Контура появилась необычная новость.Мы искали бета-тестеров для тестового задания для бэкенд-разработчиков.
Я откликнулся и получил тестовое задание на неделю раньше, чем другие стажеры.
В отличие от простого задачи на 2016 год , в 2017 году было необходимо разработать сервис статистики для многопользовательского шутера.
Были высокие требования к производительности и ограничения на используемые технологии.
Их мне хватило, чтобы перечитать кучу форумов и справочников еще до того, как я начал писать код. Отбор на стажировку проходил в две волны.
У первых было меньше времени, но больше свободы в выборе технологий.
Вторая волна могла работать дольше и анализировать типичные ошибки, но у нее было больше технологических ограничений.
Я был во второй волне и, будучи студентом, представил решение за несколько часов до крайнего срока.
Через четыре дня пришло «письмо счастья»:
Школа молодых программистов
Ускоренный курс начался в начале апреля.22 участника и два преподавателя собрались на загородной базе под Екатеринбургом.
В течение трех дней нас учили чистому коду, TDD, DI-контейнерам и обработке исключений.
(Добрый и злой учитель ускоренного курса.
) В последний день мы разделились на команды по 4-5 человек и попробовали командное развитие.
Вместе с участниками в команде был один наставник, который клавиатуру не трогал, а только советовал.
Команды решили одинаковые задачи и соревновались друг с другом.
Задача состояла из нескольких заданий, которые открывались каждые 90 минут. Каждые 15 минут мы выпускали наш модуль.
Задачи были не столько о добавлении новых функций, сколько о создании правильной архитектуры.
У каждой команды был рейтинг.
Его оценивали по количеству тестов, степени покрытия кода тестами и чистоте кода.
Если код в релизной ветке не компилировался, команда теряла очки.
(Я был в команде «Свет», мы заняли третье место).
Задание закрепило все знания и навыки, полученные в предыдущие дни, и познакомило нас с работой в команде «в боевых условиях».
CrashCourse был глотком свежего воздуха по сравнению с учебой.
Телеконференция
Двухнедельное молчание после ускоренного курса было прервано внезапным звонком.Чтобы пройти на следующий этап, мне предложили онлайн-интервью.
В нужный момент по ту сторону Скайпа меня ждали трое разработчиков и HR. Я был удивлён, когда увидел среди разработчиков знакомого человека — Финалист ACM ICPC Никита Бурлаков, выступавший за команду ИжГТУ.
Сначала HR поинтересовался моим опытом работы, интересами и планами на будущее.
Разработчики спросили, какую книгу вы прочитали последней.
Потом нам дали задачу: написать метод, определяющий наличие слова в файле.
Я понял, что мне нужно продемонстрировать навыки проектирования, написания чистого кода и определения мест для будущего расширения.
После задачи мы говорили об алгоритмах, структурах данных и шаблонах проектирования.
Добро пожаловать в Шир
Мне сказали, что я прошел собеседование и стал стажером.Вы уже знаете, что после этого я сел на поезд и поехал в Екатеринбург.
3 июля я прибыл в крупнейший офис разработки.
Этот офис находится на окраине города в районе под названием «Брод-Ривер» или сокращенно ШР.
Когда-нибудь она станет кремниевой долиной Урала (но это не точно), а пока здесь только контурные постройки, частные коттеджи, лес и пруд.
( На строительной площадке уже построено 5 этажей второго корпуса.
) В первый день все 90 стажеров собрались в конференц-зале.
Четыре часа нас знакомили друг с другом, учили, как выживать в офисе, рассказывали о культуре и командах разработки.
Потом был обед, экскурсия по офису и развлечение .
В конце дня мы разошлись по своим командам.
Мы с другом попали в команду Биллинга.
Мы встретились с наставником, распаковали новое оборудование и на следующий день запустили систему для настройки рабочей среды.
Команда
В течение первой недели я познакомился с командой.Всего около 50 человек из трех городов: Ижевска, Санкт-Петербурга и Екатеринбурга.
К команде присоединились восемь стажеров: четыре бэкенд-разработчика (два в Екатеринбурге, по одному в Ижевске и Санкт-Петербурге), два фронтенд-разработчика, тестировщик и аналитик.
Они подготовили для нас статьи на внутренней вики и упражнения для ознакомления с продуктом, который мы будем разрабатывать.
Автоматизирует продажи продукции Kontur. В нем работают сотрудники Контора, компании-партнеры и пользователи продукта.
Они рассказали о целях команды, используемых технологиях и инженерных практиках.
Сюда входит парное программирование (даже с разработчиками из других городов), обязательное покрытие кода тестами, постоянные ревью кода и регулярные скрамы.
Они объяснили, что практики необходимы для поддержания качества, распространения знаний о продукте и синхронизации подгрупп.
(Скрам одной из подкоманд Биллинга.
Задачи в Trello на ТВ.
) Я был полноправным членом команды и решал бизнес-задачи.
Мы с моим наставником потратили много времени на знакомство с кодовой базой, рефакторинг и ревью кода.
Почти каждый день мы тратили час на просмотр кода другой пары разработчиков.
Тут я сделал удивительное открытие: сообщения в исключениях и комментариях можно и нужно писать на русском языке.
Так они будут предельно понятны, а по сообщениям в логах будет легче понять, где ошибка.
Еще я почувствовал, как ReSharper ускоряет разработку.
Другие стажеры
Я общался со стажёрами в других командах на встречи каждые две недели а на «кваторе» — выездной отпуск, отмечающий середину стажировки.
(Все тренирующиеся находятся на «кваторе» веревочного парка.
) Мы рассказали о наших задачах и поделились опытом.
Там я узнал, что не во всех командах были воспитанники, решавшие боевые задачи.
Некоторые участвовали в инфраструктурных проектах, которые используются во многих командах Контура.
У некоторых были исследовательские задачи: нужно было прочитать массу статей и сделать несколько прототипов для проверки технологий.
Большой вызов
В августе я завершил большую работу от начала до конца.Некоторые пользователи Billing работают со списком компаний, которым они могут позвонить и совершить продажу.
Он очень большой, генерируется и сортируется автоматически с использованием нетривиальных алгоритмов.
В текущей реализации возникла проблема: после обновления страницы списка порядок сортировки мог измениться, и пользователь мог видеть совершенно другие элементы списка.
Мы решили вынести код работы со списками в отдельный микросервис.
Я обсудил со своим наставником, какие возможности и интерфейсы должен иметь сервис.
Наставник показал мне, как проектировать, и узнал, что документация может представлять собой не стопку UML-диаграмм и скриптов, а наброски на стикерах.
Мы добавили регулирование запросов в микросервис.
Это была новая технология, поэтому они представили ее команде.
Мы рассказали вам, как регулирование можно использовать в других микросервисах.
В команде принято сначала писать код, а потом тесты.
Причина в следующем: при разработке предприятия зачастую невозможно сразу выбрать правильную архитектуру и детали реализации.
Вы можете написать код и тут же покрыть его тестами.
Таким образом вы сэкономите время, поскольку вам не придется обновлять тесты во время рефакторинга.
Когда пришло время писать тесты, наставник показал мне отчет. Хопоший О опасность издевательств и рассказал о преимуществах интеграционного тестирования.
Нам также было важно понять, насколько мы улучшили жизнь пользователей.
Поэтому мы добавили сбор метрик: например, количество запросов к спискам и время их загрузки.
Микросервис отправляет метрики в Graphite, а мы смотрим красивые графики в Grafana и анализируем поведение кода.
Итоговая конференция
По окончании все стажеры участвуют в Итоговой конференции: рассказывают, какие задачи они решили и чего добились.Послушать пришли не только стажеры и их наставники, но и другие разработчики.
Состоялось жюри и выбрали три лучших доклада.
Награду за «лучший пиар проекта» получил стажер, который рассказал о том, как использовать Houston — внутреннюю систему для развертывания и хостинга .
NET-приложений, аналогичную Kubernetes. Награда за «лучший рассказ о ракетостроении своими словами» досталась стажеру по данным, который с помощью машинного обучения выделил заголовки из новостных текстов и связал их с известными компаниями.
Стажер, изменивший одну строчку кода и сделавший приложение в 30 раз быстрее, был награжден за «реальное улучшение производительности на поле боя».
Результаты стажировки
Я чувствовал себя не стажером, а полноценным разработчиком, который, как и все остальные, приносит пользу команде и компании.Была дружеская атмосфера и никто не сомневался в наших силах.
За два месяца я проработал 8 задач, сделал 180 коммитов и дважды выпустил релиз.
Я прочитал 35 технических статей, две книги и посмотрел более 30 часов видео с конференций.
А в середине августа, еще до итоговой конференции, я поговорил со своим наставником и решил, что останусь в команде Биллинга.
Теперь вы знаете, как проходила моя стажировка.
Если есть вопросы, задавайте в комментариях :) Теги: #студенты #стажировка #стажировка в СКБ Контур #Образовательный процесс в ИТ
-
Жуткие Тайны: Проклятие Соловья
19 Oct, 24 -
Гибридные Диски Для Серверов
19 Oct, 24 -
Признать Ошибку Или Закрыть На Это Глаза?
19 Oct, 24 -
5 Причин Пройти Курс По Визуализации Данных
19 Oct, 24 -
Народная Мобилизация На Кубе
19 Oct, 24