¿Es una buena idea aprender Smalltalk antes de aprender conceptos de POO en general? ¿Hay alguna fuente para aprender Smalltalk por mi cuenta?

Absolutamente. Smalltalk es la mejor manera de aprender de qué trata realmente la POO.

Comience con un buen lenguaje de enseñanza . Tal lenguaje es muy simple y fácil de aprender. No tiene rarezas ni peculiaridades que puedan distraer al principiante de su objetivo más importante: aprender los conceptos básicos de programación. Esto descarta lenguajes industriales como Java, Python, JavaScript y C, todos los cuales llevan una gran cantidad de equipaje.

Solo conozco algunos buenos idiomas de enseñanza: Logo, Pascal, Scheme y Smalltalk. De estos, recomiendo altamente Smalltalk. Vea la respuesta de Richard Kenneth Eng a ¿Qué lenguaje de programación se considera el más fácil para los principiantes?

Smalltalk fue diseñado para enseñar programación a niños. Esto debería convencerlo de que es muy, muy fácil en comparación con todos los demás idiomas. (Al mismo tiempo, Smalltalk es uno de los idiomas más poderosos del mundo.)

Más tarde, puede seleccionar fácilmente Java o Python, dos de los idiomas más populares. Ambos son buenos para el desarrollo web y la programación general, lo que más te interese.

Aprenda Smalltalk aquí: https://hackr.io/tutorials/learn

Algunas sugerencias adicionales:

  • El mejor libro que he leído en la barra de POO es el software de orientación orientada a objetos de Bertrand Meyer. No es una lectura ‘fácil’, ya que tendrás que pensar mucho en algunos lugares. Pero hace el mejor trabajo que he visto al explicar los principios de OO.
  • En cuanto a idiomas: me mantendría alejado de C ++. Demasiado grande para fines de aprendizaje. Si desea un idioma que realmente lo ayude a entender la OO (a diferencia de uno en el que escribiría las aplicaciones principales en / obtendría un empleo), consulte SmallTalk. O Eiffel (el lenguaje en el libro de Meyer arriba).
  • Si desea un idioma que sea un poco más convencional pero que aún sea fiel a los principios de OO, Python es una buena opción. Java y C # son decentes también si quieres tipografía estática.

Sin embargo, una advertencia: el idioma no te enseñará OO. Solo puede ayudar (o dificultar) en qué tan bien soporta los conceptos de OO. Aprender OO es realmente aprender a pensar en términos OO. Para eso volvería al libro de Meyer.

Aprendí Smalltalk del número de Byte August 1981 (que parece estar disponible aquí: Byte Magazine Volume 06 Number 08 – Smalltalk: Descarga y transmisión gratuitas: Internet Archive

Otro libro del que se puede aprender es _A Little Smalltalk_ de Timothy Budd, que habla sobre cómo implementar el lenguaje y cómo usarlo. Utiliza una jerarquía de objetos más simple que la mayoría de los Smalltalks, pero logra transmitir las ideas.

Probablemente hay otros que te indicarán la documentación de Pharo (los estoy usando para aprender a Pharo cuando no estoy muy agotado por el trabajo, así que no los he terminado o los he llegado muy lejos.

En cuanto a la otra parte de la pregunta, el aprendizaje de Smalltalk le enseñará muchos conceptos de POO, ya que prácticamente todo es un objeto en Smalltalk.

(¿Alguien más recuerda cuando Byte emitiría un problema centrado en un lenguaje de programación cada agosto?)

Creo que Pharo es el mejor Smalltalk gratuito que está disponible actualmente.

Si está interesado en la programación de HTML5 y JavaScript, estoy desarrollando una versión de Smalltalk centrada en la web que es compatible con la sintaxis de Pharo.

Habrá una versión gratuita disponible próximamente, con suerte para Navidad.