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

Комментарии 21

Всегда волновал вопрос - какой во всем этом смысл? Если взять в пример все эти школьные олимпиады и их вариации, то все в результате сводится к «красному» аттестату/диплому. Ценности от которого в реальной жизни не больше чем от зеленого/синего :)

В случае с программированием это даже не притянуть к «зато будет лучше работать», потому что мудреные, но страсть какие эффективные, решения оценят с меньшей вероятностью, чем простые и понятные

Различные льготы при поступлении. Даже 100 баллов за предмет очень приятно, а иногда это и автоматическое поступление без вступительных экзаменов.

Разгон мозга: умение и привычка входить в поток. На рутинных задачах этого добиться гораздо труднее.

какой во всем этом смысл?

Как и в олимпиаде по математике, например. Умение быстро найти решение определенного.вида задач.

Это как умение быстро переворачивать слова в голове. Что это вам даст на практике-то? ))) если вы не работаете в NASA над полетом на Марс, то вряд ли вы каждый день будете решать мат. задачи, да еще и на скорость

Пожалуй, биологию в школе тоже зря учат. И физику с математикой. (Это доведение до абсурда ;))

Если человек умеет в абстракцию - это можно использовать не только в NASA.

Скорее всего это просто сито: суперскилы пригодятся одному из ста тысяч, продвинутые десяти, обычные - сотне школьников, для остальных - просто забава.

Но эти несколько скилованных человек что выйдут из сотни тысяч в современном мире нужны как Илон Маск космонавтике.

Это хоть к математике отнеси, хоть к физике, хоть к программированию.

Как и в любой олимпиаде - пооднять своё ЧСВ

НЛО прилетело и опубликовало эту надпись здесь
Всегда волновал вопрос — какой во всем этом смысл?
В том, чтобы самому научиться писать алгоритмы. То есть, если есть амбиции пойти в FAANG или начать стартап. Для рутинных бизнес-задач можно взять готовую библиотеку, а если её нет, сказать руководству: задача мне не по силам, ищите «сеньора».

это даже не притянуть к «зато будет лучше работать», потому что мудреные, но страсть какие эффективные, решения оценят с меньшей вероятностью, чем простые и понятные
В реальности может быть так, что возможно только эффективное решение, а простое и понятное (например, полный перебор вариантов) не потянет по ресурсам. Либо без математической подготовки вообще не известно, как это решать (например, если отбросить всю предметную шелуху, задача вырождается в составление расписания, в поиск максимального потока на графе или в задачу коммивояджера. Олимпиады прокачивают способность видеть математическую суть за словесными формулировками из «реального мира»)

Чтобы начать стартап, вам в последнюю очередь пригодятся алгоритмы ;)

Еще любопытно, что простые и понятные решения вы отнесли к крайностям вроде полного перебора. В любом случае, кроме абстрактных «прокачиваний математической составляющей» так и не услышал ничего конкретного. Само по себе прокачивание математики не даст вам примерно ничего в отрыве от предметной области.

Умение работать с абстракциями (привет математике) помогает нормально моделировать предметную область.

Верно, про стартап это скорее относится не к основателю, а к тому, кто потянет реализацию.

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

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

Для самого программиста это в принципе ничего не даёт, в работе баги и неоптимальные алгоритмы прощаются и на з/п я думаю не сильно это отразится. Но для работодателя спортивный программист намного привлекательнее, чем человек без такого опыта, поэтому при большом выборе (яндексы/фейсбуки) берут только спортсменов.

Кому как, мне вот иногда по работе приходится решать задачки, близкие к олимпиадному уровню (хотя сравнивать могу только с городскими олимпиадами). Как только надо оптимизировать какой-то слишком затратный алгоритм, так сразу здравствуй динамическое программирование, хитрые структуры данных, математические ухищрения, кэширование и всё прочее. Некоторым вещам я научился именно на олимпиадах, не говоря уже о том, сколько полезного я вынес с тамошних компов на дискетках. =)

Есть предмет на курсе "Информатика и программная инженерия", который называется "Алгоритмы и структуры данных". Всё, больше ничего. Культ олимпиад это только в СНГ. Во всём мире на него пофигу. Хочешь идешь на олимпиады, не хочешь не идешь. Олимпиады это показатель того, что ты можешь быстро находить неочевидные последовательности в данных. А не крудашлёпить по указке на Котлине под Андроид с открытой документацией? Ведь так, Vadim Sinitskiy? Крудашлепишь под Андроид на Котлине фронтендик?

Какой смысл в любом спорте? В получении удовольствия и удовлетворении желания соревноваться. Вот и здесь то же самое.
В качестве побочных эффектов: приобщение школьников к программированию, геймификация процесса изучения фундаментальных алгоритмов, приучение к обработке крайних случаев, развитие математического и логического аппарата.

Многие мои знакомые стали программистами благодаря олимпиадам, я и сам люблю порешать задачки на codeforces после работы.

Практического смысла столько же, сколько в шахматах, стрельбе из лука или биатлоне - это просто спорт, соревнования. Побочный эффект - набивается рука на написание решение алгоритмических задач, которые в прикладном программировании тоже иногда встречаются. Можете рассматривать алгоритмические задачи как музыкальные этюды - никто не играет их на концертах, но зато они помогают улучшить технику.

А бывают олимпиады по программированию, где существенную роль в итоговой оценке играет код-ревью живыми людьми? Некрасиво назвал переменные, сделал кучу дублирующегося кода, твой алгоритм неизящен, а код непонятен -- и с тебя снимается не меньше очков, чем если бы код работал медленно или некорректно?

Да, называются "собеседование".

Topcoder регулярно проводят (или проводили раньше) контесты по самым разным задам, связанным с разработкой, от построения архитектуры системы до багфиксов в существующем коде. Победитель, соответственно, получает некоторое денежное вознаграждение. По сути, эдакий соревновательный фриланс.

я – разработчик-алгоритмист.

Можно поподробнее узнать что это такое?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории