Я несколько не согласен с тем, что решения на TopCoder не являются примерами хорошей практики. Решения, представленные лучшими пользователями, часто бывают очень простыми и не обязательно чрезвычайно эффективными, достаточно эффективными. Что действительно важно, так это то, что код очень короткий, что делает его намного более простым для понимания, особенно если вы еще не знаете решение.
Я не рекомендую писать обычные программы в одном и том же стиле, но это определенно может научить вас чрезмерному проектированию. Я видел решения на Java с пользовательскими итераторами, компараторами и т. Д., И их было намного сложнее понять, даже если сам алгоритм был тривиальным.
Однажды я прочитал эссе Пола Грэма, где он утверждает, что программы с меньшим количеством токенов легче понять. TopCoder убедил меня, что это правда, по крайней мере, в некоторых доменах.