Що робити, якщо у Вас виникло бажання стати учасником олімпіад зі спортивного програмування, але ви сумніваєтеся у своїх силах і можливостях?
Дізнайся з нашої статті в чому сила програмістів-олімпіадників і де можна відточувати навички алгоритмічної майстерності.

      На запитання студентів  ХНУРЕ відповідає переможець всеукраїнських змагань LUCKY NUMBERS CONTEST 2023, аспірант кафедри ШІ факультету КН . 

 

— Чи є якесь обмеження у віці для занять спортивним програмуванням?

— У деяких олімпіадах (включно з однією з найпрестижніших — чемпіонатом світу ICPC) є обмеження за віком — потрібно бути не старше 23 років. Але існує і безліч змагань без вікових обмежень, наприклад, чемпіонати великих компаній, такі як Google Code Jam, Facebook Hacker Cup, або ж регулярні раунди на онлайн-платформах Code forces і AtCoder. Плюс ніхто ж не забороняє займатися спортивним програмуванням суто для себе, щоб дізнаватися щось нове, розвивати своє алгоритмічне мислення. Тож починати в будь-якому разі ніколи не пізно, головне мати бажання.

 

 

— У чому переваги учасника змагань з програмування від звичайного програміста?

— Основна відмінність у тому, що олімпіадник глибше розуміє, як влаштований той чи інший алгоритм зсередини, а отже, може оцінити ефективність різних підходів і вибрати оптимальний. Також він не боїться і вміє вигадувати нестандартні розв'язки задач, тоді як звичайний програміст здебільшого віддасть перевагу готовому, перевіреному підходу, який далеко не завжди може виявитися найкращим.

      Ще однією перевагою є вміння швидко знаходити помилки в коді, адже в олімпіадах доволі часто доводиться це робити в умовах обмеженого часу, а часто ще й без доступу до самого комп'ютера (наприклад, у командних змаганнях дають лише один комп'ютер, тож для його ефективного використання помилки завжди шукають очима на видрукованому коді, доки однокомандник набирає розв'язок іншої задачі).

 

 

— Чи можете порадити якісь сервіси, які допоможуть у вдосконаленні навичок алгоритмічної майстерності?

— На самому початку я б порадив зареєструватися на платформах https://codeforces.com/ і https://atcoder.jp/, де регулярно проводяться особисті змагання всіх рівнів складності (для новачків відмінно підійдуть div.3 раунди на Code forces і beginner contest-и на AtCoder). Крім цього, має сенс вирішувати який-небудь великий архів завдань у порядку зростання складності. Для мене це був все той же Code forces.

      Також у міру вивчення нових алгоритмів має сенс створювати свою невелику бібліотеку, яку можна використовувати, якщо в завданні трапляється якась стандартна техніка. Для тестування такої бібліотеки чудово підходить сайт https://judge.yosupo.jp/, де зібрано більшість стандартних завдань, плюс є можливість дивитися код найефективніших рішень інших учасників.

     З корисних сервісів я б ще виділив https://clist.by/ - сайт, на якому можна дивитися календар найпопулярніших змагань.

— Що порадили всім студентам університету?

— Найголовніша порада — це завжди отримувати задоволення від того, чим ви займаєтеся, і ніколи не боятися змінювати вид діяльності, якщо раптом щось не подобається.

 

Дякуємо Матвію Асландукову за змістовне інтерв'ю.

Бесіду вів Олег Топорков.

 

Популярні статті

Читати далі