Поговоримо про те, чому корисно програмісту брати участь в олімпіадах зі спортивного програмування. З чого починається шлях олімпіадника?
На це та інші запитання відповідає переможець всеукраїнських змагань LUCKY NUMBERS CONTEST 2023, аспірант кафедри ШІ факультету КН.
Випускника ХНУРЕ, Матвія Асландукова добре знають не лише в університеті, а й за його стінами. Він був учасником і призером олімпіад, що проходили в Казахстані, Угорщині, Грузії, Польщі, Сербії, Білорусії, Ірландії. Зокрема, у складі команди «[KhNURE] Energy is not over», був бронзовим призером «Міжнародної студентської олімпіади з програмування ICPC сезону 2019-21 років».
— Як почав займатися олімпіадним програмуванням?
— Я навчався в 47 гімназії, і саме там познайомився з програмуванням. Це було в 6-му класі, коли на уроках інформатики нам почали викладати мову Logo. Тоді мені дуже подобалося малювати різні зображення за допомогою черепашачої графіки, і я навіть брав участь у кількох турнірах у складі шкільної команди, відповідаючи за завдання з Logo.
Зрозуміло, що ця мова більшою мірою є навчальною, але вона дала змогу зрозуміти, що в мене досить непогано розвинене алгоритмічне мислення. Тож наприкінці сьомого класу мені запропонували спробувати почати ходити в шкільний гурток з олімпіадного програмування. Уже після першого заняття мені дуже сподобався цей рух, і я почав активно ним займатися.
— Наскільки багато доводилося вчитися, щоб бути першим на олімпіадах?
— Вчитися, звісно, доводилося багато (за половину літа я порішав понад 100 завдань на сайтах шкіл програмування), і не тільки спочатку, адже просто так нічого не роблячи неможливо просунутися в абсолютно будь-якій справі. Але я не можу сказати, що це було важко, навіть навпаки, завжди було цікаво дізнаватися і застосовувати щось нове. Тут важливим є те, що мені справді дуже подобалося займатися цією справою, тому й виходило швидко рухатися вперед.
На самому початку (у 8 класі) доводилося вдосконалюватися з тією самою швидкістю, з якою відбувалися етапи шкільних олімпіад: мені вдалося взяти диплом І ступеня на районному етапі, 2 - на обласному, увійти в топ-3 з паралелі на відборах на всеукраїнську олімпіаду, і нарешті взяти диплом І ступеня на фінальному етапі всеукраїнської олімпіади. При цьому я чудово розумів, що знань, які я мав на кожному з етапів, не вистачало, щоб увійти до призової зони на наступному, тому доводилося швидко вивчати нові алгоритми та підходи до розв'язання задач.
— Які навички важливі для спортивного програмування?
— Потрібно мати гарне логічне мислення, щоб уміти крок за кроком розкручувати задачу, спрощувати її, комбінувати різні алгоритми.
Плюс саме по собі поняття «знати алгоритми» доволі неоднозначне, адже один і той самий алгоритм може мати безліч варіацій і використовуватися в різних ситуаціях. Тому ідеально знати всі алгоритми просто неможливо, і значно більше значення має якраз уміння самостійно вигадувати розв'язання ідейних задач.
— Які плюси можна отримати від олімпіад?
— Насправді є безліч плюсів:
1. Цікаве проведення часу.
Наприклад, я завжди отримую задоволення від розв'язання задач і самої атмосфери олімпіади.
2. Можливість поїздити світом.
За час участі в олімпіадах я побував у Казахстані, Угорщині, Грузії, Польщі, Сербії, Білорусі та майже в Ірландії (на жаль, через початок Covid-a змагання в останній момент вирішили провести дистанційно).
3. Шанс познайомитися з крутими людьми та завести друзів,
з якими надалі, можливо, ви будете працювати, або взагалі створите свій стартап.
4. Уміння розв'язувати олімпіадні задачі.
Ця навичка дуже сильно допомагає при проходженні співбесід у великі IT-компанії, такі, як google, facebook, amazon, microsoft, та ін., бо на них завжди просять розв'язати алгоритмічні задачі.
5. Нарешті, можна виграти призи,
починаючи від якихось дрібних подарунків до хорошої техніки (навушники, смартгодинник, смартфони, ноутбуки тощо) і грошових призів (наприклад, найкращий спортивний програміст Геннадій Короткевич, за офіційними даними, виграв близько 350 000$).
— З чого почати, якщо хочеш теж брати участь в олімпіадах?
— Зробіть такі кроки:
1. По-перше, можна вступити в чат харківської тусовки олімпіадників.
Там є доволі багато досвідчених учасників, у яких завжди можна запитати поради, плюс регулярно даються оголошення про різні змагання/курси/збори, у яких корисно брати участь.
2. Далі, має сенс зібрати команду з трьох осіб, оскільки більшість студентських олімпіад, на відміну від шкільних, розраховані саме на командну участь.
3. Після цього потрібно зареєструватися на онлайн-платформах, де регулярно проводяться онлайн-змагання та є великі архіви завдань, і можна починати тренуватися.
Шлях до успіху в будь-якій справі починається з улюбленого заняття, «тому й виходило швидко рухатися вперед». Неважливо скільки часу займе освоєння тієї чи іншої навички, якщо це цікаве проведення часу, яке надихає на нові звершення, воно того варто.
Дякуємо Матвію Асландукову за змістовне інтерв'ю.
Бесіду вів Олег Топорков