Видите ли, вы должны понять понятие ОО и получить представление, разрабатывая небольшие приложения, применяя и применяя те же принципы в своей области, которые могут быть встроенными системами, дизайном ОС, генетическим алгоритмом или чем-то еще. *
Несмотря на то, что ОО лучше всего подходит для разработки (больших) бизнес-приложений, для каждого домена могут существовать некоторые доменные языки (DSL), которые хорошо подходят и идиоматически решают общие проблемы.
Примеры: R , языки функционального программирования (ML, F #, Haskell, Clojure), специальные математические инструменты (Matlab) и ...
В целом, вам может пригодиться общая практическая книга по программной инженерии, например книга Яна Соммервилля, которая дает вам общее представление.