Польза олимпиадного программирования, миф или реальность?

Назрел такой вопрос.Стоит ли тратить большое количество времени и до дыр заучивать алгоритмы на графах, комбинаторику, сортировки или же делать упор на знание технологий и будет достаточно поверхностного изучения алгоритмов?
  • Вопрос задан
  • 5589 просмотров
Решения вопроса 1
Tiendil
@Tiendil
Разработчик ПО.
Стоит ли тратить большое количество времени и до дыр задрачивать алгоритмы на графах, комбинаторику, сортировки или же делать упор на знание технологий и будет достаточно поверхностного изучения алгоритмов?

Без разницы. Главное ответственно подходить к изучению. В процессе работы недостатки в знаниях будут воссполняться сами собой (по мере поступления задач). Конечно, базовое представление лучше иметь обо всём.

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

Олимпиадное программирование:

- даёт понятие о сложности алгоритмов, оптимизациях и «внутренностях» работы алгоритмов;
- учит быстро принимать решение и писать «шаблонный код» (в хорошем смысле этого понятия);
- учит слаженной командной работе (если соревнования командные, например ACM);
- не даёт никакого понятия об архитектуре, читаемости кода и его поддержке.

Из-за последнего пункта со многими бывшими олимпиадниками сложно работать, пока они не переучатся, а это происходит долго и сложно, т.к. весь их опыт этому противоречит. За счёт того, что такие люди обычно могут держать в голове значительно больший кусок задачи, для коллег работа с их кодом превращается в ад.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
@Vlad_Fedorenko
Мне кажется, от олимпиадного программирования пользы столько же, сколько от высшей математики - пригодится в жизни десятая часть, но приводит мозги в порядок. А это не помешает, чем бы вы не занимались. В выборе между технологиями и алгоритмами остановился бы на втором. Технологии меняются, алгоритмы фундаментальны
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
Смотря чем вы собираетесь заниматься: сайтики клепать - одно, а перебрать 2^48 вариантов в кратчайшие сроки - совсем другое.
Ответ написан
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
Прежде чем браться за решение по выбору между чем-то одним и чем-то другим я бы рекомендовал задаваться вопросом: "А есть ли еще более важные вещи?". Я к тому что Вы сейчас можете выбирать между теорией алгоритмов и технологиями, но при этом вдруг есть более важный навык который прокачан не так как хотелось. Рискну предположить, вдруг Вам надо прокачать мега-навык для любого программера : "Английский на уровне чтения тех.летературы". Если я угадал, то лучше потратьте время на него!
Ответ написан
Комментировать
leventov
@leventov
К сожалению, это очень субъективный вопрос, потому что нельзя поставить чистый эксперимент - взять одного программиста, в одной вселенной он подался в спортивное программирование, а в другой - нет, и сравнить его успехи. Все, кто занимались - скорее всего, будут хвалить, те, кто не занимались - скажут, что да нафиг надо.

Я занимался и скажу так - занимайтесь если реально в кайф, азарт чувствуете, считаете дни до контеста. А если это превращается в страду - бросайте без сожаления.

Вот исчерпывающий обзор плюсов - codeforces.com/blog/entry/1851 Это все правда, но не приближает к ответу на вопрос, нужно оно вам или нет. Потому что список вещей, которые хорошо бы изучить / освоить / прокачать / попробовать / заниматся - бесконечен, а жизнь конечна.
Ответ написан
Комментировать
@Dum_spiro_spero
Польза олимпиадного программирования в том, что вы а) способны находить нестандартные решения б) не боитесь их применять. Второй аспект может кстати быть минусом. Например вы придумали гениальный, алгоритм чего-то - виртуозно использовали знание недокументированных особенностей любимого языка, операционной системы, и т.п... А потом приходит начальник и говорит - концепция поменялась - кроме этого - нужна еще поддержка Windows 3.1 - у них там на буровой установке оказывается встроенные компы 80-х годов. Ну просто же - перекомпилируйте под ней проект и все. И вы понимаете, что с начала надо делать абсолютно всё.
Второй момент - многие алгоритмы изложенные в книгах 70-80-х годов на сегодня уже устарели - правда это я скорее про численно решение дифуров, про графы и сортировки не знаю.
В общем как сказал vilgeforce - чем заниматься-то будете? Если еще не знаете - то конечно лучше вширь чем вглубь. Лучше знать, что алгоритмы чего-то там существуют, ведут себя примерно так и у них такие плюсы и такие минусы - чем не знать про них вообще и хлопать глазами при общении с начальником.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
стоит
сказать честно вся моя база в айти это один год школы когда я выиграл олимпиаду по программированию, все что мне дали позже мизер по сравнению с этим одним прекрасным годом в классе информатике
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы