Как по мне лучшей идеей будет изучение языка на как-раз таки мелких задачках, для освоения синтаксиса. Идеальным вариантом считаю обучение по книге, так как информация там структурирована и пробелов будет минимум. После изучения основ, заняться проектом, на котором залатаешь дыры и научишься эффективнее использовать инструменты языка. Длительное решение задачек, особенно олимпиадных, не приведет ни к чему хорошему. Олимпиадное программирование, как и ЕГЭ и тому подобное "программирование" минимум общего с реальными задачами. Также зачастую, при их решении, набор используемых инструментов языка, может быть значительно уменьшен, что не позволит в полной мере понять язык.
ИМХО