Начальный (но не элементарный) курс по программированию, в котором дается плавный переход от функционального программирования к ООП, объяснена польза ООП, зачем ООП было придумано и как им пользоваться:
www-inst.eecs.berkeley.edu/~cs61a/fa14
Я получил много ценных знаний при прохождении этого курса, хотя и проработал до этого программистом 2 года.
Курс идет вместе с адаптированной под питон книгой SICP (Structure and Interpretation of Computer Programs) со встроенными интерактивными вкусностями.
2 chapter этой книги посвящен ООП и основам, на которых он строится. Рекомендую не перепрыгивать через начало курса/книги.