Как стать автором
Обновить

Гайд на олимпиадное программирование: Что учить и где?

Время на прочтение3 мин
Количество просмотров3.1K

Всем Здравствуйте, сегодня я, участника областного этапа Белорусской олимпиады школьников, поделюсь с вами своим личным гайдом на олимпиадное программирование, расскажу что учить, как начать и учится и тренироваться
Вперёд!

Начало

Начать стоит с выбора языка программирования, в целом олимпиадки можно писать на любом языке, но зачастую все пишут на двух языках: на Python или на C++.
Больших различий в написание алгоритмах нет, только то что у некоторых языках больше возможностей.

Почему я советую выбрать C++?

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

Где учить python?

Для изучения основ python советую легендарный курс "Поколение Python" на Степике: https://stepik.org/course/58852/promo?search=7086480912.
Или курс сириуса "Введение в Python" : https://edu.sirius.online/#/.

Где учить C++?

Для изучения основ C++, я рекомендую курс от acmp: https://acmp.ru/asp/do/index.asp?main=course&id_course=1 (этот сайт ещё будет упомянут).
Также рекомендую курс от всех тех же Сириус: https://edu.sirius.online/#/.
Есть вариант изучения по хэндбуку от Яндекса: https://education.yandex.ru/handbook/cpp

Где изучать алгоритмы?

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

"Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих".

Но почему же именно её: потому что в ней довольно просто и понятно изложены основные алгоритмы используемые в олимпиадном программировании. Правда у неё есть один существенный недостаток - реализация некоторых алгоритмов из этой книги, не подходит для олимпиадного программирования.

Для компенсации этого я посоветую несколько ресурсов, созданные именно для олимпиадного программирования:

Отдельно выделю очень крутую книги по олимпиадному программированию, она довольно сложна для понимания, но при этом в ней изложены почти ВСЕ темы, которые могут помочь вам в олимпиадном программировании.

Эта книга: Олимпиадное программирование автора Антти Лааксонен.

Старайтесь читая книги, максимально пытаться применить знания на практике. Но где же брать задачи?

Практика

Итак, сейчас будут сайты для практики наших знаний, и краткий обзор каждого из них:

  • Acmp: довольно неплохой сайт для изучения и практики на конкретные темы(см. раздел "курсы"). Ссылка: https://acmp.ru/

  • Codeforces: Главная обитель всех спортивных программистов, его ключевая особенность это соревнования, которые проходят регулярно, на них мы будем оттачивать своё умение работать в краткие сроки проведения олимпиады. Ссылка: https://codeforces.com/

  • Eolymp: Отличный сайт для отработки знаний конкретной темы, на мой взгляд, задачи тут чуть сложнее чем на acmp. Ссылка: https://eolymp.com/

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

Заключение

В заключение, хочу пожелать вам удачи на вашем пути в олимпиадном программировании!

Успехов!

Теги:
Хабы:
+4
Комментарии4

Публикации

Работа

Data Scientist
51 вакансия
QT разработчик
8 вакансий
Программист C++
92 вакансии

Ближайшие события