Como faço para escolher um novo idioma rapidamente, dado que conheço vários outros? [fechadas]

14

Um tipo de pergunta que continua aparecendo no Programmers.SE é como aprender um idioma específico, já que você conhece vários outros (geralmente através de muita experiência ou educação).

Em alguns casos, no entanto, pode ser necessário acelerar rapidamente o trabalho, o desenvolvimento pessoal ou até mesmo verificar uma nova plataforma.

Na sua experiência, que estratégias gerais você usou para escolher um novo idioma rapidamente? Existem aspectos específicos de uma linguagem que você tenta focar ao começar o frio? Quais tipos de recursos você acha útil neste processo?

    
por 6 revsuser8 20.11.2011 / 12:10
fonte

8 respostas

18

Descobri que a melhor maneira de aprender um novo idioma é fazendo, não apenas lendo. E assim, quando eu quero (ou preciso) aprender uma nova língua, eu geralmente leio alguns capítulos de um livro de referência sobre sintaxe, mas depois eu mergulho e crio algo, em vez de ler e ler livro após livro. / p>

Descobri que, à medida que surgem problemas e dúvidas, as respostas são encontradas (geralmente na internet). Eu também acho que é por isso que o treinamento no trabalho é tão valioso, porque você está produzindo um produto de trabalho a maior parte do tempo, mesmo que seja uma versão de rascunho - e então você está aprendendo fazendo.

Encorajo as pessoas a pensar apenas no que lhes interessa e a mergulhar de cabeça na escrita de código ou na criação de formulários, etc.

Mais tarde, depois de ter criado projeto após projeto, um bom livro de referência lhe ensinará os detalhes que, nesse ponto, você compreenderá mais facilmente.

Além disso, os projetos geralmente começam menores e crescem em complexidade - desde o simples aplicativo "Hello World" até um projeto pequeno e pouco útil, até um aplicativo completo. Em termos de quais aspectos da linguagem eu me concentro, depende do uso aplicado da linguagem - eu nunca aprendo cada API ou framework para iniciar (como com o .NET, por exemplo). Isso levaria muito tempo. Eu aprendo a sintaxe central, depois ramifico a partir daí, pesquisando cada extensão conforme necessário. Com uma linguagem menos modular, como CSS ou XSLT, simplesmente aprendo as construções mais populares primeiro e adiciono outras conforme necessário.

    
por 21.05.2011 / 21:51
fonte
5

Isso funciona para mim:

  1. Leia sobre isso.
  2. Use-o.
  3. GOTO 1.

Para a etapa leia sobre isso , tento escolher "a" referência para o idioma. Por exemplo. "A Linguagem de Programação C". Ele precisa ser condensado, ao ponto, e construir seu conhecimento de forma incremental. Então eu li de capa a capa. Sou um leitor rápido e não me debruço nesta primeira leitura. Então eu volto e me refiro a pontos específicos enquanto estou tentando usar a linguagem. O que eu provavelmente gastarei mais tempo é exemplos de código dentro do livro.

