Подтвердить что ты не робот

Как люди так быстро программируют соревнования?

Надеюсь, это не смутный/широкий/субъективный вопрос. Если это так, закройте его.

В любом случае, на нескольких соревнованиях по программированию (таких как Google Code Jam, Facebook Hacker Cup и т.д.), к тому моменту, когда я успешно понял проблему и имею представление о том, как ее подойти, я вижу, что половина вопросов уже решены многими людьми.

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

Кроме того, всякий раз, когда я проверяю код победителей, я вижу много используемых макросов. Это означает, что у них есть шаблон (например, #define для циклов до некоторой сокращенной версии), который они используют для быстрой работы. Значит ли это значительная разница?

4b9b3361

Ответ 1

Дело в том, что вы соперничаете с людьми, которые потратили огромное количество времени на освоение своего мастерства, чтобы конкурировать на этих соревнованиях. Вы вряд ли скоро поймаете, но...

How do these people get so good?

Получите теоретические знания для решения проблем и практики, практики, практики.

Is it pure genius?

Это может быть, но практика может в разумной степени компенсировать это.

Is it experience?

Да.

Is it the ability to think really fast?

Не совсем. Практика позволяет правильно подойти к проблеме и пропустить незначительные детали в заявлении проблемы.

How would you suggest I improve my skills?

Получите теоретические знания и практику.

Do macros make a significant difference?

Он может сократить 10% от вашего времени, но, вероятно, не намного больше.

Ответ 2

Статистически говоря, любой конкурс программирования с достаточно большой аудиторией привлечет супер-талантов, которые могут отличить красивый и элегантный код на сверхскоростной скорости. Это похоже на марафон. Запуск в течение 4 часов действительно хорош, даже если мировой рекорд составляет около 2 часов. Не беспокойтесь об этом.

Сосредоточьтесь на качестве и элегантности кода вместо того, чтобы быть способным выкачать код на сверхскоростной скорости. Практикуйте, получайте удовольствие и не смотрите слишком много на то, как быстро работают другие люди.