Iniciando na programação: Existe uma linguagem ideal?
Uma visão sobre o papel das linguagens no ensino de programação
Aprender programação é algo diferente de tudo o que já aprendemos ao decorrer da vida. Tirando aqueles que aprendem ainda crianças, para a maioria não é fácil assimilar a técnica para criação dos famosos algoritmos, muito menos a aplicação destes em uma linguagem de programação.
Eu aprendi a programar de forma efetiva na universidade. E é lá que percebemos o quão difícil é separar uma atividade em passos, o fundamento básico para a criação de um algoritmo. É demais para quem passou anos decorando fórmulas e capítulos para fazer uma prova, reflexos de uma escola defasada em métodos de ensino.
Mas esse texto é para falar do que vem depois do aprendizado do algoritmo: A escolha da primeira linguagem de programação.
Há quem defenda linguagens falsas como portugol, argumentando que é mais prático para o iniciante compreender a lógica já que estamos falando de um portuguesão interpretado. Além de ir totalmente contra o padrão, já que o resto das linguagens são em inglês, atrapalha pra caramba quando esse cara tiver que aprender uma língua de verdade.
Java: A resposta para todos os problemas do mundo
Também temos aqueles que defendem que o ideal é ensinar logo o Javão pro Noob já começar tendo que escrever bíblias para imprimir o famigerado “Hello, World” na tela. Parece perfeita a ideia de aprender a programar já na linguagem mais utilizada no mercado, mas, vamos analisar um código básico em Java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Agora, vamos fingir que somos noobs que nunca viram um código na vida:
— O que é public?
— O que é class?
— O que é System.out.println?
Viram? São perguntas demais, o que vai deixar a situação mais difícil ainda. Ou seja, nem pensar em Java nessas horas.
Linguagem C, uma exceção
Podemos usar quase todos os argumentos que utilizei com Java com a linguagem C? Claro que sim.
#include <stdio.h>int main () {
printf("Hello, World");
}
Se observarmos o “Hello World” no C, veremos que ele também vai gerar perguntas logo de primeira, como gerou para mim quando eu aprendi a programar, que por uma caso foi com esta linguagem. Lembro-me que fiz questão de perguntar a professora o que era o #include <stdio.h> e que isso foi fazer bastante sentido no fim da cadeira.
Mas, abro uma exceção para o C por ser uma linguagem mãe e sua importância para aprendermos sobre as bases da computação, especialmente se estivermos falando de um aluno universitário. Aprender sobre tipos de variável, seus papéis em relação a memória, ponteiros, cabeçalhos, etc, é uma ótima base para o futuro programador.
Além disso, a sintaxe, incluindo palavras reservadas, operadores e funções básicas são semelhantes ao que encontramos em várias linguagens “moderninhas”, incluindo o PHP, Python e o próprio Java. Portanto, considerando tais pontos, a linguagem C é sim uma boa linguagem para o ensino de programação.
E o Python nessa história?
Os escritos a seguir são baseados em fatos reais
“Só existe duas coisas que você precisa saber: Paciência e Python”, disse o professor ao iniciar a primeira aula da disciplina de Programação Funcional, e ele completou: “Mas Python vocês já sabem, então vamos aprender paciência (…)”. A turma ficou meio perdida depois desse momento filosófico, mas de fato, todos nós sabíamos Python, só não sabíamos que sabíamos.
Durante muito tempo relutei em aceitar Python como uma boa linguagem para o aprendizado de programação. Achava que os caras tinham que “apanhar” no C para aprender, que isso era bom, etc, e que não fazia sentido aprender com uma linguagem “fácil”. Mas, que bom que nós mudamos não é mesmo?
print("Hello, World")
Preciso dizer mais alguma coisa?
Python é a linguagem perfeita para este fim. Ela oferece uma sintaxe clara, fácil de assimilar, mas não deixa de trazer elementos “padrão” semelhantes a outras linguagens, permitindo que o aprendiz não se sinta tão perdido ao ver um Java ou PHP na sua frente.
Além disso, Python tem um interpretador fantástico, evitando aquele amargo primeiro contato com o compilador, que vai reclamar se faltar um ; e o coitado do noob vai ficar horas tentando descobrir o erro. Quer um aperitivo? Se estiver usando um SO de verdade, abra um terminal, digite python e sapeque um enter. De nada!
Temos um vencedor?
Em um mundo perfeito, diria que começar a programar com o Python e consolidar esses conhecimentos com C seria ideal.
Alguns ainda consideram que portugol é a melhor solução, eu respeito, mas acho lamentável e odiaria estar na pele de quem vai passar 6 meses de sua vida tendo que programar com aquilo, quando se tem opções como Python.
Algumas observações:
- Nesse texto eu acabo pendendo para o ensino universitário por esta ser a minha principal vivência neste meio.
- Também me ative a questões de ensino e métodos em sala de aula, que também são fundamentais para o aprendizado, mas não me sinto a vontade para falar por este lado.
- Alguns amigos defendem que javascript também é uma excelente opção, mas comentei aqui apenas sobre as linguagens que conheço minimamente bem.