Для того чтобы не допускать «мелкие досадные ошибки» лучше начинать с минимального прототипа, который можно охватить одним взглядом и легко протестировать. Иногда для быстрого прототипирования в олимпиадном программировании помогает знакомство с другими языками и подходами. Очень полезно тренироваться на типичных олимпиадных задачах, чтобы уметь реализовывать типичные алгоритмы с закрытыми глазами.
Чтобы эти рекомендации сработали — необходимо фиксировать свои ошибки, иначе не будет хорошей обратной связи и ясной картины. Это требует определенного рода дисциплины