Программирование схоже с игрой на музыкальном инструменте
- пт, 07/02/2020 - 00:00
Программирование схоже с игрой на музыкальном инструменте
В Санкт-Петербурге подведены итоги полуфинальных соревнований Международной студенческой олимпиады по программированию ICPC 2019-2020 (International Collegiate Programming Contest), в которых приняли участие 310 университетских команд из 11 стран. Северо-Евразийский регион считается регионом с самыми сильными участниками. В его состав входят Азербайджан, Армения, Беларусь, Грузия, Казахстан, Киргизия, Латвия, Литва, Россия, Таджикистан, Узбекистан. Команда БНТУ поднялась на 22-е место и впервые вышла в финал, получив право представить университет на итоговых состязаниях в Москве.
В состав команды "FITR BNTU #1: Great team" вошли Павел Шефтелевич, Виктор Василевский и Дмитрий Зданович. Мы встретились с ними, чтобы познакомиться поближе. Сегодня они учатся на первом курсе магистратуры на факультете информационных технологий и робототехники, получают образование по специальности «Системный анализ, управление и обработка информации
— Почему решили поступать в БНТУ?
— Главной мотивацией стала олимпиада, в ней могут участвовать лишь студенты и магистранты. Также хотелосьсменить обстановку, попробовать что-то новое: мы изучаем веши, весьма полезные для общего развития.
— Объясните, что представляет собой программирование, кто такой программист? Чем обычное программирование отличается от спортивного?
— Программист — это тот, кто быстро нажимает на кнопки и создает программы,
выполняющие определенные, чаще всего полезные, функции, — отвечает Виктор. — Чтобы заставить компьютер что-то сделать, нужно дать определенную команду на понятном ему языке. Как раз программист и пишет эти команды.
— Спортивное программирование сильно отличается от обычного, — продолжает Павел. — Например, на работе ты создаешь конкретный продукт или разрабатываешь систему на протяжении недель и даже месяцев. Написанный тобой код «живет» годами, его постоянно развивают, поддерживают, при этом разработчики могут меняться. На соревновании за определенное время нужно решить как можно больше задач. Здесь ты можешь написать код за 20-30 минут, его качество при этом никто не оценивает. Да и сам ты его больше никогда в жизни не увидишь, использоваться он не будет. Главное, чтобы код работал.
— Поэтому говорят, что спортивные программисты не умеют писать код: они делают это быстро и некрасиво, — подытожил Дмитрий.
— Нужна ли математика в программировании?
— Программирование и математика — смежные области. И здесь, и там важны умения быстро думать и решать сложные задачи. Для олимпиад по спортивному программированию математика точно нужна, — сходятся во мнении парни.
На сегодня Дмитрий работает в компании Itransition, его область — виртуальные машины. Виктор и Павел работали в таких компаниях как Яндекс и Wargaming.net в Минске, проходили стажировку в компании Google в Польше и Швейцарии.
— Давайте поговорим об Олимпиаде. Как проходила подготовка?
— Финал Международной студенческой олимпиады по программированию ICPC — самый престижный этап самого лучшего соревнования для студентов, достижение, к которому стремятся все участники олимпиад, — говорит Павел. — Подготовка проходила в том же формате, что и сами соревнования. В этом году на полуфинале необходимо было решить 12 задач за 5 часов. Мы создавали для себя подобные условия: собирались и за определенное время решали задания прошлых лет: четвертьфиналы, полуфиналы, финалы Америки, Европы, Польши и других регионов. Затем читали разборы задач, анализировали свои ошибки, делали выводы о том, что необходимо изучить, какие подходы опробовать, ио-отдельности решали задачи, которые вызвали особые трудности. Так мы работали на протяжении двух месяцев каждые выходные.
— Достаточно ли знаний, которые даются в университете, чтобы занимать места в соревнованиях такого уровня?
— Знаний только университета недостаточно. Нужно много работать самостоятельно, — говорит Павел. В программе университета нет такого предмета, как «Олимпиада по программированию», но есть и довольно важные дисциплины, связанные с программированием, с алгоритмами, с дискретной математикой. Для соревнований порой нужно изучать и такие веши.
— Что бы вы посоветовали начинающему программисту?
— Не бросать и не лениться. Итог будет неплох, — ответил Виктор, товарищи были с ним солидарны.
Полина ЛАХЦУТКО, ФТУГ
Фото Максима КУБАРСКОГО, ПСФ