Что приоритетнее для студента: олимпиады или работа/свой проект?

Здравствуйте. Можете поделиться своими размышлениями на эту тему? Во что лучше углубляться, и какие от этого плюсы: в олимпиадное программирование(если учесть, что есть склонности к этому) или же делать свой проект/работать/подрабатывать/участвовать в opensource? На мой взгляд количество плюсов со стороны олимпиад сильно уступает противоположной стороне.
  • Вопрос задан
  • 3666 просмотров
Пригласить эксперта
Ответы на вопрос 13
Alexx_ps
@Alexx_ps
Ваши олимпиады после окончания ВУЗа никому будут не нужны, а вот своими проектами очень даже полезно похвастаться перед работодателем.
Ответ написан
@Niazza
Олимпиады это конечно хорошо с точки зрения продолжения академической карьеры или обучения за рубежом (если есть такой план), но реальный опыт работы на проекте к моменту окончания института на мой взгляд пригодится вам гораздо больше. Моя подруга в крупной IT компании руководит департаментом из 40 человек, и ее комментарий — только 30 процентов студентов и выпускников могут сесть и работать сразу с университетской скамьи — то что американцы называют plug&play — это как правило люди, которые уже к тому моменту где-то работали. Кто без опыта — им гораздо сложнее влиться в поток.
Ответ написан
Комментировать
barmaley_exe
@barmaley_exe
В то, что интересно.
Если Вы будете работать в каком-нибудь Research отделе, олимпиады пригодятся больше.
Ответ написан
anmipo
@anmipo
Участие в работе/подработке/open source оттачивает опыт решения объёмных, но обычных, предсказуемых задач. Участие в олимпиадах оттачивает опыт решения небольших, но «концентрированных» нетривиальных задач. Победа/награда — всего лишь символ, признание уже достигнутого уровня.

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

Можно провести спортивную аналогию: марафонец может заблудиться в лесу, а КМС по спортивному ориентированию вряд ли осилит марафон. Хотя, казалось бы, и там, и там надо просто хорошо бегать…
Ответ написан
Комментировать
И то, и то :)

Как показывает личная практика — возможно заниматься параллельно олимпиадным программированием и вести OpenSource проект, знания получаемые в каждой из этих отраслей взаимодополняют друг друга.

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

А с другой стороны олимпиадное программирование не дает знаний и опыта в разработке надежных приложений, которые придется сопровождать долгое время, и не даст должных знаний framework'ов и языков.
Ответ написан
Комментировать
knekrasov
@knekrasov
Олимпиады — это конечно здорово, но в реальных проектах навыки олимпиад редко бывают полезными (чаще даже наоборот). Умение быстро на коленке сварганить супер-алгоритм за пятнадцать минут совершенно не дает понятия о том, как он будет работать в команде и насколько качественный и поддерживаемый код получится.

Ключевой момент в профессиональном программировании — командная работа. Гениальность конкретного индивида не так важна с точки зрения проекта, как это наверное ни печально.
Ответ написан
Комментировать
@MikeMirzayanov
Мое развернутое мнение — http://codeforces.ru/blog/entry/1851. Да, и там не написано насколько топ-компании любят олимпиадников. Яндекс, Google, Facebook и др. — все они с руками отрывают бывших студентов, прошедших серьезную школу соревнований по программированию.
Ответ написан
Nicolette
@Nicolette
Это смотря насколько ярко выражены «склонности» к олимпиадам. Если выиграть какой-нибудь турнир, то, конечно, масса компаний с руками оторвет и не посмотрит, что опыта работы нет. А если перебиваться где-то ближе к середине, не выделяясь успехами, то очень может быть, что свой проект/опыт работы лучше. Лучше, конечно, «и то, и то, и можно без хлеба» :-)
Ответ написан
Комментировать
CKOPOBAPKuH
@CKOPOBAPKuH
Олимпиада — это долговременные инвестиции, изучение фреймворков/работа на дядю — кратковременные.

