Как попасть на программу Google и постажироваться в Норвегии? Рассказывает студент
Василий Алферов — студент четвертого курса бакалаврской программы «Прикладная математика и информатика». За время учебы он успел попасть на программу Google Summer of Code и постажироваться в норвежском университете. Василий поделился, как опыт работы на удаленке помог ему перестроиться под новые условия и почему он хочет поступать в магистратуру Питерской Вышки.
Откуда возник интерес к программированию
Я решил поступать на программирование, потому что еще со школы у меня лежала душа к этому занятию. Больше всего мне нравилось, что я могу применить математические знания и сразу же посмотреть на результат. Это мотивировало меня работать дальше. Чтобы получить больше знаний по информатике, я участвовал в олимпиадах и ходил на кружок по информатике.
В итоге я оказался на бакалаврской программе «Прикладная математика и информатика». Мне кажется, она отлично подходит тем, кто любит учиться и не хочет распыляться: хороший специалист всегда сможет найти себе работу.
Сейчас самый важный преподаватель для меня — это мой научный руководитель, Иван Анатольевич Близнец. Он преподает дискретную математику и криптографические протоколы. Под его руководством в прошлом году я изучал графовые алгоритмы, а в этом он предложил мне написать диплом про алгоритмы для задач максимальной разрешимости. Цель моего диплома — изменить существующий алгоритм в лучшую сторону. Мне нужно будет не только придумать, как это сделать, но и сделать разбор известных случаев. Сейчас идеи готовы, мне осталось собрать все воедино, записать и перепроверить.
Первая стажировка
На втором курсе я занимался олимпиадным программированием — надеялся благодаря этому получить предложения по работе. Тогда я съездил на сборы в Петрозаводск, их спонсировал «Яндекс». Участники могли оставить e-mail для связи с рекрутерами компании — так я и сделал. В итоге после собеседования мне предложили пройти стажировку. Я согласился, потому что мне хотелось прочувствовать, как люди работают программистами на самом деле.
Меня взяли в команду, занимающуюся инфраструктурным проектом. Она улучшала работу микросервисов — составную части обработки запроса. Когда он чуть-чуть барахлит, пользователь ничего не почувствует: ответ к нему придет так же быстро. Чтобы ответ пришел наверняка, программисты всегда запускают несколько одинаковых микросервисов. Если с одним что-то не так, переспрашивают у другого. Я на этой стажировке решал, в какой момент приложение начинает подозревать, что с микросервисом что-то не так.
С теорией я был знаком хорошо, но мне не хватало практики, хотя от стажера много не требуется. Ко мне приставили старшего разработчика: он не только смотрел мой код, но и помогал, если я где-то завис.
Спустя три месяца меня взяли младшим разработчиком на 20 часов в неделю. Там я проработал до февраля. В «Яндексе» мне нравилось, там я всегда мог развивать свои навыки.
Я совмещал работу с учебой, а потом закрыл сессию на «хорошо», хотя обычно справлялся лучше. После нескольких разговоров с деканом и начальником я решил, что лучше закончить обучение на достойном уровне. На учебу у меня уходило 40 часов в неделю, иногда даже больше. На работу в «Яндексе» я тратил еще 20 часов — в сумме нагрузка получалась большая. Именно поэтому я принял решение уйти с работы, хотя оно далось мне непросто.
Google Summer of Code и стажировка в университете Бергена
Когда я уходил из «Яндекса», мы договорились, что летом меня возьмут обратно. Но я не вернулся, потому что пошел на программу от Google Summer of Code. Это не летняя школа и не стажировка, а программа по поддержке open source сообщества программистов, которые работают за пожертвования.
Организаторы программы выкладывают список проектов, на которые можно отправить заявку. Я написал 12 страниц со своими идеями за два дня — дедлайн совпал с моей весенней сессией, поэтому времени у меня было немного. Мои идеи понравились ментору: из 12 человек взяли только двух, в том числе меня. Я попал на проект по функциональному программированию – по графовым алгоритмам на языке хаскелль. В нашем блоге на «Хабре» я подробно рассказываю, чем занимался.
Участие в проекте было дистанционным, к такому я не привык. Мне было тяжело работать из дома — особенно трудно было сохранять концентрацию и вовремя просыпаться. Привычные утренние ритуалы, которые меня бодрили, тоже исчезли: я не выходил на улицу, не бывал в метро. Зато на дистанционном обучении этот опыт мне сильно помогает.
Этой зимой я попал на стажировку в университет Бергена в Норвегии, там тоже изучают компьютерные науки. Для меня это был не самый удачный опыт. Я хотел заниматься научными исследованиями, а меня туда позвали как человека, умеющего писать на С++. Я много работал с этим языком в «Яндексе», мне хотелось развивать другие навыки. Но зато мне понравилось общаться с новыми людьми: в этом университете очень большая группа исследователей из России.
Благодаря рекомендации руководителя моего проекта на Summer of Code я добился собеседования на стажировку в Jane Street на это лето. Это компания, которая специализируется на функциональном программировании. Я боялся, что из-за COVID-19 планы компании сильно изменятся. Но недавно я получил письмо, где у меня спросили адрес, чтобы прислать мне оборудование. Кроме того, мне рассказали, что в компании думают, как организовать стажировку в онлайн-режиме. Надеюсь, если у меня не выйдет подключиться дистанционно, мы сможем перенести стажировку.
Магистратура и планы на будущее
Я серьезно настроен остаться в Питерской Вышке: хочу попасть на магистерскую программу «Программирование и анализ данных». Буду заниматься научной деятельностью — параметризованными алгоритмами, это довольно узкая область.
В том, что касается поступления в магистратуру, я доверяю Александру Владимировичу Омельченко и петербургскому кампусу. Все-таки я уже учился здесь и знаю, что будет происходить. Я действительно смогу заниматься именно тем, что мне будет полезно. Кроме того, наши преподаватели всегда ищут к студентам индивидуальный подход.
Еще я бы хотел поработать над soft-skills и коммуникацией внутри команды. Один раз меня не взяли на одну стажировку в Лондон из-за проблем в коммуникации. Да и в «Яндексе» я держался обособленно и не просил советов у других программистов, даже когда это могло мне сильно помочь. Чтобы развить навыки в коммуникации, я хочу поработать в команде — например, в «Яндексе» или JetBrains.
Еще я подумываю о курсах по английскому. На технические темы я говорю хорошо и могу пройти собеседование, но со всем остальным есть определенные трудности. Правда, на стажировку в Jane Street меня все равно взяли.
В будущем мне хотелось бы продолжить заниматься функциональным программированием. Я хотел бы сейчас пройти стажировку в Jane Street и зарекомендовать себя там. При идеальном раскладе я бы и дальше работал в этой компании.
Близнец Иван Анатольевич
Департамент информатики: Доцент
Омельченко Александр Владимирович
Декан Санкт-Петербургской школы физико-математических и компьютерных наук