Algoritmo para o desenvolvimento da aprendizagem [fechado]


16

Esta é uma pergunta bastante geral. Conheço um pouco de Perl e Python e pretendo aprender a programar com mais profundidade, para que, assim que pegar o jeito, possa começar a desenvolver aplicativos e sites.

Gostaria de conhecer um algoritmo (sequência de etapas :)) que descreva minha abordagem em relação à aprendizagem de programação em geral. Publiquei pequenas perguntas no Perl / Python e recebi uma grande ajuda de todos.

Nota: - Não tenho pressa de aprender. Eu sei que leva tempo e tudo bem.

Por favor, dê quaisquer sugestões que você julgue válidas. Além disso, por favor, não me force a aprender Lisp, Haskell etc. - eu sou iniciante.


Existe algum idioma específico que você deseja aprender? Eu sei que você menciona perl e python, é nisso que você está procurando entrar?
Jason

Então, o que você está pedindo é ... o que exatamente? O processo pelo qual você aprende um idioma específico? Programação em si? Usando o que?
amigos estão dizendo sobre glenatron

Eu acho que essa é uma boa pergunta. Eu editei para torná-lo um pouco mais claro.
Gary Rowe

Respostas:


28

O algoritmo de 11 etapas para aprender uma nova linguagem de programação

Atualmente, estou aprendendo o Lisp e recomendo o seguinte algoritmo:

  1. Pergunte se o idioma vale a pena aprender e onde bons recursos podem ser encontrados. Se respostas positivas ao idioma forem dadas por especialistas, prossiga para a etapa 2.
  2. Crie um ambiente de programação inicial. Mantenha as coisas simples: editor de texto e compilador / intérprete. O mínimo. Considere uma conta de usuário específica em sua máquina com um esquema de cores especial para indicar a mudança de mentalidade.
  3. Crie o "Olá, mundo!" inscrição.
  4. Aprenda instruções gerais de sintaxe e controle (se-então-outro, repetir até etc). Crie sandbox para verificar casos simples de controle (avaliações verdadeiras / falsas, etc.). Experimente todos os tipos primitivos (int, double, string etc.). Execute cálculos de moeda. O jogo de adivinhação de números (como sugerido por @Jeremy ) é bom para isso.
  5. Crie classe (se aplicável) com vários métodos / funções. Faça chamadas entre funções. Aplique instruções de controle.
  6. Aprenda matrizes e coleções. Crie exemplos adequadamente complexos que criam matrizes e coleções de cada uma das classes / funções / primitivas disponíveis para você
  7. Aprenda o arquivo IO. Crie exemplos de leitura, manipulação e gravação de arquivos binários e baseados em caracteres.
  8. Faça mais perguntas sobre programação idiomática dentro da linguagem (ponteiros, macros, mônadas, fechamentos, estruturas de suporte, ambientes de construção etc.).
  9. Escolha (ou adapte seu IDE) existente para trabalhar no idioma recomendado.
  10. Escreva uma variedade de aplicativos que agradam você (ou seu chefe).
  11. Após 1 ano, retorne à etapa 1 para outro idioma, mantendo seu interesse no que você acabou de aprender.

1
Eu achei o jogo de "adivinhação de números" um ótimo segundo programa para escrever. (Na etapa 4.) Ele permite que você aprenda sobre números inteiros, booleanos, entrada / saída de texto, loop e condições.
Jeremy Heiler

@ Jeremy Boa sugestão, eu coloquei lá.
Gary Rowe

Oi Gary- obrigado pelas instruções detalhadas eu vou tentar mapeá-lo com python - muito boa explicação passo a passo é por isso que eu amo essa cadeia de fóruns ... @ Jeremy sim, eu estou nele :)
user9057

esquema de cores especial para indicar a mudança de mentalidade , você pode esclarecer isso?
Santosh Kumar 07/02

Costumo escolher um esquema de cores mais escuras ao trabalhar com o Lisp, mas uso um leve para Java. A cor me lembra de mudar minha mentalidade.
Gary Rowe


2

Para todos os idiomas que você deseja aprender L

  • Etapa 1: aprenda a sintaxe de L.
  • Etapa 2: escreva um compilador Lno seu idioma favorito.
  • Etapa 3: escreva um compilador para o seu idioma favorito em L
  • Etapa 4: escreva um grande projeto linguisticamente em L
  • Bônus: verifique se o resultado da Etapa 2 é compatível com o resultado da Etapa 4.

Isso deve cobrir, volte para nós com um relatório de progresso em 10 anos .

Se tudo o que você procura é aprender a desenvolver Web, e você já conhece o Perl e o Python, você tem o suficiente para começar. Eu diria que comece a aprender os meandros do Apache (e especificamente mod_perle mod_python) e , em seguida, pratique. Talvez compre um ou dois livros sobre programação CGI, comunicação em rede e outros, em vez de manuais de idiomas específicos.

Como nota final, ser iniciante não é motivo para não aprender o Lisp. Vá conferir o SICP e as palestras em vídeo . Nenhum deles assume nenhum nível de especialização em desenvolvimento ou computadores. De fato, para citar a introdução às palestras em vídeo

Gostaria de recebê-lo neste curso de Ciência da Computação. [Escreve no quadro] Na verdade, é uma maneira terrível de começar. Ciência da computação é um nome terrível para esse negócio. Primeiro de tudo, não é uma ciência [risca "ciência"]. Pode ser engenharia ou pode ser arte. [...] também não é muito sobre computadores [risca "computador"]. E não se trata de computadores no mesmo sentido que a física não é realmente sobre aceleradores de partículas. E biologia não é realmente sobre microscópios e placas de Petri. -Hal Abelson


Parece divertido. Vejo você em 10 anos!
Jeremy Heiler

+1 na etapa 2, escreva um compilador para L! Cérebro ... dói ... muito ... muito ... agora.
Gary Rowe

-2

Não quero dizer muita coisa, exceto dois passos.

  1. Aprenda a estrutura de dados
  2. Aprenda a introdução ao algoritmo

PS Programação é sua tarefa diária.


Nos programadores, você é incentivado a "falar muito", não seja tímido :) Dê alguns detalhes sobre seus conselhos, como recursos, referências ou exemplos de suas próprias experiências.
precisa

-2

A melhor maneira é aprender o básico / fundamentos de uma linguagem de programação e ingressar em uma empresa como desenvolvedor júnior (contratado). Esta será a maneira mais rápida de aprender e ganhar dinheiro também pelo seu tempo;)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.