A primeira coisa que você precisa é da sintaxe. Sem saber se é BEGIN ou {ou bloquear indentação, ou como você declara variáveis, você não pode escrever nada. O autor geralmente apresentará as partes mais importantes primeiro ou terá um tutorial que cobre o uso básico da linguagem. É difícil dar orientações mais gerais, porque algumas línguas são muito diferentes das outras. A próxima coisa é ter uma ideia geral da linguagem, qual é a filosofia geral, como você aborda a solução de problemas dentro do contexto da linguagem.

Outra coisa a ter em mente é o conceito de "use ou perca". Se você não usa um idioma há algum tempo, vai demorar um pouco para voltar à velocidade (embora esse tempo fique mais curto com a experiência). Depois de obter a sintaxe da linguagem, você precisará aprender sobre bibliotecas, etc.

Então é um processo iterativo. Indo mais fundo em cada iteração. Nunca termina. Mesmo depois de usar um idioma por 20 anos, ainda há algo para aprender.

    
por 21.05.2011 / 22:44
fonte
5

Pegue um projeto do mundo real

Do jeito que eu vejo, é mais fácil aprender algo quando você realmente precisa para aprender. Para mim foi com javascript, onde eu arrisquei aceitando um grande projeto com um período de dois meses. Era eu lá todos os dias e todas as noites tentando obter resultados para este projeto freelancer, e em 1 meses e meio o projeto estava pronto.

Eu também acidentalmente aprendi um pouco de SQL lá, então eu terminei de aprendê-lo na faculdade, e adivinhe, eu também tive um tempo mais fácil.

Se você não quer arriscar ...

A chave real para o ponto anterior é resolver problemas do mundo real ... mas eu trabalho melhor sob estresse (eu gosto de estresse, eu acho que é divertido e eu posso estar estragado, então ...). Se não o fizer, basta ir atrás de um projeto de código aberto que lhe interessa e usa o idioma que você quer aprender e tentar contribuir. Se o seu código é péssimo, você pode obter algum feedback dependendo da comunidade.

As chances são de que você vai progredir apenas estudando o código.

Obtenha toda a referência que puder

Isso inclui vários livros, documentação oficial e todas as referências que você pode obter. Chaces é que, dessa forma, você saberá como fazer a mesma coisa de maneiras diferentes.

Outras comunidades - como fóruns, listas de discussão e aqui - também contam como referência.

    
por 22.05.2011 / 05:10
fonte
2

Existem muitas maneiras de aprender um novo idioma, mas nem todas são igualmente eficientes. Eu achei essas três diretrizes que funcionam melhor para mim:

Crie um mapa do que você não conhece

Descobrir antecipadamente o que você precisa aprender. Encontre uma visão geral ou uma fonte geral de documentação que descreva o idioma em termos abstratos. A partir disso, normalmente você pode obter uma visão geral bastante completa do que é a linguagem. Use essa visão geral para destacar áreas que você não conhece, mas que são consideradas fundamentais para o idioma. A recursão de cauda é um conceito que você precisa aprender para realmente desenvolver a linguagem? Talvez você precise conhecer sua regex muito melhor, já que a linguagem é especializada em manipulação de strings. Ou, talvez, você realmente tenha que usar a sua álgebra, já que muitos dos conceitos no mapa da linguagem vêm diretamente de conceitos algébricos.

Obtenha bons recursos para ajudar você a aprender o que não sabe

Você pode querer obter uma boa referência em fórmulas algébricas, ou talvez queira apenas comprar " Javascript, as partes boas ". Para algumas curvas de aprendizado, este trabalho já foi parcialmente concluído. Se você está tentando aprender C # a partir de um background em Java (e vice-versa), há uma série de posts em blogs e sites que mapeiam as diferenças e contêm referências / recursos para ajudá-lo a aprender.

Certifique-se de que os recursos não sejam apenas referências. Certifique-se de que eles incluam testes ou exercícios para ajudá-lo a avaliar se você aprendeu um conceito adequadamente. Ler sobre recursão de cauda é uma coisa, e como isso é implementado na sua linguagem de escolha é outra.

Construa algo real

É quase impossível fazer qualquer tipo de aprendizado real sem um objetivo tangível em mente. Isso é especialmente verdadeiro para as artes aplicadas - que é o uso da linguagem de programação. Certifique-se de que você tem um alvo real para criar algo, geralmente é a melhor escolha.

    
por 21.05.2011 / 22:14
fonte
1

Identifique o (s) Paradigma (s) de Programação

Eu geralmente identifico quais são os paradigmas primários para a linguagem. Eu penso em problemas de forma diferente dependendo do paradigma.

Identifique os idiomas

Todas as línguas têm expressões idiomáticas. Os idiomas variam em tamanho e escopo, desde a forma como você estrutura o código até os fragmentos de código específicos. Você deve sempre tentar usar idiomas de idiomas.

Escreva o código

Eu costumo escrever algum código funcional. Qualquer coisa de uma peneira de Primes para aplicativos de web de brinquedo. Os problemas que escolho são geralmente específicos para o que pretendo usar na linguagem.

    
por 22.05.2011 / 06:25
fonte
1

Apenas mergulhe !!

Considerando que você já sabe programar e conhecer vários idiomas, exceto se essa linguagem introduzir uma mudança de paradigma muito profunda, eu diria (simultaneamente):

  • encontre um projeto para você,
  • e no programa lado alguns puzzlers

Aprenda, pratique, aplique (até que esteja satisfeito)

Os clássicos 99 Prolog Puzzles (aqui, os 99 quebra-cabeças no Scala ) ou o Project Euler geralmente são bons lugares para procurar pequenos puzzlers para reimplementar. Ou espreite o StackOverflow e reescreva algumas boas respostas em seu idioma de destino, tentando não fazer uma reescrita linha por linha, mas algo que capte a essência do seu novo idioma.

Aprenda com os quebra-cabeças, leia blogs e ensaios ao lado para entender melhor o idioma e ter uma ideia das ferramentas e das guerras sagradas de sua nova comunidade, e escreva seu projeto de teste para aplicar seu novo conhecimento e habilidades e ver o que você bate na estrada.

Falando em Comunidade ...

Compartilhe e se exponha. (Não muito, no entanto.)

Talvez você também queira visitar um grupo de usuários locais, encontrar parceiros para codificar (para obter algumas críticas construtivas e não se prender a uma mentalidade específica) e assinar esse assustador canal de IRC ou lista de discussão, onde eles descartam estranhos palavras sobre árvores AST e escrever tiradas filosóficas sobre como as mônadas não são mônadas e como uma vez você Conheci alguma garota estranha que você não pode voltar .

    
por 23.05.2011 / 22:06
fonte
0

Eu sei que isso é ridículo, mas comece a codificar algo, mesmo que seja bobo, e use muitas coisas do Google seguindo esse padrão:

como faço [algo de um idioma] em [outro idioma]

Se as palavras forem de uso comum, as literais citadas.

É uma questão bastante comum que praticamente as únicas vezes em que não encontro mais uma resposta é quando encontro uma página que explica por que isso não pode ser feito.

    
por 23.05.2011 / 21:54
fonte
0

Como sugestão específica para apenas usar o idioma:

Corrigir erros

  1. Encontre um projeto de código aberto interessante no idioma de destino, de preferência um com um rastreador de bugs público, desenvolvimento moderadamente ativo e um conjunto de testes decente.
  2. Escolha um bug para corrigir, de preferência um que incomoda quando você realmente usa o programa.
  3. Descobrir por que o programa exibe o comportamento de bugs.
  4. Escreva testes e código para corrigir o problema.
  5. Envie um patch upstream.
  6. Revise seu patch até que os desenvolvedores do upstream estejam felizes.
  7. Volte para a etapa 1 ou 2.

Esse processo tende a ser mais gratificante do que escrever outro programa de brinquedos, mas muito mais fácil do que iniciar seu próprio projeto completo do zero. Você fica exposto a alguns idiomas em seu contexto natural e (com alguma sorte) a ideia de alguém de como é um bom código.

Por outro lado, também pode ser extremamente frustrante, especialmente se você escolher um bug desagradável ou se os desenvolvedores rejeitarem seu patch sem explicar corretamente o motivo.

    
por 26.09.2011 / 19:32
fonte

Tags