29 сентября 2017 года в Казахстанском филиале МГУ состоялась встреча студентов направления «Прикладная математика и информатика» с выпускником Филиала 2012 года Миратом Каденовым, в ходе которой было дано интервью.
Сведения об интервьюируемом: Каденов Мират
Образование: Казахстанский филиал МГУ, 2012
Факультет: ВМК
Кафедра системного программирования
Красный диплом
Работа:
- разработчик гоночного симулятора AstanaRacer в компании ArtaSoftware (Астана);
- разработчик MMORPG Skyforge в компании Mail.RuGroup (Москва);
- разработчик биллинговой системы в компании Atlassian (Сидней).
Расскажите, пожалуйста, когда вы пришли к программированию, как всё начиналось?
Программировать я начал еще в школе. Поэтому уже на 1 курсе попал в набирающую обороты в Астане компанию ArtaSoftware. Причем я попал в только что открытый отдел, который занимался не основной деятельностью компании. Это был игровой отдел компании, который на тот момент состоял из двух человек. Первой игрой, которую мы пытались реализовать, был космический симулятор с возможностью передвижения в открытом космосе, приземления на планеты, передвижения по ним. Сейчас я уже понимаю, что это было утопией, требующей колоссальных затрат человеко-часов и далеко не каждая крупная компания сегодня попытается такое реализовать. Но тогда это казалось отличной идеей, даже с учетом того, что мы начали писать собственный графический движок.
Как писали игру AstanaRacer?
После некоторого времени, стало понятно, что разработка продвигается крайне медленно и компания решила переключиться на разработку другой игры. Такой игрой стал гоночный симулятор AstanaRacer, прототип которой и принес новый сотрудник компании. Теперь, более реалистично оценивая свои возможности, мы использовали готовый движок с открытым исходным кодом и некоторыми готовыми наработками. На выходе получилась неплохая игра для разработчиков-студентов с командой около 10 человек. Более того, это был первый трехмерный гоночный симулятор с ландшафтом Астаны. Игру писал на C++ с OpenGL. Если честно, сейчас бы я советовал новичкам в разработке игр писать на готовых движках, например, на С# с Unity.
Какие возможности появились в Москве?
Москва – удивительный город, где работу может найти программист абсолютно любой квалификации. В 2012 году мне посчастливилось попасть на собеседование в компанию Аллоды от Mail.RuGroup, которая на тот момент была хорошо известна уже выпущенной игрой Аллоды онлайн. В то время в активной разработке была их следующая игра типа MMORPG под названием Skyforge. Игра вышла в 2014 году после 2,5 лет разработки.
Что такое разработка больших онлайн-игр?
Программная система MMORPG состоит из двух больших частей: серверной и клиентской части. Весь игровой мир состоит из игроков, каждый из которых имеет программный клиент. Серверная часть состоит из таких частей, как сеть, ввод-вывод, база данных, игровая механика. Клиентская часть состоит из другого набора: сеть, игровой движок, графический движок, интерфейс, ресурсы. За каждую часть отвечала отдельная команда разработчиков (около 5-10 человек в каждом отделе). Общее количество разработчиков было порядка 70. Первое правило онлайн игр: никогда не доверяй клиентским запросам. Вся логика игры находится на сервере.
В какой отдел попал ты?
Я попал в команду серверной игровой механики. Разработка игр часто романизируется в противовес скучному интерпрайзу. Многие думают, что разработка игр – это, в основном, компьютерная графика. На самом деле графикой занимался лишь один небольшой отдел. Отличие большого проекта по разработке игр от разработки программиста-одиночки заключается в том, что ты выполняешь технические задания, которое получаешь, например, от гейм-дизайнера. Наша задача – реализовать, только реализовать то, что нам принесли.
Какие интересные задачи ты решал?
Очень интересной задачей оказалась проблема поиска кратчайшего пути. С учетом огромного размера карт, различных открывающихся дверей и деталей ландшафта, это она оказалось очень непростой. В итоге получился очень непростой алгоритм. Правда из-за большой нагрузки на сервере, вспомогательный алгоритм поиска был реализован и на клиентской части.
Почему решил покинуть геймдев?
Во-первых, сам я никогда не был игроманом, поэтому не мог сполна наслаждаться полученным результатом. Геймдев – это сфера развлечения, которую нельзя отнести ксамым важным аспектом деятельности человека. Поэтому появилось желание создавать более значимые продукты. Во-вторых, сказались особенности Москвы. Это отличный город, чтобы набраться опыта, но для жизни мне он показался некомфортным.
Как ты оказался в Австралии?
Австралию я не выбирал. Я просто отправил вакансии в крупные компании. Компания Atlassian искала опытного разработчика java с отличным знанием математики. В итоге мне предложили работу в той сфере, которой ранее я даже не интересовался, а именнобиллинговые системы. Биллинговая система нужно для формирования заказа и проведения онлайн оплаты в интернете. Она является вспомогательной функцией для продвижения основных продуктов компании по управлению проектами, базами знаний, которым пользуются в NASA, Audi, Twitter, Tesla и другие. Что мне сразу понравилось, что конечный продукт приносит больше пользы для других компаний и человечества в целом по сравнению с разработкой игр.
Что такое собеседование в большую компанию?
1. Тест для первоначального отбора. Он очень простой и быстрый, цель которого отсеять основную часть.
2. Основное техническое собеседование по алгоритмам и структурам данных. Кстати, на этом собеседовании очень помогают знания с олимпиад по программированию.
3. Собеседование по техническим вопросам языка.
4. Тестовое задание. Здесь проводят ревью кода и обращают внимание на детали.
Что делать, если боишься идти на собеседование?
У меня есть одногруппник, который был очень уверен в силах, даже несмотря на то, что он не был готов к собеседованиям вообще. Поэтому он просто ходил на собеседования и проваливал их. Таким образом и выучил java. Он приходил на собеседования, не отвечал на какой-то каверзный вопрос, узнавал правильный ответ и шел на собеседование в следующую компанию. В целом, собеседования проходить очень нужно, так как это снижает вашу неуверенность.
Что еще могут спросить на собеседовании?
Бывают и особенные компании, которые могут спросить что-то продвинутое. В одной компании меня спросили, какие задания я выполнял на практикуме в университете. После того, как я ответил, что писали интерпретатор языка, сразу последовал вопрос, был ли язык полным по Тьюрингу. И тут очень обрадовался, что знания из университета пригодились на таком собеседовании.
На что можно обратить внимание при составлении резюме?
Во-первых, самое простое что можно сделать, это качественно оформить резюме с технической точки. Это может казаться мелочью, но уже может продвинуть на 1 ступеньку вверх.
Во-вторых, если у вас нет опыта работы, то большое влияние будет уделено вашему образованию. Но не стоит надеяться только на диплом. Например, в Москве выпускников с такой же специальностью может оказаться быть несколько тысяч. Сильно обогнать конкурентов помогают дополнительные курсы. Есть достаточно много возможностей пройти сертифицированный курс удаленно или в университете, который, разумеется, нужно добавить в свое резюме.
В-третьих, самостоятельные проекты. Они могут оказаться решающим фактором. Если у Вас есть готовый проект, это дает Вам огромное преимущество. Например, можно пройти курс по разработке мобильных приложений, реализовать простенькую игру и добавить в резюме ссылку на приложение в мобильном магазине. Также высоко ценится участие в разработке продуктов с открытым исходным кодом. Да и активный аккаунт на github будет небольшим бонусом.
В-четвертых, университетские проекты. Часто задачи, которые вы выполняете в университете, могут стать таким проектом. В частности, такую помощь оказывает машинная графика. Если к этому заданию подойти очень ответственно, то его вполне можно включить в свое резюме.
В какое направление IT лучше идти, чтобы больше зарабатывать?
Зарабатывать много можно в любом направлении. С одной стороны, хорошие программисты даже на полуживом языке Фортран могут получать большие деньги (здесь играет роль необходимость в поддержке уже написанного софта и большой дефицит практикующих программистов). Или наоборот, например, java-программистов сейчас море. Но часть из них умеют только поддерживать и создать простой код. Они явно не могут рассчитать на большой оклад. Другое дело, программист, который понимает, как работать с профайлером, как устроена java-машина изнутри, как вносить кардинальные улучшения в проект в целом и проявляет большую активность. Если подходить к работе основательно и творчески, то это как правило положительно сказывается и на зарплате.
До какого возраста ты собираешься заниматься программированием?
Это очень интересный вопрос. В Казахстане и в России я никогда не видел программистов-разработчиков старше 35 лет в больших компаниях. Меня всегда мучал вопрос: куда же они исчезают? Сейчас на работе я вижу много людей, кому за 40. Более того, я недавно познакомился с человеком, который работал в нашей компании разработчиком до пенсии и в 65 лет вышел на пенсию.
Поменял бы ты сейчас деятельность в программировании?
Изначально я был в команде, которая решала бизнес-задачи. Недавно я перешел в команду, которая занимается низкоуровневыми вещами (сети, базы данных). В целом, в нашей компании даже поощряется желание сотрудников переходить в другие отделы. Руководство считает, что если сотрудник засиделся на одном месте, то это плохо, значит, он не работает в полную силу.
Стоит ли идти на третий поток ВМК, если хочется работать в IT?
Почти все мои знакомые-программисты увлекались программированием в школе, либо с первых же курсов. Причем выполняли не только учебные задачи, а обязательно писали что-то свое. Тем, кто уже увлекается программированием очень серьезно, на третьем потоке может оказаться не так интересно. Я бы сам сейчас пошел на кафедру первого потока, а именно на кафедру общей математики, на которой я сдал несколько очень интересных спецкурсов по общей алгебре. В целом, обучение на первом потоке никак не мешает работать программистом. Сам университет вряд ли сделает из Вас программиста, если Вы сами этого не хотите.
Какие еще интересные спецкурсы довелось послушать?
У меня была задача сдать как можно больше спецкурсов, что и советую всем. При этом лучше выбирать именно интересные спецкурсы, а не те, которые проще закрыть. Мне очень понравился спецкурс по биоинформатике. В университете есть большие возможности как учиться, так и не учиться. Поэтому я советую Вам взять максимально все от учебы в филиале МГУ.
Студенты благодарят Мирата Каденова за интересную встречу и возможность общения с человеком, который поделился своим жизненным опытом.
Текст: Баев Ален