Специализация: промышленное программирование
Наташа Мурашкина, в прошлом — студентка, ныне — организатор проектной работы у первокурсников программы «Прикладная математика и информатика», во время учебы выбрала для себя специализацию «Промышленное программирование». Чем ее привлекло это направление, как студенты получают опыт рецензирования кода и какие курсы помогли Наташе в выборе темы диплома и дальнейшей работе, читайте в нашем материале.
Наташа Мурашкина
Когда я училась программировать в школе, я писала для себя игрушки или маленькие вспомогательные программки, участвовала в Google Code-In, поэтому мой интерес естественным путем сформировался вокруг промышленного программирования.
Мне особенно нравятся курсы, где для сдачи домашки нужно не просто решить тесты или показать, что программа работает, а ещё и пройти подробное code-review, то есть исправить замечания от преподавателя по коду. Рецензирование кода, как правило, проводится на общих дисциплинах младших курсов — основы программирования, C++, Java, однако и на старших курсах таких дисциплин было достаточно — альтернативные языки для JVM (Scala, Kotlin) и параллельное программирование. Ревью кода — это весьма затратное по времени для преподавателей предприятие, поэтому вдвойне приятно, что оно не заканчивается на младших курсах. Дополнительно на таких предметах, как базы данных, Software Design, Big Data Software Engineering студенты делают ревью кода друг другу, а побыть в роли рецензента — бесценный опыт.
На младших курсах я писала простенький парсер и интерпретатор языка программирования с помощью библиотек, а также в команде с однокурсницей разработала приложение под Android с возможностью комментировать PDF-файлы. На третьем курсе я сделала шаг в сторону от Software Engineering и попробовала себя в проекте по обработке естественного языка. Но по-настоящему щелкнуло, когда я начала заниматься текущей темой своего диплома по параллельному программированию. Именно поэтому самый дорогой моему сердцу курс — это курс по высокопроизводительным вычислениям от Евгения Калишенко. Также мне запомнился курс по разработке интерфейсов от Матвея Брыксина — это совсем не про программирование, но курс расширил сознание в понимании того, как устроен жизненный цикл продукта за пределами кодинга.
Год назад я переехала в Лондон, чтобы начать работать в небольшом хеджфонде. Как ньюград, я прохожу ротацию по полгода в трёх командах, чтобы лучше понять бизнес и выбрать где остаться. В нынешней команде мы разрабатываем инфраструктуру для исследователей нашей компании. Они занимаются построением моделей для предсказания цены стоков, а мы поставляем инструменты для этого. Мои задачи исключительно инженерные, как я и хотела: рефакторинг, добавление функциональностей, повышение производительности, тестирование и т.д.
Атмосфера для меня отчасти похожа на расслабленную версию универа: раз в неделю кто-нибудь из коллег делает выступления про разные системы внутри компании, внешние инструменты или концепции. Также вместе с ньюградам мы устроили книжный клуб – читаем и обсуждаем книги по финансам, как технические, так и развлекательные.
Несколько раз в месяц эйчары планируют для нас социальные мероприятия, а два раза в год мы ездим всей компанией кататься на лыжах и лежать на пляжах в Европе. Помимо того, что это как минимум удивительные приключения, это еще и помогает сблизиться с коллегами и больше эмпатировать друг другу в рабочей обстановке.
В отличие от универа, после всего этого остается много свободного времени — вечера и выходные, и приятно наконец-то заводить себе маленькие хобби, ходить к психологу или просто бесцельно бродить по Лондону.
Помимо меня в Лондон и соседние города в Британии переехали несколько моих однокурсников и ребят с других курсов нашей программы — очень приятно иногда встречаться, проводить время вместе и поддерживать друг друга.
Промышленное программирование – одна из четырех специализаций, которые предлагаются студентам на выбор в конце второго курса обучения. Студенты, выбравшие эту специализацию, изучают базы данных, альтернативные языки программирования для JVM, технологии компьютерных сетей, построение баз данных, компьютерную графику, криптографические протоколы, мобильную разработку, компьютерное зрение и графические интерфейсы.