― Не у всех программистов есть высшее образование. Как ты решил, что оно тебе все-таки нужно?

― В школе я был олимпиадным программистом ― в том числе доходил до заключительного этапа Всероссийской олимпиады школьников по информатике. Так что к концу 11 класса уже знал большое количество алгоритмов, умел их писать быстро и правильно. И решать задачи наиболее эффективным образом с точки зрения времени и памяти.

Но уже тогда я прекрасно представлял, что олимпиадное программирование и промышленное ― это абсолютно разные вещи. К тому же я понял, что на самом деле ничего не знаю. У нас в Твери не было олимпиадного кружка и тренеров по олимпиадному программированию. Все задачи я решал на Pascal и слишком поздно понял, решать некоторые проблемы на этом языке очень неудобно и долго.

Так я принял решение пойти в университет, где меня всему научат ― и научат правильно, а не пытаться разбираться во всём самому, что довольно сложно. Выбирал между МГУ, СПБГУ, ИТМО. Только у ИТМО был современный сайт, которым удобно пользоваться ― вплоть до того, что подача документов заняла пять минут.

― Чем занимаешься в ИТМО?

― В ИТМО я учусь на факультете информационных технологий и программирования ― в этом году уже выпускаюсь. Изначально я хотел заниматься параллельным программированием. Но в итоге работаю фротендером, так что работа и учеба у меня пересекаются, скорее, по архитектурной части.

То, что я изучал в университете, ― например, общие принципы написания кода, типизация, алгоритмы, параллельное программирование ― помогло мне и в Яндексе. А те задачи, которые я решаю на работе, легли в основу моего дипломного проекта.

Также очень важно, что в ИТМО активно занимаются трудоустройством студентов: подыскивают места для стажировок, а ещё организуют специальные курсы от IT-компаний ― именно так я стал работать в Яндексе.

Михаил Мальцев. Фото: Дмитрий Григорьев / ITMO.NEWS

Михаил Мальцев. Фото: Дмитрий Григорьев / ITMO.NEWS

― Как ты попал в компанию еще на втором курсе?

― В университете нам предложили на выбор дополнительные дисциплины от IT-компаний ― среди них был в том числе курс по фронтенду от Яндекса. Он длился один семестр, нас обучали основам языка JavaScript и html/css стандартов.

Я выбрал его, потому что в тот момент хотел найти работу, а этот курс показался самым удачным и надежным вариантом, потому что Яндекс активно набирает стажеров. И, как оказалось, я не прогадал.

Когда курс закончился, мне написали из Яндекса и предложили пройти стажировку. Но сначала надо было пройти несколько этапов собеседований.

― Что включали собеседования и что помогло тебе их пройти?

― Так как я прошел курс от Яндекса в ИТМО, то смог пропустить первый этап ― автоматическое тестирование, которое проходят все соискатели.

Но у меня всё равно было несколько собеседований с разными сотрудниками компании. На встречах меня в основном спрашивали про базовые алгоритмы. Например, нужно было написать небольшую программку и объяснить, что, как и зачем ты делаешь. Посмотреть примеры актуальных заданий можно в каталоге Яндекса. 

Лично мне задания показались простыми. Думаю, что те студенты ИТМО, которые закрыли курс по алгоритмам и структурам данных, спокойно смогли бы их решить.

Стажировка длилась с мая до конца августа. На самом деле она должна была быть до сентября, но меня прервали и сказали, что берут на работу. Если не считать этих четырех месяцев, в Яндексе я работаю уже полтора года.

Треки задач в каталоге Яндекса. Источник: Яндекс

Треки задач в каталоге Яндекса. Источник: Яндекс

― Чем ты занимаешься в компании?

― Наша команда занимается b2b-продуктом ― Яндекс Облако. Это сервис, который предоставляет клиентам виртуальные машины для вычислений или развертывания серверов, при этом все обслуживание проводит сам Яндекс. Я занимаюсь фронтендом ― и это не только про html, css и визуальное отображение сайта. В нашей команде мы программируем всю логику взаимодействия с продуктом со стороны пользователя ― и зачастую она бывает довольно хитрой. Поэтому есть определенный набор задач, где мне пригождается знание алгоритмов и общих принципов написания кода.

Например, мы пишем не на самом JavaScript, а на TypeScript. Это такая обертка для языка с типизацией. Типы ― это крайне удобная вещь, которая не даёт разработчику сделать какую-то глупую ошибку. Например, они могут ловить опечатки в тексте или несоответствие кода. И на этих типах можно писать практически всё что угодно.

В команде нашего продукта практически никто не умел правильно писать сложные типы, так что мне пришлось использовать свои знания из теории, которую нам давали в течение обучения в университете.

Михаил Мальцев. Фото: Дмитрий Григорьев / ITMO.NEWS

Михаил Мальцев. Фото: Дмитрий Григорьев / ITMO.NEWS

― Как ты думаешь, что помогло тебе получить оффер еще до защиты диплома?

― Думаю, у меня просто хорошо получалось работать. Я быстро учился, быстро вникал в задачи. Уже через пару месяцев после начала стажировки, мне сказали, что я выполняю задачи на более высоком уровне.

Если говорить о практике, я бы дал такие советы:

  • Ходить на собеседования

Нужно давать компаниям знать, что ты существуешь. Это поможет понять, что ты знаешь и можешь, а что тебе надо подтянуть. А еще после ряда собеседований нервничаешь гораздо меньше, чем в первый раз.

  • Хорошо знать свой основной язык программирования

Язык программирования, на котором ты пишешь, надо знать досконально. Тебя обязательно спросят и про его основы, и про его тонкости. Если ты не знаешь самые базовые вещи о языке, тебя отсеят.

Причем обычно достаточно одного языка. Во фронтенде ― это JavaScript, в мобильной разработке ― Kotlin, в программном обеспечении – Python, C++ и так далее.

  • Хорошо знать базовые алгоритмы

Если ты учишься в ИТМО, ты и так знаешь все самые нужные алгоритмы с начала первого курса. Поэтому тестовые задания не должны быть сложными.

  • Быть готовым к тестовым задачам

На собеседовании тебе предложат решить ту или иную задачу в режиме реального времени и объяснить ход своих мыслей. Подготовиться к этому поможет каталог задач, который составляют в самом Яндексе.

  • Владеть английским и терминологией

У нас в ИТМО очень хорошо преподают английский. До поступления у меня был нулевой уровень ― теперь я спокойно могу читать документацию. Да, если ты не знаешь всех специальных терминов, и английский не сильно поможет. Но без него в IT никуда.