Ask HN: How to Learn Object Oriented Designing?

1 points by shivajikobardan 15 hours ago

I want to learn inheritance, abstraction and encapsulation in depth. Likewise I want to learn about the need of interface and abstract classes. I want to learn to design objects.

I am using Java.

I found a course which seems OP but it is not freely available(like all the good things in the world).

https://course.ccs.neu.edu/cs3500/

It recommends Effective Java, GoF, Head First Design Patterns etc. But most of those books are more of a style guide.

I am currently at a phase where I do not understand how to design object oriented programs. I have been coding everything under Main class like crazy.

I need a detailed course, or book to learn this as I am a very slow learner. And I am doing this for fun, so there is no time constraint. There are books like grady booch, craig larman, but they are bit too dry in my opinion. But I might change my mind.