I am not really sure I would agree - probably the best method to understand fastai code is to spend time with the library, changing things in code, reading it, trying things out, etc. But I honestly do not know as I have not attempted this - I am only taking a small bite at a time when I need to figure out how something works. Don’t think this approach does the library justice though and I hope I will be able to spend more time with it, looking at the code. There is one other aspect that relates to this - it seems that the best way to make sure you understand how something works is to rebuild it yourself (or some simplified version of it) so taking a chunk of the library and putting it in your own words might be the way to go as well and is something I have thought about doing.
Why do I care about OOP? Good things in my life seem to come through my ability to program. When I started to give fastai a proper go, I realized my ability to do ML / DL is mostly bounded by my ability to read and write code and being nearly a year and a half into this journey, I don’t think this has changed much if at all.
But maybe that is just rationalization
I seem to be going through a phase where I am enjoying thinking about what makes code readable and easy to maintain and share with others and this is genuinely fun. There seems to be a richness of ideas out there that I have not suspected existed. Much of my interest in programming has been rekindled by ML related things, such as this awsome fastai style guide, so I think that is really cool and is yet another thing I am very grateful to the fastai community for (the list of things I have learned from hanging around these parts is so long… its hard for me to believe).