Занимался всю школу и первые полтора или два курса, сейчас этот опыт мной используется и я оцениваю его как «крайне полезный» и жалею, что рано бросил олимпиады. Рекомендую быть умнее и так не поступать.
Ответ написан
Комментировать
png
@png
Мнений всяких много. выше уже отписали. кто-то говорит, что проекты лучше, кто-то говорит олимпиада.
Выскажу и свое.

Первое, я бывший олимпиадник. Участвовал в ACM. Готовился не очень фанатично. В моем вузе каких либо подготовок олимпиадных не было, а потому изучал большую часть сам. Сами собирались с командой, тренировались.
В итоге, дальше четверть финала (первая ступень, проходила в Саратове) никогда дойти не получалось. На соревнованиях моя команда была обычно где-нибудь в середине. То есть не хуже и не лучше других. В итоге, дипломов об каких-либо местах у меня нет, только сертификат участия.

Что оно мне дало? потеряно ли время?

Что дали мне олимпиады командного типа, например, ACM.
0. Классическое алгоритмическое образование.
Вы не поверите, в разработке оно важно, очень важно, так сложилось, что постоянно приходится решать сложные вещи.
1. Понимание тонкостей языка и его библиотек (это может быть Java или C++) — это уже важно для разработки высоко производительных приложений. Это уровень уже старшего разработчика.
2. Умение работать с кодом, читать свои и чужой код, быстро искать в нем ошибки.
3. Умение писать код качественно, без ошибок, думать о всех вариантах входных и выходных данных.
4. Умение работать в команде. Практика совместного решения задач, парного программирования и прочего
5. можно ещё долго перечислять разные плюсы…

Что дают свои проекты(ну или работа):
1. покопаться в чужом коде (причем не всегда лучшего качества)
2. хорошая практика долгосрочного программирования
3. опыт разработки проектов (это тоже важно)
4. работа в команде (если повезет)
5. всякие тру-практики и идеологии (TDD, Domain Design, шаблоны проектирования + ООП)
6. пощупать разные технологии (минус, они почти все рано или поздно устареют, так что без фанатизма, изучайте то, что вам реально нужно на данный момент)
7. может что ещё, сами додумаете…

Вывод, олимпиада — жутко полезная штука. Даже если вы ничего не займете, то вы получите такой опыт, который позволит вам быстрее дорасти до старшего разработчика, а может и выше.
Однако, работа тоже дает какой-то опыт.

Я считаю, стоит заниматься и тем, и тем. Но олимпиаде давать предпочтение, т.к. как сказали выше — это долгосрочные инвестиции.
Конечно, если вы решили все-таки победить где-нибудь, про работу лучше забыть, и готовиться. В конце концов это тоже работа очень большая и тяжелая, которая потребует строгой дисциплины и большой самоотдачи.

А дальше выбор за вами.

PS: я живу в провинции, разрабатываю приложения, производительность которых очень важна. Мне постоянно нужен олимпиадный опыт. Так что все холивары по поводу, что работодателю человек с такой уймой знаний не нужен — не принимаются, т.к. нужен, просто скорее всего вы не там искали.
Даже наоборот, найти адекватных разработчиков тут в провинции безумно сложно.
Ответ написан
Комментировать
Смотря какая работа.
Если работа над сложными проектами, то да, работа над проектом лучше. Больше опыта. Неважно какого вида работа: официальная, на себя или opensource.
Если мелкие поделки на фриланс бирже, то естественно олимпиады лучше.

Это общий взгляд, хотя надо отметить, что существуют множество других факторов — личные предпочтения, возможность знакомства с нужными людьми, перспектива и т.д.
Ответ написан
@kmike
И то, и то, все успеете. Времени в вузе дофига было, насколько помню, особенно если в игрушки не играть, потом времени поменьше будет.
Ответ написан
Комментировать
milky_cookie
@milky_cookie
Совсем завязывать не стоит, это ведь интересно! Можно так посидеть на топкодере (если раннее утро не пугает), на кодфорсес вообще виртуальные есть контесты, но я думаю, что работа прежде всего. А если еще и по работе помогает — то просто прекрасно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы