Eu basicamente concordo com a resposta de FrustratedWithFormsDesign , mas você também perguntou como aprender o novo paradigma ajuda a desenvolver as habilidades de alguém. Eu posso dar alguns exemplos da minha própria experiência.
Desde que aprendi programação funcional, sou muito mais consciente sobre quais conceitos com os quais trabalho são mais naturalmente considerados "objetos" (geralmente onde a mutação faz sentido) e quais são mais naturalmente considerados "valores" imutáveis (acho que há uma distinção importante , tocando em onde OO faz sentido vs. quando FP faz sentido, mas essa é apenas a minha opinião).
Percebo onde meu código inclui efeitos colaterais e sou mais cuidadoso em isolar esses locais, tornando mais funções "puras" minhas funções. Isso melhora muito a testabilidade do meu código OO.
Estou mais consciente dos ciclos na minha representação de dados. (Por exemplo, eu não acho que você possa escrever uma função para converter uma lista vinculada em uma lista duplamente vinculada em Haskell, para que você observe ciclos muito mais nesse idioma.) Evitar ciclos reduz a quantidade de sincronização você precisa executar para que suas estruturas de dados sejam internamente consistentes, facilitando a carga no compartilhamento dessas estruturas entre os encadeamentos.
É mais provável que eu recorra à recursão (as construções de loop recursivo do esquema são coisas bonitas). Dijkstra abordou a importância disso em Notas sobre programação estruturada - algoritmos recursivos mapeiam muito diretamente a indução matemática, o que ele sugere ser o único meio de provar intelectualmente que nossos loops estão corretos. (Não sugiro que devemos provar que nosso código está correto, mas que, quanto mais fácil formos fazê-lo, maior a probabilidade de que nosso código esteja correto.)
É mais provável que eu use funções de ordem superior. Artigo de John Hughes, Por que a Programação Funcional é Importante . Ele enfatiza a composibilidade que você obtém ao empregar técnicas de programação funcional, com funções de ordem superior desempenhando um papel importante.
Além disso, conforme abordado na resposta de Jetti , você verá que muitas idéias de FP estão sendo incorporadas em novas linguagens OO. Ruby e Python fornecem muitas funções de ordem superior. Ouvi o LINQ ser descrito como uma tentativa de trazer suporte para compreensão monádica no C #, mesmo o C ++ agora tem expressões lambda.