Сегодня мы начинаем цикл интервью со старшеклассниками, которые летом 2025 года стажировались в компаниях-партнерах Лицея “Вторая школа”. Подробно о стажировках мы рассказывали ранее - ссылка https://vk.com/wall-4846_4709
Мы задали несколько вопросов выпускнику этого года Эльдару Ризванову. Эльдар участвовал в отборе в компанию Яндекс и затем успешно прошел стажировку, в рамках которой реализовал сложные и многоплановые задачи. Предлагаем вашему вниманию получившееся интервью.
Эльдар, большое спасибо за то, что согласились поделиться своими впечатлениями о стажировке. Первый вопрос - почему Вы решили принять в ней участие? Почему решили потратить на стажировку драгоценные летние каникулы?
Летом довольно много свободного времени, поэтому это прекрасная пора, чтобы набраться бесценного опыта и научиться чему-нибудь новому, для чего идеально подходит стажировка.
Чему хотели научиться/какую область освоить во время стажировки и почему? Какие задачи в итоге Вам предложили решать в Яндексе?
В первую очередь мне хотелось проверить свои силы, а также приложить свои знания к решению реальных задач. Хотел улучшить свой уровень фронтенд разработки и узнать побольше о мире IT.
Давайте расскажу, с какими задачами я столкнулся непосредственно на стажировке. Первой моей задачей было реализовать спецпроект для своей команды: создать сайт, где визуализировался бы огромный граф на 20 тыс. вершинах и с бесчисленным кол-вом ребер. Помимо основной задачи представления графа сайт нужно было снабдить функционалом для работы с графом.
Какой был ход работы:
1) Нужно было обратиться к базе Яндекса за необходимыми данными, преобразовать их, и на их основе построить граф;
2) Сверстать сайт, пользуясь внутренними библиотеками Яндекса (подробнее о них чуть позже, когда речь дойдет до стека) ;
3) Самый сложный пункт - визуализировать граф и вывести его на страницу. В чем сложность? Во-первых, на входе я не получаю координаты вершин графа, я обладаю только каким-то набором сущностей и набором взаимодействий между ними. Во-вторых, когда граф настолько большой, его действительно трудно визуализировать, потому что это будет очень затратно по памяти и времени. Кроме того, нужно вывести граф “красиво”: минимизировать количество пересечений ребер и наложений вершин друг на друга.
Как удалось решить эту проблему? Я применил силовой алгоритм: я мыслил вершины графа как физические тела с массой, а ребра между ними как пружины, и сдвигал вершины в соответствии с законами физики до тех пор, пока энергия системы не достигнет минимального значения, то есть пока система не придет в состояние статического/динамического равновесия. Оказывается, именно в таком состоянии граф отображается “красиво”. Здесь мне пригодились знания, которые получил на уроках физики.
4) Сделать сайт доступным для общей сети Яндекса (чтобы любой яндексоид смог на него зайти).
К сожалению, не смогу рассказать, что именно за граф я выводил и чему соответствовали его вершины/ребра, потому что эта информация находится под NDA (соглашением о конфиденциальности).
Второй задачей было модернизировать существующую внутреннюю библиотеку Яндекса (ускорить ее). Здесь я столкнулся с тем, что мне было необходимо не столько программировать с нуля, сколько работать с кодом других разработчиков. Поэтому пришлось довольно долгое время разбираться, как работает эта библиотека и как взаимодействуют между собой куски кода. Обычно, участвуя в крупном проекте, ты не разрабатываешь все единолично, а собираешь по частичкам проект совместно с другими программистами. Значит, нужно писать код так, чтобы в нем могли разобрались другие, а также следует понимать написанное твоими коллегами. От этой библиотеки зависели проекты других команд, поэтому я чувствовал свою ответственность, и была мотивация завершить задачу.
Какой объемный и многоплановый проект Вам удалось реализовать. Расскажите, пожалуйста, какие знания, полученные в Л2Ш, пригодились Вам для стажировки?
Можно сказать, что опыт учебы в Л2Ш и знания, полученные в школе, во многом мне помогли. Во-первых, благодаря Л2Ш я научился думать и быстро осваивать новую информацию - хоть и кажется, что это базовые навыки, но, действительно, в Л2Ш ты невольно приобретаешь умение быстро схватывать и способность думать. На это настраивает интенсивный ход учебы. Собственно, я смог во время стажировки в кратчайшие сроки вникнуть в работу с новым стеком. Во-вторых, в Л2Ш на уроках информатики, математики, физики и литературы тебя учат мыслить структурно и нестандартно, а также мыслить критически - поэтому когда тебе ставят задачу на стажировке, ты можешь прикинуть, как именно стоит реализовывать ту или иную подзадачу. Это во многом похоже на решение алгоритмических задач на информатике, на решение олимпиадных задач на математике и физике, на сопоставление деталей и анализ образов на литературе. В-третьих, естественно, пригодился опыт участия в хакатонах, которые проводились в Л2Ш - ты учишься работать в команде и решать реальные рабочие кейсы. В-четвертых, на уроках информатики мы затронули азы промышленного программирования и поработали с БД, изучая SQL.
Эльдар, как Вы оцениваете итоги стажировки? Удалось ли достичь намеченных целей?
Да, многому научился и перенял опыт у ведущих разработчиков в IT сфере. Во-первых, я понял, что значит писать код. Если код работает, это еще не означает, что он хороший - он должен быть структурным, читабельным для других и не должен содержать костыли (которые при расширении проекта могут послужить уязвимостями). Во-вторых, я освоил новый для себя стек: React, Typescript, SQL, Gravity-ui (open-source библиотека Яндекса), внутреннее ПО Яндекса, Docker. В-третьих, выяснил, с какими задачами обычно сталкивается разработчик в повседневной работе и какие обычно проблемы возникают при непосредственной реализации проекта (такой опыт возможно приобрести только на практике).
Что было самым сложным/интересным/полезным на летней стажировке?
Самое сложное - разобраться с совершенно новым для меня стеком. Это же оказалось по совместительству и самым интересным. Самое полезное - большое количество практики и общение с коллегами.
Комментарий директора Лицея “Вторая школа” Михаила Ильича Случа:
Проект стажировок реализуется уже 4 года. С самого начала мы стремились включить в число наших партнеров Яндекс. Причины совершенно понятны: Яндекс - знаковая компания, очень многие выпускники Л2Ш работают в ней, в команде Яндекса присутствуют специалисты самых разных направлений, популярных в Лицее.
Но - не получалось. Компания огромна, идея долгих школьных стажировок с особым второшкольным дизайном не получала отклика.
Выход пришел совершенно с неожиданной стороны. Оказалось, что параллельно Яндекс со своей стороны создал стандарт студенческих стажировок, доработал его для школьников и предложил нам в этот проект вписаться. И буквально с колес ребята включились в совершенно открытый отбор в конце июня, и несколько человек (среди них и Эльдар) добрались до успешного финала и заработали право на стажировку.
Думаю, в будущем за Яндексом потянутся и другие крупные игроки в ИТ-сфере. И нашим старшеклассникам нужно будет следить за их анонсами и выигрывать право на стажировку в открытом соревновании с другими школьниками.