Qual é o processo que você usa para aprender uma nova linguagem de programação? [fechadas]

StackOverflow https://stackoverflow.com/questions/1020540

  •  06-07-2019
  •  | 
  •  

Pergunta

Esta questão é para programadores experiências. Você tem um processo conjunto que você siga quando se aproxima um novo idioma que você quer aprender?

Eu gostaria de ter um método eficiente ou uma lista de tarefas que eu poderia seguir para tornar o processo de aprendizagem mais simplificado.

Você prefere aprender sozinho ou com um amigo? Existe algum lugar onde você pode facilmente obter as gramáticas para as novas línguas? Você faz um tipo específico de folha de fraude onde você rapidamente anotar as estruturas de controle, e palavras-chave importantes?

Existem coisas específicas que você memorize?

Que tipo de bibliotecas que você certifique-se de aprender? Como você sabe que você aprendeu alguma coisa e em que ponto você se sente como se você conhece a linguagem?

Sempre que eu pegar um novo idioma, principalmente eu perder tempo desastrado através de livros que são metade para iniciantes e nunca para desenvolvedores experientes.

Foi útil?

Solução

Pessoalmente acho que eu preciso de um projeto substancial para implementar uma nova linguagem interessante. Você pode ler um livro em se familiarizar com a sintaxe, e estar exposto a características interessantes, mas um nada faz você pensar em um novo idioma como um projeto.

Outras dicas

Eu não propus a apenas aprender uma nova língua. I encontrar um projeto que requer (ou seria um bom ajuste para) a nova linguagem e começar a codificação.

Os recursos dependem do idioma, mas de qualquer um tutorial on-line ou um bom "aprender a língua" livro é muito útil. Eu não tente memorizar nada, apenas manter a documentação perto e procurar a solução para cada pedaço de código Eu preciso escrever. Algoritmos não mudam muito entre os idiomas, por isso na maioria das vezes é apenas uma questão de olhar-se a sintaxe para a necessidade particular estrutura I.

Além disso, eu nunca pode saber tudo sobre um idioma. Eu continuo consultar a documentação sobre as coisas que eu preciso e, eventualmente, eu não preciso de olhar a maioria das coisas mais. No entanto, mesmo na língua que eu já trabalhei com todos os dias durante anos, ainda há coisas que eu tenho que olhar para cima de vez em quando, porque eu nunca usei antes.

É uma corrida louca.

Primeiro eu tenho que ter certeza que eu sei como fazer as coisas da maneira "velha", ou seja, a maneira que eu estou acostumado a em outros idiomas.

Mas eu não quero cair na armadilha de (por exemplo) escrever meu código Python como se fosse código C, então eu ler-se sobre todas as coisas o novo idioma dá-me que as línguas mais familiares não .

Aqui está o que eu faço normalmente:

  • Leia a se familiarizar com o novo linguagem sintaxe
  • Encontre um projeto open source existentes Estou interessado na
  • Port-lo para o novo idioma
  • Repita conforme necessário

Eu li um manual bom, e compará-lo com uma linguagem que eu já sei. Então eu apenas aprender a comparação entre eles.

uma maneira muito popular para aprender uma nova língua é criar um projeto simples para si e para implementá-lo em seu novo idioma-alvo.

Gostaria de criar algo que eu já tenha feito antes, então posso me concentrar em sua própria língua, e não o design ou o tema do projeto.
Também gostaria de colocar algum tempo na busca de (este lugar é um bom começo ;-) e ler um bom livro sobre a linguagem.

Para o restante da prática prática prática (como quase tudo lá fora, não é).

As noções básicas de programação exigem muito poucas construções - Um bom programador será capaz de escrever código grande com apenas uma pequena fração dos recursos de linguagem disponível

.

Um livro é muitas vezes uma boa maneira de aprender o básico de um novo idioma e obter uma visão geral para que você saiba quais áreas do que a linguagem poderia ajudá-lo quando você precisar deles mais tarde, mas, em seguida, a melhor abordagem é apenas programas de gravação para fazer as coisas que você precisa fazer, e aprender o que você precisa saber como você vai.

