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

Помогают ли опыт и достижения в спортивном программировании в реальной жизни и работе, или мешают?

Время на прочтение11 мин
Количество просмотров33K
Всего голосов 34: ↑31 и ↓3+28
Комментарии17

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

Несколько человек правильно отметили, что собеседования в некоторые компании сильно заточены под олимпиадников. В результате, при прочих равных, у олимпиадников головокружение от успехов, а у простых смертных — отказы в перспективных для них местах.
Вопрос, который я хочу задать HR'ам — эта ситуация является недостатком системы отбора кандидатов или нет?
Я не HR и могу говорить только о Яндексе, но у нас нет такого, чтобы задачи для собеседований затачивались под олимпиадников. Единственное, что может быть как-то похоже — это необходимость написать код за время собеседования. Но это тоже никак не связано с олимпиадниками. Единственное, им в таких органиченных по времени условиях может быть комфортнее, чем другим.
Не могу согласиться, собеседовался как-то с ребятами из маркета и получил на одном из этапов хорошую стопку классических ACM-овских задачек на устное решение. Так что может и не везде в яндексе, но такие задачки задают. Не скажу, что это можно считать такой уж заточкой под олимпиадников, но люди не сталкивавшиеся со спортивным программированием с большой вероятностью эти задачи не возьмут.
Код, который предлагали написать, действительно был абсолютно не олимпиадный.
Почему «недостатком»? Заметьте, что эти несколько отметивших сами являются олимпиадниками, заметьте, чем они занимаются в Яндексе. Любая область влево иили вправо от создания сайтов, вёрстки и т.п. требует знания алгоритмов. Это нормально, если мы говорим про нормальные компании.
Если же о конторках, которые занимаются типичным вебом, то да, я встречал интервью, полностью состоящие из решения задач, либо же (что ещё более унылее) полностью состоящие из тестов на знание языка. Ни то, ни другое, не поддаётся объяснению, но и, собственно, можно представить чего ждать от такой конторки.
в Гугле есть негативная корреляция между победами человека на олимпиадах для программистов и его успехами в работе
Я не думаю, что это специфика Гугла. И корреляция, скорее всего, вызвана тем, что на работу берут или перспективных новичков (спортивное программирование — способ оценить перспективность), или уже опытных экспертов. По итогам работы часть новичков уходит, а профессионалы по большей части остаются — они в этом плане более предсказуемы. В итоге — такая странная корреляция, которая наводит на ложный вывод, что «олимпиадность» мешает карьере. Я уверен, что если сравнить новичков-не-олимпиадников и новичков-олимпиадников, или опытных-не-олимпиадников и опытных-олимпиадников, там всё будет наоборот.
А зачем нужно авторизоваться перед регистрацией? Напоминает регистрацию перед регистрацией. Нельзя как-то безо всяких этих паспортов с согласием Яндексу на обработку моих персональных данных просто одноразово зарегистрироваться?
Тестирующая система будет узнавать вас как раз по яндексовому логину, поэтому он необходим. Завести его совсем просто, например можно авторизоваться через социальную сеть
вот и спрашивается, если есть люди, понимающие что спорт программирование не очень то приближено к реальным задачам и зачастую мешает, то почему же они в яндекс олимпиадников набирают?
На то он и Яндекс, чтоб «реальные» задачи там соответствовали уровню и профилю олимпиадников. Если же вдруг олимпиадник попадает в фирму, где наиболее типичные «реальные задачи» — «сделать UNIT-тесты на entity bean» или «сделать веб-страницу» или «скрам-митинг с зарубежным аутсорс-заказчиком», то он просто плохо умеет искать работу. «Джуниорские» «реальные задачи», конечно же, будут олимпиадника демотивировать.
Факты изложены вполне верно, но вот анализ их несколько странный.
Спортивное и производственное программирование — ортогональные друг другу вещи, которые пересекаются всего в одной небольшой области — в том, что это, в любом случае, программирование, и в том, что для хорошего программирования, в любом случае, нужен интеллект.

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

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

И наоборот, тот, кто обладает быстрым интеллектом и испытывает потребность в общественном признании, которое полагается победителю олимпиад, вероятнее всего, будет испытывать фрустрацию от того, что его трудовой порыв не подкрепляется ни чем, кроме стабильно выплачиваемой зарплаты, а награждать его грамотой за каждую ударно написанную функцию никто не собирается.

Так что дело не в том, участвовал ли ты в олимпиадах, а в том, почему ты это делал. Если олимпиады — твой конек и твоя страсть, в производстве будет скучно и сложно. Если это всего лишь попытка реализовать себя — никаких проблем это повлечь не должно.
Судя по тому, что вместо того чтобы показать статистику нам показывают интервью, в Яндексе корреляция тоже отрицательная. :)))))))))))
Лучшая реклама — антиреклама! Суть статьи: «Ребята, если хотите работать у нас в Яндексе — занимайтесь спортом» :))
Не знаю как в Яндексе, но в жизни, к сожалению, часто бывает, как у Райкина «Кто сшил костюм?»:
— К пуговицам притензии есть?
— Нет! К пуговицам притензий нет! Пришиты намертво, не оторвёшь!
Так и с программами, можно писать спортивный код, можно писать промышленный код, от них может не быть толка; главный критерий качества кода — удовлетворение потребностей потребителя. Позиция «Я программист, я должен программки писать» приводит к отрыву от Земли :))
Похоже на то как оценивать полезность/вредность участников соревнований по скоростной или меткой стрельбе в составе группы войск, которая ведёт длительные боевые действия в горячей точке. Полезны ли их навыки меткой и быстрой стрельбы? Да, полезны, но насколько? Насколько они полезнее умения не попасть в засаду или окружение, например? Всё зависит от задач, которые ставит жизнь.
А может быть надо вводить специальное задание на олимпиадах и в соревнованиях по спортивному программированию:

− превратить не читаемый код в понятный.

Тоже за ограниченное количество времени. То есть тренировать навыки:

− прочитать код,
− сделать его чище.
Как предлагаете проверять код на «понятность»? Если я открою его в своей любимой IDE, нажму Auto format, а потом назначу каждой переменной случайное слово из словаря длиною в 5 букв, он станет понятным? Предложите решение, которое масштабировалось бы на несколько тысяч участников.
На codeforces некоторые соревнования собирают до 5000 человек. Все задачи тестируются автоматически на специально подготовленном наборе тестов. В сам код лезут только если надо глазами сопоставить два решения на предмет плагиата. Если бы можно было в автоматическом режиме проверить является ли код читаемым и понятным, то такие модули были бы уже встроены во все популярные IDE.
На соревнованиях TopCoder и Codeforces можно получать дополнительные баллы за тесты, которые валят решения соперников.

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