Qual é a eficácia da abordagem 'tentáculos do conhecimento' para o Comp. Sci?

15

Eu estava lendo isso no Math SE. A questão básica é:

Suponha que alguém deseje estudar algo avançado; uma maneira de fazer isso seria começar do básico e construir. Mas a "imagem maior" pode se perder nesse processo. Um outro método (que prefiro chamar de Wiki recursivo) é pegar um artigo e o Google / Wiki os termos que não se entende; Leia-os. Dentro deles haverá termos que são novos; Google / Wiki-los até chegar ao "caso base" de conhecer o material completamente. Trabalhe para trás até entender completamente o papel. Repita o procedimento para outros papéis. Isso permitirá o ganho de conhecimento, mantendo a motivação. Mas, pode causar problemas nos fundamentos.

É baseado em um artigo do Prof. Vakil, de Stanford. Aqui está um trecho:

..... a matemática é tão rica e infinita que é impossível aprendê-la sistematicamente, e se você esperar para dominar um tópico antes de passar para o próximo, nunca chegará a lugar algum. Em vez disso, você terá gavinhas de conhecimento que se estendem para longe da sua zona de conforto. Depois, você pode aterrar mais tarde com essas gavinhas e estender sua zona de conforto; isso é muito mais fácil do que aprender "encaminhar". (Cuidado: esse preenchimento é necessário .....

O consenso geral entre os oponentes desse método era que não havia problema em campos como Geometria Algébrica, onde são publicados 100 artigos por trimestre ou em pesquisa da Teoria das Cordas, onde se você tentasse criar conceitos matemáticos antes de tocar na Teoria das Cordas, 80 com Alzheimer. Minha pergunta é: essa é uma boa estratégia para estudar o CompSci?

Como o Comp Sci é tão multidisciplinar (e é geralmente necessário que os engenheiros conheçam matemática e computação), esse modo de estudo recursivo é bom o suficiente para a pesquisa acadêmica? Ou o modo tradicional é bom demais para ser substituído?

Por exemplo, eu precisava saber sobre o Translation Lookaside Buffer (TLB) com 0 conhecimento de sistemas operacionais.

Meu caminho recursivo (conforme a Wikipedia) foi:

TLB> Cache> (Voltar) TLB> Tabela de página> (Voltar) TLB> Endereço virtual> (Voltar) TLB> Reler. Feito

Sinto que sei o que é TLB e, se o encontrar novamente, saberei o que está acontecendo. Estou me enganando?

Inquérito
fonte

Respostas:

8

Não acho que você esteja se enganando necessariamente, mas tome cuidado ao usar o que aprendeu. Nesse caso, é relativamente fácil. Se você precisar projetar seu código com o reconhecimento de TLB em mente, provavelmente terá o que precisa agora e poderá provar isso por si mesmo escrevendo programas. No entanto, se alguém lhe pediu para projetar e implementar um TLB, talvez você precise fazer mais pesquisas.

Eu acho que a parte importante de aprender qualquer coisa é também tentar entender os limites do seu conhecimento.

A abordagem de gavinhas é claramente um bom método para certos tipos de aprendizado. Você deve usá-lo onde apropriado. O bom do outro método é que você aprende muitas outras coisas ao longo do caminho que podem ser úteis na construção de suas idéias e planos para atacar problemas. Por exemplo, agora você sabe algo sobre TLBs, mas se não encontrou e aprendeu a si mesmo sobre acessos não temporais (por exemplo, para escolher um exemplo aleatoriamente) enquanto estava aprendendo sobre TLBs, pode ter perdido uma parte extremamente importante conhecimento sobre como otimizar sistemas de memória. Se você tivesse começado de baixo para aprender sobre sistemas de memória em chips, provavelmente teria encontrado acessos não temporais (ainda que rasos), para saber que também precisa ter isso em mente.

Sugiro que você espalhe criteriosamente o aprendizado em ambas as categorias enquanto trabalha para resolver seus problemas. É raro que você comece com uma declaração de problema totalmente formada de qualquer maneira, portanto haverá uma mistura de trabalho para frente e para trás e iteração sobre a natureza do problema à medida que você o trabalha.

Bill Barth
fonte