Como você tem chances de aprender vários idiomas? [fechadas]

9

Eu li Um programador deve se concentrar em pelo menos quantos idiomas? , e descobri que não conheço idiomas no número 2, 3 da primeira resposta. Quero aprender mais idiomas para aumentar meus conhecimentos e habilidades de programação. No entanto, geralmente nas empresas, eles usam estrutura e idiomas fixos e as mudanças raramente. Portanto, não tenho certeza se posso ter a chance de aprender essas linguagens e acho que seria o mesmo para outros programadores.

No entanto, já vi muitos desenvolvedores que conhecem vários idiomas aqui. Como você tem chances de aprender vários idiomas?

Atualizar

Eu acho que há muitas pessoas que se sentem desconfortáveis ​​porque parece que eu não quero estudar no meu tempo livre. Na verdade, isso não é verdade. :) Sou um programador entusiasta e foi por isso que postei esse tipo de pergunta aqui. Eu estudo no meu tempo livre, mas achei que não seria suficiente ser hábil em idiomas. De qualquer forma, obrigado por todas as respostas!

Sanghyun Lee
fonte
7
Simplesmente, aprenda coisas novas em seu tempo livre.
Jonas
11
Cara, essa resposta foi postada por um programador de 39 anos. Eu acho que é uma boa lista, mas não se mate por isso.
Job
7
Você não "obtém" chances. Você faz chances. Se você quiser aprender mais idiomas, saia e faça. Não espere que alguma responsabilidade mítica do trabalho chegue até você.
Joel Etherton

Respostas:

10

Acho que a melhor maneira de aprender um idioma é usá-lo imediatamente para criar algo útil ou necessário .

Por exemplo, encontrei-me na necessidade de automatizar muitas operações que eu tinha que fazer manualmente todas as vezes. Tarefas repetitivas, criação de arquivos e pastas, etc ... então, simplesmente escolhi uma linguagem de script para criar uma ferramenta útil. Fui para o Perl e comecei a aprender a sintaxe e as funções necessárias para criar meu script, graças a tutoriais e livros on-line.

Em alguns dias, tive minha ferramenta em funcionamento e, nas horas vagas, continuei aprendendo coisas novas sobre a linguagem e adicionando mais funcionalidades a ela.


Outra ótima opção que vem à mente é: se você não encontrar um idioma que goste ou achar que não atende completamente às suas necessidades, ainda poderá criar seu próprio idioma .

Agora estou fazendo isso com o Perl. Escolhi uma sintaxe que me ajudaria a resolver meus problemas específicos (como você está escrevendo seu próprio idioma, convém escolher a sintaxe certa para o trabalho, a que melhor descreve e resolve seus problemas específicos de domínio).

O resultado? O desenvolvimento agora é muito mais rápido e o próprio código é muito mais descritivo porque é uma linguagem específica do domínio. Fiz uma pergunta relacionada a esse tópico há algumas semanas, com muitos links úteis.

Você pode usar qualquer linguagem de script para criar uma nova, mesmo com PHP.

Jose Faeti
fonte
Eu não sabia que posso criar minha própria linguagem com Perl. Você poderia elaborar ou me dar alguma referência?
Sanghyun Lee 5/09/11
Eu pedi isso aqui . Basicamente, você precisa criar um script que entenda (analise) suas entradas e faça tarefas diferentes com base no que você digita. Pode ser apenas um conjunto de funções ou uma sintaxe de linguagem completamente nova. Em seguida, você pode automatizar tudo, se necessário. Não apenas no Perl, você pode usar qualquer linguagem de script para criar uma nova.
Jose Faeti 5/09/11
8

Esse tipo de pergunta sempre me confunde. Eu usei 7 idiomas profissionalmente, escrevi código em mais de 5 idiomas em ambientes acadêmicos e de hobby e posso ler código em talvez mais uma dúzia de idiomas. Nem uma vez eu aprendi uma língua apenas por isso. Sempre há algum objetivo concreto e imediato em mente. Por exemplo, neste fim de semana, aprendi bibliotecas Android suficientes para começar a trabalhar em um aplicativo para minha família. Se tivéssemos iPhones, eu teria aprendido o Objective-C.

Meu sentimento é que o conhecimento de vários idiomas é um sintoma de ser um programador hábil ou, pelo menos entusiasmado, não uma causa disso. Se você não consegue pensar em um motivo convincente para aprender um novo idioma, não sei o quanto isso beneficiaria você.

Karl Bielefeldt
fonte
3

A melhor maneira de aprender um novo idioma quando você tiver um problema a resolver. Em vez de usar apenas o que você está acostumado, dedique algum tempo para ver quais ferramentas (linguagens, estruturas, bibliotecas) podem ser úteis para ajudá-lo a resolver o problema. Se você tiver tempo para aprender a nova ferramenta, vá em frente. Talvez você não consiga fazer isso no trabalho, quando tiver pressões de cronograma e limitações tecnológicas motivadas por fatores externos, mas não há motivo para não poder adotar essa abordagem em projetos pessoais.

Thomas Owens
fonte
2

Você apenas tem tempo para fazê-lo. Confira o livro "Sete idiomas em sete semanas", do Prags. Ele fornecerá uma introdução a sete idiomas muito interessantes e, a partir daí, você poderá percorrer todos os tipos de lugares.

Zachary K
fonte
1

