Um tipo de pergunta que continua surgindo sobre os programadores é como aprender um idioma específico, desde que você conheça vários outros (geralmente através de muita experiência ou educação).
Em alguns casos, no entanto, pode ser necessário agilizar rapidamente o trabalho, o desenvolvimento pessoal ou até mesmo verificar uma nova plataforma quente.
Na sua experiência, quais estratégias gerais você usou para aprender rapidamente um novo idioma? Existem aspectos específicos de um idioma em que você tenta se concentrar ao começar a frio? Que tipos de recursos você considera úteis nesse processo?
Respostas:
Eu descobri que a melhor maneira de aprender um novo idioma é fazendo, não apenas lendo. E assim, quando quero (ou preciso) aprender um novo idioma, geralmente leio alguns capítulos de um livro de referência sobre sintaxe, mas depois mergulho direto e crio algo, em vez de ler e ler livro após livro.
Descobri que, à medida que surgem problemas e perguntas, são encontradas respostas (geralmente na internet). Eu também acho que é por isso que o treinamento no trabalho é tão valioso, porque você produz um produto de trabalho na maioria das vezes, mesmo que seja uma versão preliminar - e então você está aprendendo.
Encorajo as pessoas a apenas pensarem no que lhes interessa e a mergulhar na escrita de código ou na criação de formulários etc.
Mais tarde, depois de criar projeto após projeto, um bom livro de referência ensinará os detalhes que, neste momento, você entenderá com mais facilidade.
Além disso, os projetos geralmente começam menores e aumentam em complexidade - do aplicativo simples "Hello World" a um projeto pequeno e pouco útil, e a um aplicativo completo. Em termos de quais aspectos da linguagem eu me concentro, isso depende do uso aplicado da linguagem - nunca aprendo todas as APIs ou estruturas para iniciar (como no .NET, por exemplo). Isso levaria muito tempo. Aprendo a sintaxe principal e, em seguida, 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.
fonte
Isso funciona para mim:
Para ler sobre isso , tento escolher "a" referência para o idioma. Por exemplo, "A linguagem de programação C". Ele precisa ser condensado, direto 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 refiro a esta primeira leitura. Depois, voltarei e me referirei a pontos específicos enquanto estou tentando usar o idioma. Provavelmente gastarei mais tempo com exemplos de código dentro do livro.
A primeira coisa que você precisa é a sintaxe. Sem saber se é BEGIN ou {ou bloquear recuo, 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 aborda o uso básico do idioma. É difícil fornecer diretrizes mais gerais, porque alguns idiomas são muito diferentes dos outros. A próxima coisa é ter uma idéia 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, levará algum tempo para voltar à velocidade (embora esse tempo fique mais curto com a experiência). Depois de obter a sintaxe do idioma, você precisará aprender sobre bibliotecas, etc.
Portanto, é um processo iterativo. Aprofundando a cada iteração. Nunca termina. Mesmo depois de usar um idioma por 20 anos, ainda há algo a aprender.
fonte
Pegue um projeto do mundo real
Na minha opinião, é mais fácil aprender algo quando você realmente precisa aprender. Para mim, foi com javascript, onde arrisquei aceitar um grande projeto com prazo de dois meses. Era eu lá todos os dias e todas as noites tentando obter resultados para esse projeto freelancer, e por 1 mês e meio o projeto estava concluído.
Também aprendi acidentalmente algum SQL lá, depois terminei de aprendê-lo na faculdade e, adivinhem, 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 trabalho melhor sob estresse (gosto de estresse, acho divertido e posso ser danificado, então ...). Caso contrário, siga um projeto de código aberto que lhe interesse e use o idioma que você deseja aprender e tente contribuir. Se o seu código for ruim, você poderá receber algum feedback, dependendo da comunidade.
As chances são de que você fará progressos 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. As chances são de que, dessa maneira, você saberá fazer a mesma coisa de maneiras diferentes.
Outras comunidades - como fóruns, listas de discussão e aqui - também contam como referência.
fonte
Existem várias maneiras de aprender um novo idioma, mas nem todas são igualmente eficientes. Eu achei essas três diretrizes que funcionam melhor para mim:
Faça um mapa do que você não conhece
Descubra, com antecedência, o que você precisará aprender. Encontre uma visão geral ou uma fonte geral de documentação que descreva o idioma em termos abstratos. A partir disso, você geralmente pode obter uma visão geral bastante completa sobre o que é o idioma. Use essa visão geral para destacar áreas que você não conhece, mas são consideradas essenciais para o idioma. A recursão da cauda é um conceito que você precisa aprender para realmente impressionar o idioma? Talvez você precise conhecer melhor seu regex, pois o idioma é especializado em manipulação de strings. Ou talvez você realmente precise usar sua álgebra, já que muitos dos conceitos na linguagem mapeiam diretamente a partir de conceitos algébricos.
Obtenha bons recursos para ajudá-lo a aprender o que não sabe
Você pode querer obter uma boa referência sobre fórmulas algébricas, ou talvez queira comprar " Javascript, as partes boas ". Para algumas curvas de aprendizado, este trabalho já foi parcialmente realizado. Se você está tentando aprender C # com base em Java (e vice-versa), há uma série de posts e sites de blog 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 - inclua testes ou exercícios para ajudá-lo a avaliar se você aprendeu um conceito corretamente. Ler sobre recursão de cauda é uma coisa, mostrar como é implementada no seu idioma de escolha é outra.
Construa algo real
É quase impossível fazer qualquer tipo de aprendizado real sem um objetivo tangível em mente. Isto é especialmente verdade nas artes aplicadas - que é o que é o uso da linguagem de programação. Certifique-se de ter um objetivo real para o qual buscar - construir algo geralmente é a melhor escolha.
fonte
Identifique o (s) Paradigma (s) de Programação
Eu costumo identificar quais são os principais paradigmas da linguagem. Penso nos problemas de maneira diferente, dependendo do paradigma.
Identifique os idiomas
Todos os idiomas têm expressões idiomáticas. Os idiomas variam em tamanho e escopo, desde a estrutura do código, até fragmentos de código específicos. Você deve sempre tentar usar os idiomas de um idioma.
Escreva código
Eu costumo escrever algum código funcional. Qualquer coisa, desde uma Peneira Primária até aplicativos da Web para brincar. Os problemas que escolho são geralmente específicos para o que pretendo usar o idioma.
fonte
Apenas mergulhe !!
Considerando que você já sabe como programar e conhecer vários idiomas, exceto se esse idioma introduzir uma mudança de paradigma muito profunda, eu diria (simultaneamente):
Aprender, praticar, aplicar (até ficar satisfeito)
Os clássicos 99 Prolog Puzzles (aqui, os 99 Puzzles em Scala ) ou o Project Euler geralmente são bons lugares para procurar pequenos quebra-cabeças para reimplementar. Ou espreite o StackOverflow e reescreva algumas boas respostas no idioma de destino, tentando não reescrever linha por linha, mas algo que capte a essência do seu novo idioma.
Aprenda com os intrigantes, leia blogs e ensaios ao lado para entender melhor o idioma e ter uma idéia das ferramentas e das guerras sagradas da sua nova comunidade, e escreva seu projeto de teste para aplicar seus novos conhecimentos e habilidades encontrados. veja em quais obstáculos você encontra.
Falando em Comunidade ...
Compartilhe e se exponha. (Não muito, no entanto.)
Talvez você também queira visitar um grupo de usuários local, encontrar amigos com quem codificar (para receber algumas críticas construtivas e não se prender a uma mentalidade específica) e se inscrever no canal assustador do IRC ou na lista de discussão em que eles soltam palavras estranhas sobre a AST árvores e escreva artigos filosóficos sobre como as mônadas não são mônadas e como uma vez que você conheceu uma garota estranha, não pode voltar .
fonte
Sei que isso parece ridículo, mas comece a codificar algo, mesmo que seja bobo, e use muito Google para coisas que seguem esse padrão:
como faço [algo de um idioma] em [outro idioma]
Se as palavras forem comuns, use literais entre aspas.
É uma pergunta bastante comum que praticamente as únicas vezes em que não encontro mais uma resposta é quando encontro uma página que explica por que ela não pode ser feita.
fonte
Como sugestão específica para usar apenas o idioma:
Fix Bugs
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ê é exposto a alguns dos idiomas da linguagem em seu contexto natural e (com alguma sorte) à ideia de alguém sobre como é um bom código.
Por outro lado, também pode ser extremamente frustrante, principalmente se você escolher um bug desagradável ou se os desenvolvedores rejeitarem seu patch sem explicar adequadamente o porquê.
fonte