Ah, OK. I had something more foundational in mind. :)

Most uni language courses tend to focus on teaching programming rather than the language and its professional tooling. So you’re probably looking for vocational training (or screencasts, blogs, and conference talks).

For learning OOP, Practical Object-Oriented Design in Ruby is very down to earth and effective. It’s what I aim newly-minted professionals at. (The Ruby bit is not essential and shouldn’t scare you away; the author just needed a clear language for teaching the ideas in. It’s junior JavaScript, Objective-C, Swift, Java, and Kotlin devs that I’m seeing read and benefit from it.)

The trick with OOP is that there are multiple OOPs, but most texts seem to fail to acknowledge that. Exercises in Programming Style does a good job in recognizing that explicitly. It illustrates several OOP styles and many other programming styles with great economy. Each handful of pages solves the same small problem in a different style. The styles are explained in terms of the constraints they embrace.

/