Você pode melhorar suas habilidades de programação aprendendo outros paradigmas de linguagem?
Na minha experiência, definitivamente sim. Ter várias maneiras diferentes de atacar um problema é como uma paleta de ferramentas. Um dia você (como eu) terá uso para essas outras ferramentas. Ou possivelmente não. Tudo depende. Alguns exemplos:
Os idiomas geralmente não são independentes, eles vêm com um ambiente. Passei um pouco de tempo aprendendo uma língua estranha, conhecida como awk . Ele se baseia na correspondência de padrões usando "expressões regulares". Ao tentar aprender o C ++ STL (sem muito sucesso), aprendi sobre mapas. Combinando esses dois conceitos, eu poderia escrever rapidamente alguns utilitários de transformação de texto em Pearl (o único idioma disponível na plataforma).
Principalmente por diversão, tentei aprender Erlang (não muito bem-sucedido). Possui uma biblioteca de funções conhecida como OTP implementando, entre outras coisas, uma maneira de lidar com erros, às vezes conhecida como deixar falhar e ter um monitor reiniciando as funções. Eu usei essa idéia em algumas áreas, às vezes simplesmente deixando as coisas falharem, em vez de fazer testes sem fim.
Tentar aprender Haskell (novamente sem muito sucesso) realmente abriu meus olhos para outras maneiras de atacar problemas. A programação funcional meio que (na minha opinião) começa com a escrita de um código que diz qual resultado você deseja, não com a escrita das etapas envolvidas na obtenção de lá. Acho que isso realmente me ajudou a escrever um código SQL melhor.
Ultimamente, tentei um pouco de javascript. E encontrou um ambiente conhecido como assentiu. Não é necessário código para criar um pequeno servidor de automação residencial.
Para colocar em perspectiva, a maioria das minhas brincadeiras em vários idiomas foi (e é) em um nível bastante superficial, principalmente para ter uma ideia do que as pessoas estão falando. Existem pouquíssimos idiomas nos quais posso ser produtivo.