Por um ensino de linguagens de programação sem obstáculos
Fala aqui alguém que já fez diversos cursos, tanto em livros e apostilas, quanto em vídeo-aulas. Os conteúdos que posso considerar como excelentes têm algo em comum: não criam obstáculos à aprendizagem. Isso porque o conteúdo não foi feito para demonstrar o que o autor(a) saber fazer e seus conhecimentos avançados e extraordinários, mas para ensinar o que o (a) estudante precisa saber. Parece estranho porque a nossa tendência é achar que quanto mais o (a) instrutor(a) sabe, mais será capaz de ensinar. E isso não é uma verdade. A verdade é que a capicidade de ensinar será maior proporcionalmente à capacidade de decidir o que é importante ensinar. Portanto, pode ser que você que saiba o mínimo de uma coisa, mas sabe que aquele mínimo é importante para o domínio da coisa, consiga ensinar muito bem também, porque está simplesmente ensinando o que importa.
Nem tudo o que sabemos é para ser ensinado e não por uma questão de manutenção de determinadas hierarquias entre quem sabe mais e quem sabe menos. Mas uma atenção ao fato de que é preciso ensinar aquilo que seja realmente essencial ao desenvolvimento do aluno dentro da linguagem e especialmente: NÃO SE CONSTITUA COMO UM OBSTÁCULO À APRENDIZAGEM.
Poderia dar inúmeros exemplos de obstáculos que se criam na hora de ensinar e alerto que estes obstáculos não são criados apenas no ensino de linguagem de programação. Há obstáculos criados, muitas vezes de forma deliberada, dentro de sala de aula, da educação básica ao ensino superior - quem nunca ouviu histórias de um(a) professor(a) que se gabava de ter reprovado a turma inteira em sua disciplina?
No entanto, no nosso meio, parece haver muita gente que adora manter viva a aura de que aprender programação é algo difícil (não que não seja em muitos aspectos, mas também não é única coisae nem de longe a mais difícil no mundo), de forma que só alguns seres especiais podem aprender. Isso também não é verdade. Podemos dizer que quem tem uma boa base em matemática ou em inglês poderá ter mais facilidade na aprendizagem. E isso significa que muitas vezes a dificuldade na aprendizagem de certas linguagens de programação vêm por deficiencia que o(a) aluno(a) possa ter em outras áreas correlatas à elas e não à elas em si mesmas.
Isso posto, vou dar um exemplo que me estarreceu sobre o ensino de javascript. Dizia o título do vídeo: tudo o que vc deve estudar de javascript. Nos primeiros minutos, o instrutor, reconhecido programdor de uma empresa focada no ensino/aprendizagem de linguagens de programação, diz que em razão das atualizações da linguagem, o(a) novato(a) deveria aprender a usar um compilador para que os browsers sejam capazes de interpretar novas funções recém-implementadas na liguagem. Então ele começa o vídeo ensinando a como usar um compilador.
Neste caso, o compilador é um obstáculo a aprendizagem porque no lugar de aprender sobre a linguagem, o (a) aluno(a) terá que aprender sobre como lidar com o compilador e numa hora em que absolutamente ele não é necessário. Veja: nem todas as versões mais modernas da lignagem precisam ser utilizadas com emergência, se as soluções das versões anteriores dão conta do recado. Esse preciosismo e essa pressa em estar sempre a frente, ensinar o que há de mais novo tem sempre duas consequências: deixar de ensinar o que importa e desmotivar quem precisa aprender, ensinando o que não é importante, nem mesmo útil para determinados estágios da aprendizagem.
Por isso eu suplico: não complique o que já é complicado; ensine o que tem que ser ensinado e livre os (as) alunos (as) de não progredir porque seu método de ensino é por si um obstáculo.