¿Puedes mejorar tus habilidades de programación aprendiendo otros paradigmas de lenguaje?
En mi experiencia, definitivamente sí. Tener varias formas diferentes de atacar un problema es como una paleta de herramientas. Un día usted (como lo hice) tendrá uso para estas otras herramientas. O posiblemente no. Todo depende. Algunos ejemplos:
Los idiomas generalmente no están solos, vienen con un entorno. Pasé un poco de tiempo aprendiendo un idioma extraño conocido como awk . Se basa en la coincidencia de patrones utilizando "expresiones regulares". Al tratar de aprender el STL de C ++ (no muy exitoso) aprendí acerca de los mapas. Combinando estos dos conceptos, podría escribir rápidamente algunas utilidades de transformación de texto en Pearl (el único lenguaje disponible en la plataforma).
Principalmente por diversión intenté aprender Erlang (no muy exitoso). Tiene una biblioteca de funciones conocida como OTP que implementa, entre otras cosas, una forma de manejar errores, a veces conocida como dejar que falle y tener un monitor que reinicia las funciones. He usado esta idea en algunas áreas, a veces simplemente dejando que las cosas fallen en lugar de hacer infinitas pruebas.
Intentar aprender Haskell (de nuevo, no con mucho éxito) realmente me ha abierto los ojos hacia otras formas de atacar los problemas. El tipo de programación funcional (en mi opinión) comienza con la escritura de código que dice qué resultado desea, no con la escritura de los pasos necesarios para llegar allí. Creo que esto realmente me ayudó a escribir un mejor código SQL.
Últimamente probé un poco de javascript. Y encontró un entorno conocido como noder. No se necesita código para crear un pequeño servidor de automatización del hogar.
Para ponerlo en perspectiva, la mayor parte de mi juego en varios idiomas fue (y está) en un nivel bastante superficial principalmente para tener una idea de lo que la gente está hablando. Hay muy pocos idiomas en los que puedo ser productivo.