Вот вам ещё одно мнение: отложите пока книги и теорию. Чтение всего подряд "про запас" — это трата времени на вашем этапе. Начните какой-нибудь проект, который пригодится лично вам. Какой-нибудь каталогизатор, планировщик, менеджер расходов. Если уже более или менее знакомы с языком, можно сразу попробовать создать собственный блог на джанго. Берёте туториал из официальной доки и повторяете за ними. Потом меняете его под свои нужды.
Как только встречаете трудности — решаете эти конкретные трудности. Нужно как-то по-особому преобразовать список? Берёте книжку Лутца и читаете раздел про списки. Нужно организовать хранение данных в БД? Читаете раздел про БД и туториал по sqlite. Какая-то проблема, связанная с джанго? Открываете документацию джанго и ищете нам нужный раздел. Всё равно не понятно? Идёте в гугл и вбиваете ваш вопрос. Так, пока не решите проблему, затем двигаетесь дальше.
В итоге у вас получится ваш первый большой проект, за который вам скорее всего будет стыдно впоследствии, но это не страшно. Вы набрались бесценного опыта. Теперь можно почитать книжку с теорией, и слова в ней приобретут для вас новый смысл. Уже в процессе чтения у вас будут появляться мысли, как можно улучшить ваш проект, а где вообще переписать его заново. Вот и займитесь этим.
Иногда будет ощущение, что вы ничерта не понимаете. Можете остановиться здесь и глубже закопаться в вопрос. А можете просто пойти дальше. Возможно, вам просто не хватает опыта, и ответ придёт позже сам собой. В любом случае, не бойтесь этого чувства, это не конец света, его переживает каждый программист без исключения.
Потом вы встретите задачу, где вам реально понадобится рекурсия. Вот вы начали писать привычный цикл for, как ни в чём ни бывало, но вдруг понимаете, что вам его уже не хватает. Вы снова прочтёте этот жуткий непонятный раздел про рекурсию в книге со сложными непонятными примерами, но прочтёте как детективный рассказ, потому что у вас есть задача, которую нужно решить.
Потом вы доберётесь до классов и перепишете ваш проект в парадигме ООП. Вы поразитесь, насколько код стал более читаемым, насколько проще стало добавлять новые функции. Только так вы поймёте ООП, а не читая определения терминов "инкапсуляция, полиморфизм, наследование".
В общем, практикуйтесь и не бойтесь трудностей : )