Excerpt from Sandi Metz' 99 Bottles of OOP
It turns out that everything you need to know about Object-Oriented Design (OOD) can be learned from the "99 Bottles of Beer" song.
Well, perhaps not everything, but quite certainly a great many things.
The song is simultaneously easy to understand and full of hidden complexity, which makes it the perfect skeleton upon which to hang lessons in OOD.
Switch to the branch corresponding to your preferred programming language and follow the instructions in the README!