Developers with an OOP background, no matter how experienced, struggle when they first stumble upon components on GameObjects in Unity. Alternatively, they enforce OOP principles in their Unity projects… and struggle later on.
This article tells you how to embrace component-based design.