La mecánica de OO (es decir, la sintaxis y la semántica, la terminología, lo que es, lo que hace) son muy fáciles. Ellos "por qué" y "dónde" son la parte difícil. Te sugiero que aprendas la mecánica rápida y sucia en Wikipedia si aún no lo hiciste, y luego tomas un libro sobre patrones de diseño. Head First es una buena opción aquí. No creo que realmente pueda entender OOP (o realmente nada por el tema) a menos que sepa dónde es útil y qué problemas debe resolver.
Después de esto, el siguiente paso sería mirar las API que usa todos los días en su idioma favorito desde su nueva perspectiva. Debería empezar a ver por qué el uso de técnicas OO en ciertas situaciones hace que la API sea mucho más útil que si todo fuera simplemente funciones libres/estáticas y objetos de datos simples. También es posible que vea áreas donde OOP es torpe y se usa en exceso, y las funciones libres/estáticas y los objetos de datos viejos y simples pueden ser mejores soluciones.
Por último, es útil saber cómo se implementan algunos aspectos de OO en un nivel inferior.Comprender cosas como las tablas de funciones virtuales y cómo hacer OOP en C puro realmente agrega un nivel de profundidad a su comprensión de lo que puede y no puede lograrse con él, y cuáles son las ventajas e inconvenientes inherentes.
Y obviamente, intente integrar lo que aprende en el código que escribe.
Gracias por ese enlace, se ve bien. –
@Christopher: Sí, siento que ese sitio es una mina de oro. – GEOCHET
Esto es asombroso. ¡Gracias! –