Você pode ouvir muitas vezes que os programadores devem aprender muitos idiomas diferentes para melhorar a si mesmos. Ainda vou à escola e não tenho grande experiência em programação (pouco mais de um ano). Mas o que era a intenção nobre de melhorar as habilidades de programação se transformou em algum tipo de TOC: sinto que não vou me acalmar até aprender todas as linguagens de programação relativamente conhecidas.
E aqui está a própria pergunta: As linguagens de programação poliglotas realmente o ajudarão (e não quero dizer o habitual "O programador deve conhecer pelo menos todos os paradigmas", quero dizer realmente todas as linguagens que você costuma ouvir)? Alguém tem experiência semelhante? Ajuda no trabalho / habilidades / carreira? Com que frequência você consegue aplicar essas habilidades?
fonte
Respostas:
Isso ajuda
Isso não ajuda. Embora, depois de conhecer todos os paradigmas, você possa aprender um idioma por semana.
É simplesmente mais ideal passar uma semana aprendendo esse idioma quando você precisar desse idioma.
Nota:
Aprender idiomas comuns / populares não é tão útil quanto aprender "todos os paradigmas". O primeiro não cobre o último. Por exemplo, aprender auto é incrivelmente útil para entender OO prototípico. Não é uma linguagem comum nem popular, mas é muito mais útil do que aprender python quando você já conhece o ruby.
Design da linguagem:
Conhecer a maioria dos idiomas é útil se você estiver escrevendo / criando um novo idioma. Portanto, há um caso de uso sólido para isso, mas é um nicho bastante.
O que eu recomendo que você faça:
Leia o código completo 2 pelo menos 3 vezes
Os idiomas vêm e vão para a esquerda e para a direita, dependendo do que é popular. A tecnologia se torna obsoleta após meses ou anos, dependendo de como é a curva da tecnologia. (A web desaprova a tecnologia a cada 6 meses).
A técnica de programação e a teoria da ciência da computação sempre permanecem as mesmas.
fonte
Não se trata de saber codificar em uma variedade de idiomas, mas, como você diz, sobre os paradigmas. Quanto mais opções você souber, melhor. Conhecer vários idiomas certamente ajuda, mas se você continuar aprendendo os mesmos tipos de idiomas, rapidamente chegará a um beco sem saída.
A chave é saber qual idioma / sistema é melhor para implementar uma parte do seu projeto. Mesmo se você tiver decidido um idioma principal (como a maioria dos projetos), ainda terá todo tipo de ferramentas, scripts, automação e suporte à criação que precisam ser escritos. Normalmente, uma variedade de outros idiomas ou ferramentas é melhor do que o seu idioma principal.
Só para esclarecer, acho tolo tentar aprender todos os idiomas sobre os quais você realmente ouve: existem centenas deles e, frequentemente, são apenas pequenas variações em outros idiomas.
fonte
IMHO, não. Primeiro porque você não pode aprender um idioma em menos de um ano. Demora 2 dias para poder escrever código nele, mas é necessária muita experiência para escrever código fluente e bem formado para o idioma especificado. Por que o GC funciona como funciona, onde alocar memória, quais construções são mais rápidas, como concatenar corretamente as seqüências de caracteres, quais são os cantos perigosos do idioma etc.
Eu escrevo código Java / .NET terrível como desenvolvedor de C ++, como muitos desenvolvedores de Java escrevem código C ++ terrível.
A melhor parte de aprender outras línguas é que você aprende novos paradigmas e talvez tenha uma ferramenta melhor para algum problema concreto. Digamos - você precisa de um aplicativo GUI não público muito rápido, o .NET é insubstituível lá.
Mas aprender uma linguagem para que você não use estruturas no .NET, ou não vaze todos os objetos em C ++, leva muito tempo. Eu acho que é melhor gastá-lo na aprendizagem de princípios de design, plataformas e seu idioma de escolha.
Mas esta é apenas a minha opinião.
fonte
Não é prático conhecê- los, mas pode ser muito útil saber sobre eles. O que quero dizer com isso é que, quando você recebe um novo problema, pode dizer: "Lembro-me vagamente de que [outro idioma] tinha uma maneira superior de resolver problemas como esse. Eu deveria procurar isso".
fonte
Você ajudaria mais sua carreira desenvolvendo conhecimento de domínio e aprendendo muitas linguagens de programação. Sem mencionar que você precisará aprender ferramentas extras, como usar um criador de perfil em seu idioma, o mesmo para depurador, a melhor estrutura de GUI e como programar rapidamente com ele, quais bibliotecas comuns de terceiros existem com tradeoffs e idiomas específicos de idioma.
Também é mais sábio aprender a fazer mais coisas do que muitas maneiras de fazer a mesma coisa.
fonte
Trabalhei em vários sistemas em que os componentes foram escritos em vários idiomas (o pior infrator exigia que eu entregasse o código escrito em Ada 83, C, Fortran 77, SQL e DCL, enquanto meu último trabalho exigia que eu entregasse código C ++ e Java ) Então, sim, existem casos do mundo real em que você precisa conhecer várias linguagens o suficiente para ser produtivo nelas (produtivo! = Proficiente; você não será um especialista profundo em C ++ e Java e ... a menos que você é uma aberração).
Além disso, o objetivo de aprender a usar vários idiomas é ajudar a separar os conceitos da implementação . Para mim, OOP não começou a fazer sentido até que eu trabalhei com vários OOPLs. Além disso, em algum momento de sua carreira, você terá que mudar rapidamente de marcha e começar a trabalhar em algo totalmente novo e desconhecido; levar algum tempo para ir além do que você precisa saber ajudará a facilitar essa transição quando ela acontecer.
fonte
Acho que seria melhor aprender algumas línguas diferentes e depois pelo menos uma em profundidade antes de começar a necessidade de aprender todas as línguas possíveis. Depois de ter uma quantidade mínima de amplitude, a profundidade se torna realmente importante para o seu progresso como desenvolvedor. Eu teria visto alguém com profundidade em uma ou duas línguas e um punhado de outros dois do que alguém com um punhado de tudo. Obter profundidade é como aprender outro paradigma, isso mudará a maneira de pensar sobre programação e abrirá portas para projetos emocionantes realmente complexos.
fonte
É como aprender a falar muitas línguas. Aprender todos eles a ponto de ser útil é quase impossível. Atenha-se àqueles que provavelmente usará e ficará melhor. Você pode aprender C ++, C # e Java muito bem, mas tentar espremer Perl, Python, VB (não VB.NET), Ruby e JavaScript para um nível profissional ao mesmo tempo é simplesmente idiota. Não há horas suficientes no dia para manter suas habilidades em todas elas ao mesmo tempo.
fonte