Interpretação de código de computador e funcionamento do cérebro
Linguagem e cognição
- Aprender programação de computadores é semelhante a aprender uma nova língua.
- Neurocientistas do MIT descobriram que ler código de computador não ativa as áreas do cérebro associadas ao processamento da linguagem.
- Em vez disso, ativa a rede de múltiplas demandas, que é acionada ao realizar tarefas cognitivas complexas.
Método de pesquisa
- Os pesquisadores conduziram o experimento usando duas linguagens de programação: Python e ScratchJr.
- Os participantes do experimento ficaram deitados em um scanner de fMRI, observaram trechos de código e previram qual comportamento aquele código produziria.
- Os resultados mostraram quase nenhuma resposta nas áreas cerebrais relacionadas à linguagem, enquanto a rede de múltiplas demandas foi ativada principalmente.
Efeito da experiência
- Os pesquisadores mencionam que pessoas dedicadas à programação podem, com mais experiência acumulada, desenvolver especialização em áreas cerebrais específicas.
- No entanto, no estudo atual, essa especialização não apareceu em pessoas com relativamente pouca experiência em programação.
Conclusão
- Não há uma resposta clara sobre se programação deve ser ensinada como uma habilidade baseada em matemática ou em linguagem.
- Educadores de ciência da computação precisam desenvolver sua própria abordagem para ensinar programação da forma mais eficaz possível.
Opinião do GN⁺
- A relação entre programação e o cérebro: Este estudo é interessante por mostrar que programar ativa áreas cerebrais diferentes daquelas ligadas ao processamento da linguagem. Isso pode oferecer uma nova perspectiva para metodologias de ensino de programação.
- Abordagem educacional: Ao ensinar programação, é necessário considerar tanto uma abordagem matemática quanto uma abordagem linguística. Isso abre oportunidades para oferecer ensino personalizado a diferentes perfis de aprendizes.
- Importância da experiência: O fato de que áreas específicas do cérebro podem se especializar à medida que a experiência em programação se acumula reforça a importância do aprendizado de longo prazo e do acúmulo de experiência.
- Rede de múltiplas demandas: Como essa rede está envolvida em várias tarefas cognitivas, a programação pode ajudar não apenas na aquisição de uma habilidade técnica, mas também no desenvolvimento da capacidade de resolver problemas complexos.
- Direção de pesquisas futuras: São necessários estudos adicionais com programadores mais experientes, o que pode fornecer dados importantes para a otimização do ensino de programação.
1 comentários
Opiniões do Hacker News
O link para o artigo não foi fornecido, mas provavelmente é este artigo. Os pesquisadores mostraram trechos de código para programadores e pediram que previssem qual seria o comportamento daquele código.
Segundo o artigo vinculado, certas áreas específicas do cérebro são ativadas ao ler código, e são áreas usadas para resolver cuidadosamente problemas não familiares. Mas isso pode não se generalizar para pessoas com mais de 30 anos de experiência em programação.
Lex Fridman entrevistou recentemente o linguista Edward Gibson, e a conversa inclui a ideia de que a leitura de código ativa partes do cérebro diferentes das usadas pela linguagem.
Tentar fazer linguagens de programação se parecerem com linguagens humanas é um erro básico. Linguagens de programação estão mais próximas de construir algum tipo de estrutura, o que é diferente de comunicação.
A diferença entre linguagens de programação e linguagens humanas é que programar está mais próximo de construir uma estrutura. A linguagem humana pode ser usada para comunicação com vários propósitos.
Seria mais interessante comparar a atividade cerebral entre leitura de código e leitura de linguagem humana formalizada, ou entre leitura de linguagem formalizada e não formalizada.
O que mais me ajudou a escrever código limpo foi fazer aulas de escrita acadêmica. Prever código se parece mais com uma tarefa de planejamento do que com um centro de linguagem.
Leio código de projetos open source em um canal no YouTube. Isso se parece com leitura visual de música. Os pesquisadores quase não viram resposta nas áreas de linguagem.
Trabalho principalmente em casa e ouço música e canto enquanto programo. Mas não consigo cantar enquanto leio. Enquanto codifico, consigo.
Ler código é diferente de ler prosa ou fazer matemática. É como resolver um quebra-cabeça. Você precisa conectar e traduzir várias coisas em tempo real.
Ler código é como olhar a foto de engrenagens e perguntarem "a engrenagem A gira no sentido horário ou anti-horário?". Parece estudar um mecanismo.
Ao ler código, não ouço uma voz de narrador na minha cabeça.