Разделите вашу проблему на более мелкие задачи.
Когда вы чувствуете, что небольшая проблема достаточно мала, чтобы ее решить, решите эту проблему.
Например: ваша основная задача - "используя технику, описанную в статье в википедии, подсчитайте, сколько дней осталось до следующего четверга ".
Задачи, достаточно малые для превращения в функцию:
- вычисление (или поиск) год конца света (понедельник для 2011 года)
yeardoomsday(2011)
- вычислить (или посмотреть) месяц конца света (7 для марта)
monthdoomsday(2011, 3)
вызывает yeardoomsday (2011) где-то внутри функции - ...