Como você maximiza o conhecimento que obtém de um livro de programação? [fechadas]

26

Não porque eu me importo com o tempo que alguém leva para ler um livro, mas mais porque estou interessado em saber como as pessoas obtêm o conhecimento de um livro (ou acho que outras fontes) em seus cérebros da melhor e mais eficiente maneira.

Pessoalmente, adoto uma abordagem com várias passagens (da minha resposta à pergunta original):

  1. Percorra o conteúdo, mergulhe e leia qualquer coisa com um título interessante e, finalmente, observe todos os diagramas e ilustrações agradáveis. Não vou aceitar muito nesta fase, mas isso me dá uma visão mental do livro (uma hora ou mais)
  2. Primeiro, ao ler o livro, geralmente lerei os capítulos de abertura completamente para um livro que é muito pesado ou que apresenta algo completamente novo. Para livros que abordam um assunto que eu já conheço, irei pular ou pular partes que parecerem triviais. O restante do livro analisarei razoavelmente rapidamente, mas não tão rapidamente que estou apenas folheando a página. (cerca de uma semana)
  3. Nem todos os livros que li chegaram até aqui, mas se eu achar um livro interessante ou útil o suficiente, então o estudarei adequadamente. Examinarei o livro em um ritmo mais lento e farei alguns ou todos os exemplos, testarei o código, etc. Frequentemente pularei capítulos inteiros aqui, a menos que o livro seja realmente bom (1-3 semanas dependendo do livro).
  4. Finalmente, quando eu terminar de ler e ler outros livros, frequentemente vou mergulhá-lo várias vezes para fazer referências cruzadas, comparar, procurar coisas, navegar etc. - muitos dos meus livros favoritos não acabam se reunindo poeira na estante.

Raramente faço anotações ao ler (embora possa fazer um planejamento no papel se estiver trabalhando em algo como um exemplo de código). Também considerei começar a usar um Kanban pessoal para organizar meu progresso, mas nunca cheguei a usar essa técnica. Mapas mentais são outra coisa de que gosto, mas raramente gosto.

Quais outros métodos as pessoas têm? Quão bem sucedido você os encontra? Existem técnicas geralmente recomendadas que você considera uma perda de tempo?

FinnNk
fonte
Eu, pessoalmente, tento provar que o autor está errado ou ver se há casos extremos que se rompem ou eu não entendo. Na IMO, qualquer conhecimento que você aprenda, mas não teste o erro, pode ser uma faca de dois gumes.
que você

Respostas:

30

Faça os exercícios.

Se não houver, invente alguns.


fonte
3
E depois de fazer os exercícios, reimplemente-os em seu próprio código, à sua maneira. Os exemplos são bons e adequados, mas nada como uma implementação no mundo real para compreender completamente um conceito.
Hugo
+1: você pode adicionar isso ao topo desta resposta: "Prática".
19412 Klaim
Todos os livros de programação atualmente até o final apresentam um projeto curto. Fazer isso é a maior referência que qualquer um pode ter para acompanhar o progresso.
Venki
6

Certifique-se de aplicar algumas das técnicas em sua programação diária o mais rápido possível.

Acho que, se eu não aplicar imediatamente as coisas que aprendi, preciso visitá-las novamente quando realmente precisar delas.

ChrisF
fonte
1
Absolutamente. Também acho que é somente quando você aplica algo em um contexto diferente do apresentado no livro que você realmente muda da memorização para a compreensão. Infelizmente, nem sempre é possível ... apesar de ser o gerente de desenvolvimento em que trabalho, então ninguém vai me questionar se posso encontrar uma razão plausível pela qual devemos fazer isso no Prolog ou o que for, é às vezes não é apropriado trazer as coisas para o trabalho cotidiano. Acho que é para isso que servem os projetos pessoais, mas você perde muitos dos benefícios do aprendizado acumulado.
FinnNk
@FinnNk - eu não disse que seria fácil;) Esse é o problema que tenho no momento com o WPF. Estou fazendo um projeto em casa, mas não tenho muito tempo para gastar nele, por isso estou constantemente tendo que revisar o que sei.
ChrisF
6

Destaque qualquer coisa que o surpreenda. Isso tornará mais fácil encontrá-lo no futuro.

Escreva nas margens extensivamente.

Se você emprestar seu livro a alguém, peça que siga as mesmas regras, de preferência em cores diferentes. Isso agrega valor ao seu livro.

Andy Lester
fonte
2

Vá em frente com um amigo. Melhor ainda, considere a leitura do livro como um exercício como Pair Programming, onde os dois tentam explicar um ao outro. (E, claro, faça os exercícios como foi dito acima)

Zachary K
fonte
1

Implemento

Implemente cada novo algoritmo ou técnica sobre a qual você leu por conta própria, usando apenas a memória da descrição do algoritmo ou técnica como referência.

Jay Beavers
fonte
1

Devido a uma deficiência de atenção minha, acho difícil me concentrar quando estou aprendendo com uma abordagem tradicional do início ao fim. Eu pulo para o final do capítulo e vou direto para os exercícios e depois uso uma combinação do livro e da Internet como referência para resolver os problemas.

Quando me coloco em uma posição em que tenho que usar o material do livro como um meio para o fim, em vez de estudá-lo "porque eu deveria conhecê-lo", os conceitos se tornam muito mais fáceis de entender e praticar.

Meus problemas de foco também significam que não digito os exemplos de código diretamente e, em vez disso, penso em meus próprios exemplos e uso o código do livro para me ajudar a percebê-los. Ser criativo com o processo de aprendizagem garante que eu estou me divertindo com ele, e a singularidade do que eu criar facilita a lembrança do que estou fazendo.

gr33kbo1
fonte