Привет всем!
Занимаясь спортивным программированием всех настигал вопрос о том, а что же дальше? Говорят, что в промышленном программировании местное население не находит ту изюминку что находят тут, и сильно тоскуют по ней. Это как закончить смотреть 10-сезонный сериал, и чувствовать себя опустошенным :) А может так только "говорят"...
Предлагаю поделиться своим опытом и ответить, а как вы заполняете эту "дыру" после завершения олимпийской карьеры?
А зачем заканчивать? Разве нельзя найти часик на контест?
Вопрос хороший. Найти время поиграть "по фану" — разумеется, можно, и нужно. С другой стороны, те знания, которые получили во время соревнований, неплохо бы монетизировать. И вот автор, как мне кажется, ищет именно этого.
Я не вполне понимаю, что значит "поиграть", уже неоднократно вижу. Во что поиграть-то?:)
Надо спросить у droptable, он постоянно так говорит.
.
play codeforces. Do you play codeforces?
А разве контест — это не игра? Твоя задача на каждом контесте — переиграть твоих соперников, а для некоторых(не будем показывать пальцем на тех, у кого рейтинг 3000+) — еще и автора контеста: решить все предложенные задачи.
Игра — это дотка например. А контест это не игра!
Да ладно? А покер — игра или не игра?
То есть если Вас кто-то будет отвлекать во время контеста, Вы скажете "не мешай, я ИГРАЮ"?
Я обычно в таких случаях говорю "не мешай, у меня контест" :)
Вообще не аргумент. Те, кто играет в соревновательную часть любой игры(то есть собирают команды, участвуют в турнирах и т.д.) вряд ли скажут во время ответственной игры "я играю". Скорее — "у меня матч/турнир".
Контест — это жизнь...
Контест это соревнование, ты не играешь с соперниками, а соревнуешься!
Есть версия, что выражение сыграть контест пришло из "что где когда?". Там есть так называемые пакеты (набор вопросов) — аналог конесту (набор задач).
.
Всем давно известно, что контесты можно писать, решать и играть.
link
ИМХО, как это ни удивительно(хотя, с другой стороны, что здесь удивительного?), но математика сейчас намного ближе к спортивному программированию, чем программирование. Дело в том, что математики на многих кафедрах сейчас начинают понимать, что компьютер — вещь нужная и полезная, и сейчас многие курсовые, дипломные и даже кандидатские уже защищаются, по сути, по алгоритмам построения тех или иных вещей. Да и если взять тот или иной математический журнал — все чаще в них публикуются не доказательства теорем, а алгоритмы построения и доказательства. Например, я сейчас работаю/учусь на кафедре мат.анализа, и два аспиранта с моей кафедры пишут статьи и публикуются именно по алгоритмам. При том они не имели никакого отношения к СП в студенчестве. Самое забавное то, что в университете кафедра многими называется "консервативной" в этом плане. Ну и работать, соответственно, лучше там, где требуют математика. Не, самый оптимальный вариант — это, конечно же, работа алгоритмистом, но стоит понимать, что еще не все понимают, что такое алгоритмист и что он должен делать. А от математика, по сути, именно алгоритмов сейчас и требуют в промышленности. Посчитать погрешность. Составить алгоритм и его обоснование. Ну и, разумеется, "сделать так, чтобы не тормозило".
А как же крупные промышленные компашки (вроде того же Гугла, Яндекса и т. д.), работа которых требует того, чтоб все работало быстро? Или это к алгоритмистам?
Эти компании уже давно понимают, что из себя представляют спортивные программисты. Они проводят онсайты, спонсируют четверть/полу/финалы, разрабатывают кучу программ по привлечению таких специалистов. Они знают, кого берут. Берут именно алгоритмиста. Но, согласитесь, таких компаний достаточно мало.
Проблема абстрактной быстроты работы систем сейчас, как правило, связана не столько с алгоритмическими проблемами, сколько с медлительностью каналов передачи данных и некоторого железа. Поэтому олимпиадник, умеющий находить узкие места в своих программах, может при дальнейшем развитии найти себя в области высокопроизводительных и распределённых вычислений, где навыки построения архитектур подобных систем, знание нюансов работы разного железа, софта и как из них выжимать максимум намного полезнее для дела, чем знания алгоритмов. При их создании попадаются такие задачки, что они дадут фору многим алгоритмическим. Так что развиваться всегда есть куда.
Мейл.ру забыл.
Обобщение по двум точкам — это сильно!
Не совсем понял о каком обобщении речь.
Скорее всего это просто спор о терминах, но, по-моему, всем очевидно, что для СП из программирования достаточно знать лишь минимальный функционал какого-то одного языка, а все остальное — то, что большинство людей называют математикой.
Как мне сказали ребята с одной средней компании, на 200 обычных программистов нужно 2-3 алгоритмика, не больше. Плак-плак;(
Лично я потерял все свое рвение к вершинам СП еще после первого финала ACM ICPC. После второго — завязал с СП совсем, причем без всякого сожаления. Просто постепенно пропало ощущение новизны (решаешь очередную задачу и понимаешь: идеи-то все те же).
Если же эта изюминка — соревновательный аспект, то его можно найти в огромном количестве других занятий.
Каждую тренировку встречаю новые идеи.
Со мной что-то не так, или Вы подбирали слишком простые тренировки?
Предлагается обсудить, в каких именно.
Ну, во-первых, существуют такие вещи, как Kaggle.
Кроме того, никто не отменял различные киберспортивные дисциплины (перечислять умышленно не буду).
Не стоит забывать про интеллектуальный спорт (шахматы, шашки, го, спортивное ЧГК, покер и т.д.).
Можно вспомнить про такие дисциплины, как спидкубинг.
В конце концов, есть и традиционный физический спорт.
у меня обратная ситуация. Занимался СП, как то пропало ревение к СП, решил заняться кодингом под андроид. Покодил, увидел что через определеное время ты познал основные фичи и просто пишешь одно и то же, и твоя алгоритмика нафиг ни кому не нужна. Осознал что скучил за алгоритмами. Вернулся в СП :)
This. В мире идей разнообразия в олимпиадных задач нет и никогда не было.
Теперь ты синий, на те минус!
Хреново быть тобой.
Как-то печально сразу стало, после твоего блога(((
Промышленное программирование промышленному программированию рознь. Если клепать формочки и запросы к базам данных — то да, это, ИМХО, уныло. А практически любая должность вида "программист-математик"(на том же hh немало примеров) подразумевает много интересных вещей в процессе работы. Хотя, контестики писать мне не надоедает. =)
Дальше? Премия Тьюринга!