Да, тема поднимается далеко не первый раз, многое уже было сказано и даже вынесено в ЧАВО. Но, тем не менее, многое для таких новичков, как я, так и остается невыясненым.
- Много раз создавали темы, в которых спрашивали у топовых участников, как же они готовились. В большинстве случаев такие посты оставались без внимания. Я думаю, всем новичкам будет очень полезно и интересно услышать истории успеха многоопытных товарищей по этому поводу, если у них будет на это время.
- Из таких история, какие все-таки удается найти, можно вынести, что совсем не всегда участие в контестах и разного рода соревнованиях по олимпиадному программированию приводят к успеху в профессиональном программировании и вообще, в жизни. Например, недавно читал историю от Ferlon. Честно сказать, не воодушевляет. Заставляет задуматься, вот будешь готовиться, потратишь уйму времени, через большой отрезок времени начнут появляться маленькие успехи... Стоит ли это того? У меня еще личная проблемма - нет в принципе людей, которые могли бы меня подготовить, да и вообще помочь советом с какой-нибудь задачкой. Писать на CF о каждой не получающейся задачей я считаю плохим тоном, а вот тратить 2-3 часа на поиск идеи или алгоритма, который знающий человек назовет тебе за 5 секунд - согласитесь, совсем не продуктивно.
- И еще один маленький личный вопрос. Смогу ли я за 2-3 месяца с текущего уровня "докачаться" до уровня места на школьной республиканской олимпиаде (Украина) ? Стоит ли тратить на это время конкретно сейчас? Из обсуждений у меня сложилось мнение, что "синие" - совсем слабенькие программисты, которые могут быть успешны скорей потенциально, чем номинально.
Спасибо, если кто-то откликнется и поможет советом :)
Да поможет тебе выйти на путь истинный поиск по тегам сего сайта.
Понятно, что опытным товарищам есть что ответить, но наверно многих реально "задолбали" подобные темы вновь и вновь.
PS: Для будущих поколений "жаждущих наставлений" добавь и ты нужный тег к этому посту.
Но с каждым разом "вопрошающих" меньше же не становится, разве нет? Может, было бы проще сделать подборку "советов от опытных" и отсылать туда их всех?
Действительно, найти информацию для того, чтобы начать, очень тяжело, особенно если нет опытных знакомых. Из некоторых постов многих топовых программистов нашего сайта можно понять, что они преуспели, не в последнюю очередь, благодаря их опытным товарищам :) (например, вот).
Если это действительно так "задолбали" - я только спросил, обязуюсь больше не мусорить в прямом эфире.
>Может, было бы проще сделать подборку "советов от опытных" и отсылать туда их всех?
Так путь поиска я и указал. Да помогут тебе теги и гугл (второй весьма хорошо проиндексировал сайт).
К сожалению, я это уже читал, и так и не нашел ответов на интересующие меня вопросы. Литература есть, алгоритмы посильно начитываю и прорешиваю задачи по теме, учавствую в контестах, а прогресса по-прежнему нет. Видно, что-то не так делаю, поэтому и спрашиваю.
Трудно делать какие то выводы не зная сколько ты и как интенсивно занимаешься, пишешь контесты.
Или может твоя голова тоже "приспособлена лучше для решения других задач", но ты пока этого не осознаешь?
У меня, кстати, наблюдается такая же ситуация, как и у Ferlon. Печально что так всё складывается, но не единым ACMом живём!
Конечно, есть шансы.
Не думаю, что подскажу что-то новое. Самое лучшие это иметь друга, который решает гораздо круче вас и у которого вы сможете постоянно получать ответы на вопросы в духе "как улучшить этот код", "почему ва" и т.п.? Как по мне самый верный путь прокачки, ну естественно желание должно быть настолько сильным, что от программирования вы почти не должны уставать :)
Они надеятся что есть какие-то волшебные способы/таблетки/слова которые надо применять, принимать, приговаривать...
Очень интересно :)
Можете поделиться ссылками на аккаунты тех, кто занимали места, в личку, если удобно? Просто у меня совсем другое представление, я представлял призера Всеукраинской желтым, как минимум :)
Выходит, все более чем реально, нужно только привыкнуть к формату и продолжать расширять теорию, нарабатывая практику...
Воодушевляет это все, спасибо :)
Спасибо за советы :)
А можно ваше личное мнение, это реально набрать от "синего", уровень призера республиканской олимпиады за 3 месяца?
Также на IOI-like олимпиадах очень важно умение придумывать и писать неполные решения (которые проходят не все тесты, а например только при более жестких ограничениях). Многие этого не делают, а зря - набрать на неполных решениях можно много. Лично запихивал на РОИ неполное решение на 92 балла из 100 :-)
Открываешь архив кодефорсес и решаешь его. Подряд. Можешь установить себе предел максимум 2 или 3 пропуска в проблемсете. Разбор смотришь только если не придумал как решать через 3 часа активной мозговой деятельности. Вот все. Постепенно мозг насытится идеями, а руки опытом. Только это процесс долгий. Я с первого курса занимаюсь по 20 часов в неделю минимум.
А через сколько у вас были "первые ощутимые улучшения"?
Я в 11 классе был призёром (4 место в абсолюте, не помню какой это диплом) в республиканской олимпиаде по Башкирии. Тогда мой уровень был, наверно, как ооочень слабенький зелёный, если не серый, об олимпиадном программировании я вообще ничего не слышал.
Я уже услышал очень много интересного, чуть позже сделаю своеобразный FAQ из услышаного, может кому-то это будет полезно :)
Тогда уж и первое письмо Линуса Торвальдса в ту ньюсгруппу (ну вы понели) прийдется добавлять :)
Не только по воскресеньям на DL. Я прямо сейчас пишу там =)
Это я к тому, что глобальные цели попозже можно себе поставить. На первое время можно ограничиться локальными, например "сдать N задач на Тимусе, только по-честному, без (ну или почти без) пропусков".
Я оказался в похожей ситуации, как та в которой оказался ferlon Я тоже зафейлил свою последнюю попытку. Многие ставили на нас, мы в Петрозаводске были 14-ые по общей статистике. Да, было фигово, второе невыходящее место, по штрафу... все из-за тупежа в начале контеста. И в прошлом году никто квоты не увеличивал.
Но у меня и в мыслях небыло завязывать, потомучто мне нравиться решать задачки. Через пол года я вышел в финал RussianCodeCup, продолжаю решать на TC, CF, Opencup и прочее.
Надеюсь будут и другие финалы, но и это не главное. Я испытываю спортивный азарт от контестов. У меня колотиться сердце, когда я делаю 100% челенж, потомучто боюсь что другой участник обойдет меня на секунду, такое бывало.
Спортивное программирование - это то что мне нравиться делать, это моё хобби.
А вы не об успехах думайте, а о задачах. Не помню где читал что то вроде "если в команде больше говорят о том, какое место они займут, чем о задачах - дело плохо". Если вы пришли сюда только для того, чтобы докачаться до такого то уровня чтобы там что то там и потом еще крутые плюшки - вон отсюда:D
прошу прощения если несколько грубо получилось
У меня лично с напарником в школе схема подготовки была примерно такая
http://neerc.ifmo.ru/school/io/index.html каждую субботу контест
В том числе и дорешивание оттуда - скачивание архивов и прогонка тестов через батник. Несколько раз даже находили там кривые тесты, писали письмо и нам делали реджаджи.
Тимус для общего развития. Из книжек у нас был только Кормен. Наставников не было (СП было интересно только 2м человекам из школы - мне и моему сокоманднику), только обсуждение задач между собой.
Возможно, на меня лично повлияла хорошая подготовка в плане физики/математики. Ими в нашей школе дрючили основательно, олимпиадников было много, наставники тоже были. Но в 11 классе я как то на них подзабил и переключился на программирование, в котором мы уже как то все сами.
UPD. да, предложенный мной вариант больше для контестов формата ACM подходит, не IOI.
Просто он что-то делал/делает не так.
"Не так" в общечеловеческом, усредненном понимании.
На самом деле в этом мире мало что можно делать по-настоящему не так.
Ну вы понели.
Сейчас почитал, погрустил и подумал о жизни... Ну а, на самом деле, даже если прогресс незаметен, он есть. Даже сейчас бывает, что встречаются задачи, которые(или похожие на них) где-то видел, решал, читал разбор и т. п. Вплотную программированием я заниматься начал только сначала этого года, два года назад я вообще хотел в МГИМО поступить(8 класс - дурачок, что поделаешь)... Ну а с этого года я часа по 4(не меньше) в день на программирование тратил в сентябре, по 3 в октябре, по 2 в ноябре... А сейчас приходится чуть-чуть подзабивать, потому что в школе завал. Препод по алгебре, вообще, из-за программирования троллит постоянно(да-да, бывают фразы типа "такую задачу информатикам решить не дано" или "Жопу порвете если будете двумя предметами заниматься"), да еще и домашку задает на 4 часа упорного
мозгоеbrainfuck'а. Ну ничего, я то в 10 классе, до самой главной РОИ в моей жизни еще полтора года, так что все отлично :D Тем более по нынешнему формату РОИ в 11 классе призером стать объективно легче(главное, чтобы его не поменяли). А про неудачи как у ferlon'а... Лично я сталкивался с такой проблемой, что на регионе мне не хватило 5 баллов до проходного балла, при этом я был вторым в общем зачете, а следовательно на РОИ не поехал. Но еще более обидно за тот факт, что я был бы первым и с запасом набрал бы проходной балл, если бы не прочитал криво условие во 2-й задаче 2-го дня и написал полнуюхреньчушь... Расстроился, полгода почти не занимался программированием, съездил в ЛКШ и как-то заново захотелось :PПодготовил тут небольшой списочек того, что неплохо бы почитать, для таких новичков, как я. Список немного капитанский, но для новичков, возможно, будет полезен.
Темы на Codeforces, в которых обсуждаются главные аспекты СП и программирования вообще:
Список литературы делать не стал, этого, как по мне, полно, даже в этой теме уже несколько раз упоминалось.
Вообще, когда я искал себе информацию для размышлений, ни разу не увидел подробных мануалов / историй успеха / подборок литературы от красных. Я плохо искал, или чем вызван такой феномен? :)
Думаю, не очень хорошо искал