Basta começar a usá-lo. Obviamente, construir um sistema de produção do zero em um idioma ao qual você nunca teve nenhuma exposição é uma má idéia, mas aqui estão algumas sugestões:

  • Aprenda no seu próprio tempo. Escolha um projeto que você achar interessante, onde esteja confiante de que poderá concluí-lo por conta própria. É melhor fazer uma leitura introdutória no seu novo idioma para julgar se é adequado - cada idioma tem pontos fortes e fracos e é melhor começar com um problema no qual o idioma foi projetado para se destacar.
  • Comece a executar tarefas de manutenção em um projeto existente. Dessa forma, você pode captar grande parte do idioma sem sequer ler a documentação: muito pode ser inferido a partir do código de exemplo e, para as partes em que você precisa ler a documentação, será muito mais claro porque você viu o código já. Também é mais fácil pesquisar "o que esse código faz" do que "como posso escrever um código que faça X".
  • Use seu novo idioma para pequenas ferramentas e auxiliares que você precisa: scripts de shell, código descartável para tarefas específicas, cálculos rápidos (por exemplo, os intérpretes interativos de muitas linguagens dinâmicas - python, lisp, haskell, etc. - são excelentes calculadoras). Nem todos os idiomas são adequados para isso.
tdammers
fonte
1

Escolha algo relativamente pequeno que você tenha feito em um idioma e desenvolva uma substituição imediata em outro idioma. Faça isso apenas para se desafiar. Para concluir, você aprenderá bastante sobre o outro idioma.

Na semana passada, decidi aprender e reescrever um back-end de serviço da Web no NodeJS (anteriormente um serviço JSP). Demorou apenas cerca de um dia para que o serviço básico funcionasse, e alguns dias depois Eu havia expandido sua infraestrutura, tratamento de erros, registro em log e adicionado monitoramento ao vivo. Agora é superior ao original. Se a gerência aceita ou não, é irrelevante, pois aprendi algo e estou muito feliz com isso.

Fosco
fonte
1
  • Considero que uma fração do meu trabalho é "pesquisa". Em 1998, a pesquisa significou a correção de bugs do ano 2000. A pesquisa do mês passado significou aprender o Subversion. Eu tenho feito pesquisas há 40 anos. Quando listo os idiomas, devo listá-los em ordem alfabética.

  • Quando aprendo um idioma, leio a capa do manual de referência. Então, eu realmente uso por alguns meses. Então li o manual de referência novamente. A segunda leitura revela muitos truques e implicações que eu perdi na primeira vez.

  • A pesquisa prática abrange idiomas normais, como C # e Pascal. A pesquisa avançada cobre idiomas estranhos, como LISP e FORTH. Você provavelmente nunca usará o LISP profissionalmente, mas aprendê-lo amplia sua mente consideravelmente.

  • Obviamente, no meu ambiente, não sou pago por tempo, sou pago pela entrega. Se eu puder entregar em duas semanas, usando seis horas por dia, posso usar os outros três para pesquisa. Se demorar doze horas por dia, bem, nenhuma pesquisa então.

  • Toda pesquisa, é claro, deve ter alguma utilidade potencial para quem está me pagando. Pequenos utilitários são bons; da próxima vez que você quiser processar seu código fonte C, tente em Python. (Não, eu não conheço Python, mas ouvi dizer que é bom para manipulação de strings.)

Andy Canfield
fonte
0

Às vezes, as oportunidades vêm do seu emprego. Geralmente, há um dos três drivers para esse tipo de oportunidade.

  1. É uma nova tecnologia. Por exemplo, muitas empresas pagaram pelo treinamento em C # para seus desenvolvedores nos primeiros dois ou três anos após o lançamento do .NET.

  2. É fácil de aprender. Por exemplo, em uma loja linux, você encontrará que precisa escrever scripts .bash. Se você estiver usando sessões de terminal etc., e houver outros desenvolvedores com experiência em escrevê-las, você poderá adquirir essa habilidade, apenas para automatizar algumas de suas próprias tarefas.

  3. É uma habilidade técnica pouco utilizada, e sua empresa não deseja passar pelo tempo e pelas despesas de encontrar um consultor para fazer o trabalho. Por exemplo, aprendi a escrever XSLT porque precisávamos de uma maneira fácil de transformar alguns arquivos XML (log) para exibição.

Outras oportunidades que você precisa criar para si mesmo fora do trabalho. Escolha com cuidado - quais tecnologias você considera úteis no futuro? Nesses casos, você precisa dedicar tempo e esforço para aprender e aplicar a tecnologia. Isso deve fazer parte de um plano geral de carreira, e talvez você precise pagar pelas aulas. (Tive sorte - quando aprendi Java, eles o ensinavam à noite em uma faculdade comunitária local).

Jay Elston
fonte
0

Respondendo à sua pergunta, de acordo com minha própria experiência (sou bastante novo na indústria, não muito disso), aprendo novos idiomas pesquisando para saber qual idioma melhor se adapta às minhas necessidades. Na faculdade, eu tinha um projeto de criptografia que exigia o uso de números inteiros grandes. Ele estava se tornando bastante combersome em C ++, então eu virei para Java, pois fornecia a classe BigInteger. No meu trabalho atual, pude ver que o script de shell não era capaz de resolver completamente meu problema sem se tornar muito complexo, então aprendi Perl. Aprender em tempo real é meu conselho como um requisito. Obviamente, se você se sentir entediado, há um mundo inteiro de idiomas a serem explorados.

Abhishek Anand
fonte