• Ronaldo Mota

Aprender a programar é mais que programar



Educacionalmente, em geral, associamos cognição ao processo de aprendizagem de determinado conteúdo, bem como dos procedimentos e técnicas a ele relacionados. Metacognição, por sua vez, trata da reflexão acerca do que foi aprendido e de como se aprende. Grosso modo, cognição tem a ver, mais diretamente, com “aprender”, enquanto metacognição com o “aprender a aprender” ou com a reflexão acerca do processo, ampliando o nível de consciência do educando sobre sua própria aprendizagem.


Dominar uma linguagem de programação é estar apto a estabelecer um sistema de comunicação que permite aos desenvolvedores de software dar instruções às máquinas. Via instruções escritas, seguindo a lógica de uma linguagem previamente estabelecida, ordens precisas são emitidas aos computadores e outras máquinas para obter um determinado resultado. Seja ela uma operação matemática, a criação de um documento ou um determinado movimento, entre outras inúmeras simples ou complexas ações.

Tal como ocorre com os idiomas em geral, algumas linguagens de programação podem compartilhar vocábulos ou estruturas de frases e outras podem ser completamente distintas. De qualquer forma, tal qual idiomas, cada linguagem de programação tem seus vocábulos e sua própria sintaxe e regras semânticas, os quais, no conjunto, a caracterizam.

Não há e não haverá uma receita única para ensinar programação. Tampouco há uma linguagem totalmente dominante e que atenda a todos os propósitos. Na prática, cada uma delas se mostra mais apropriada para determinada circunstância. De acordo com pesquisa recente (maio 2021) da Plataforma StackOverflow, contemplando consulta a mais de 80 mil desenvolvedores no mundo, as mais populares são as seguintes linguagens, na ordem: JavaScript, HTML/CSS, Python, SQL e Java. São também positivamente citadas: Rust, Clojure, TypeScript, Elixir e Julia.

Da mesma forma, determinadas linguagens podem ser adotadas também em função do nível de maturidade do educando, desde a aprendizagem na educação básica aos complementos no ensino superior, e especialmente por usuários em geral em função de aplicações profissionais mais avançadas.

Por sinal, sobre ensino de linguagens de programação para crianças e adolescentes, é importante propiciarmos acesso o mais amplo possível e a todos os interessados. O argumento equivocado de que não caberia àqueles que não pretendem ser programadores é equivalente a menosprezar o letramento aos que não serão, no futuro, escritores. Steve Jobs, no intuito de convencer as pessoas sobre o seu projeto de computador pessoal, chegou a defender que aquela máquina seria a “bicicleta da mente”. Aprender a programar, dizia ele, era tão importante para exercitar a mente quanto andar de bicicleta era para exercitar o corpo.


Para alguém como eu, educado em Fortran, é mais fácil perceber a evidente impermanência das linguagens de programação ao longo do tempo, bem como sua grande diversidade em qualquer tempo. Porém, algo parece ser perene na aprendizagem de qualquer linguagem, tal que o domínio de qualquer uma delas, quando bem desenvolvida, contribui, e muito, com aprender as próximas.

Em suma, a mais adequada abordagem educacional no contexto atual parece ser aquela que entende ser mais relevante aprender a aprender linguagens computacionais, em geral, evitando a tentação de ficar restrito a uma particular linguagem, circunstancialmente na moda. Nesse sentido, associamos, em geral, a aprendizagem de uma particular linguagem aos processos cognitivos mais simples. Por sua vez, a metacognição, que vai além da cognição, diz respeito à capacidade de ampliar a consciência do aluno acerca de como ele aprende, preparando-o para as próximas aprendizagens.

Ou seja, ao ensinarmos o domínio de qualquer linguagem ao estudante, há que se explorar, simultaneamente, a reflexão acerca de sua própria aprendizagem, preparando-o a conjugar a habilidade do domínio de linguagens à atitude de não temer novos desafios no mundo da programação, sejam eles quais forem.

Em outras palavras, também na área da aprendizagem de linguagens de programação, mais importante do que o que foi aprendido, relativo à cognição, é termos estimulado no educando a prática de aprender a aprender, continuamente e ao longo de toda a vida, a chamada metacognição. Trata-se de aprender programação, não somente uma linguagem específica para fazer um determinado programa.

Em suma, linguagens são apenas ferramentas e o principal objetivo educacional deve ser promover a devida maturidade do futuro profissional, permitindo que ele tenha uma boa visão do potencial de várias linguagens de programação. Dentro do referencial cognitivo, a preocupação central é ensinar uma determinada linguagem (ou um software específico), enquanto na perspectiva metacognitiva o mais relevante é capacitar o educando a aprender linguagens novas, sejam elas quais forem, incluindo aquelas que nem sequer foram ainda desenvolvidas.

* * *


Ronaldo Mota é diretor acadêmico do IPD/ITuring e diretor científico da Digital Pages.


O artigo acima é de responsabilidade do autor e não reflete necessariamente a visão do Educa 2022.