A grande coisa sobre isso é que você sabe onde olhar quando você quer fazer algo novo, e você fazer as coisas bem, mas você não se preocupam em aprender um monte de lixo que você nunca vai realmente usar.

Gostaria de ler alguns FAQ / livro sobre os grandes conceitos do langage.

Então eu iria tentar encontrar comparações entre os langages eu já sei, de modo a evitar a aplicação em langage X um conceito utilizado em Y. langage Cada langage como a sua maneira de fazer as coisas, você não deve misturá-los, mesmo que eles semelhante à primeira vista.

Este seria o primeiro passo.

Em uma base mais, gostaria de seguir a secção dedicada a este langage em um fórum ou SO. Eu lia as respostas para muitos segmentos ao longo dos dias, de modo a agarrar conceitos avançados, dicas e librairies mais comumente usados. Isso também me ajuda a perceber quando estou começando a ficar fluente no idioma:. Quando você começar a ser capaz de responder a muitas perguntas aleatórias em um langage específico que significa que você está ficando muito bom nisso

Eu costumo começar com alguns programas básicos. Normalmente amostras do livro que estou lendo e, em seguida, modificá-los um pouco para ser mais complexo e completam as arestas.

Depois disso, eu cabeça para Projeto Euler e começar despejando problemas. É uma ótima maneira de se sentir confortável com uma nova linguagem e as construções básicas.

Eu costumo instalar o tempo de execução. Então eu executar alguns comandos comuns a partir da linha de comando no compilador ou intérprete. Eu olhar em linha para fóruns para descobrir o que outro pensa sobre isso. Então eu investigar como trabalhar com parâmetros externos, como PSVM (String [] args) em java. Eu acho que, para resumir, eu estou sempre interessado no poder línguas na linha de comando, devido à minha formação administrador de sistemas no Solaris.

Eu suponho que você aprender uma nova linguagem de programação de alto nível que suporta OOP. Exemplos de tais langages são: Java, Typescript, Perl, C #, C ++, etc. Você é um programador experiente, bem, então você já sabe alguma outra langage orientada a objetos

.

Eu gostaria de ter um método eficiente ou uma lista de tarefas que eu poderia seguir para tornar o processo de aprendizagem mais simplificado.

Você deve criar um projecto que abrange os seguintes tópicos.

Sintaxe

  • comentários
  • namespaces
  • declarações
    • if else
    • laços
    • switch case
  • funções e classes
  • include / import / use

específicas de classe:

  • estática
  • const / final
  • métodos de substituição
  • criar interface e implementar
  • herdar
  • classe aninhada

As estruturas de dados

  • array
  • coleções:
    • lista
    • Mapa, fila Stack
    • operações sobre eles:
      • exclusão
      • inserção
      • pesquisa
      • iteração
  • cordas

Você pode manipular com cordas de muitas maneiras:

  • substituir
  • jogo
  • join
  • Split

Operadores

=

Operador de atribuição às vezes é complicado. Você tem que verificar, se ele cria superficial ou cópia profunda.

Como é que funciona ==? Talvez haja uma alternativa como obj.equals(other)?

A concatenação:? s1 . s2 ou s1 + s2

Você pode sobrecarregar operadores?

técnicas de programação

  • tratamento de exceção
  • lambdas
  • interação com o usuário (read, write)
  • testes de unidade

O que são tipos simples, como int, bool, char? eles são imutáveis? Se este é fracamente digitado idioma, pode haver diferença entre escalares, variedade e tabelas hash.

Funções.

é um parâmetro passado por valor ou referência?

Diversos

  • regex
  • tópicos
  • formatos de dados:
    • JSON
    • XML
  • arquivos e córregos
  • HTTP métodos
  • datas e horas

    Você deve se familiarizar com as bibliotecas populares como Math, algorithm.

Se você não tem a chance de participar de um projeto e aprendê-la e aplicá-la a partir do zero. Você pode obter ajuda de cursos on-line abertos. "Edx.org" é uma grande plataforma por exemplo. Há uma abundância de cursos sobre ciência da computação e desenvolvimento de software. i.e. Aqui é um curso para Estruturas de Dados e Design Software .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top