“Quero programar, qual linguagem aprender primeiro?”
Pensei em escrever esse post quando me lembrei de um certo dia em que estava no laboratório de informática da universidade, e começou uma aula de Algoritmos e Estrutura de Dados I (matéria do primeiro ano) e fiquei lá no fundo fazendo minhas coisas e ao mesmo tempo prestando uma certa atenção na aula.
Logo me surpreendi ao reparar que o Professor estava ensinando Python para os calouros, no primeiro momento achei a idéia bem interessante!
Eles estavam resolvendo uma lista de exercícios de manipulação de strings (procura, substituição, remoção, etc)…
Depois de uns 15 minutos de aula e o Professor resolvendo alguns exercícios (já estava no terceiro ou quarto), um aluno pergunta o que é aquele from string import * e se precisava ficar decorarando aqueles nomes split, replace, upper e lower.
Foi ai que um amigo que estava sentado ao meu lado disse: “Assim fica fácil, quando agente fez essa matéria não era só utilizar esses métodos, precisava implementá-los!“.
E é verdade, tudo bem que naquela época não tínhamos nem idéia do que é uma classe, objeto e seus métodos, afinal, em Pascal (linguagem procedural) não existe isso. Mas fizemos muitas funções e procedimentos para manipulação de strings, geração de séries numéricas, arquivos, listas, pilhas, árvores, aprendemos ponteiros (e depois sofremos um bocado com isso em C hehe), inclusive em arquivos separados para depois importá-los.
Mas aonde quero chegar?
Quem passou por isso de resolver esses problemas básicos na mão, tem pelo menos uma noção de como as linguagens resolvem um problema. E quem não viu isso, pensa que a linguagem faz mágica quando faço:
"isso eh um teste".replace("eh", "é") ?
Eu acredito e gosto de linguagens mais modernas como Python, mas não acho que ensiná-las no primeiro ano de um curso superior de Informática/Computação seja o melhor caminho, assim como Java (a POO não é fácil para quem está começando).
O programador não pode ser dependente de IDEs ou linguagens para resolver problemas, pelo menos não no começo para quem está aprendendo, pois pode atrapalhar seu raciocínio lógico e criatividade. Depois de saber de onde as coisas vem, tudo bem, ganha-se tempo e as preocupações devem ser outras.
Então por qual linguagem o estudante deve começar?
Deve começar sem linguagem (!?), na ponta do lápis e escrevendo algoritmos, praticando a lógica e raciocínio. Tipos de dados, atribuição, operadores, laços de repetição, condicionais, entrada/saída, criação de funções/procedimentos, recursividade, etc.
Já com algumas idéias fundamentais consolidadas, acho que uma boa escolha é a linguagem C, pois apresenta uma sintaxe fácil (boa parte das linguagens tem sua sintaxe baseada no C), além de ser extremamente útil (obviamente, com maior nivel de complexidade) diferentemente do Pascal.
Se o aluno lá do começo do texto tivesse criado um arquivo “meusProcedimentos.h” e no inicio do seu arquivo principal fizesse #include “meusProcedimentos.h” , ele com certeza não teria uma dúvida tão básica ou entenderia melhor a resposta dada pelo professor.
Mas quem sou eu para discutir a didática dos professores e o programa das matérias do curso de Informática da Universidade que estudo?
OBS.: Esse texto é apenas uma opinião do autor e totalmente passível de críticas e discordâncias.
apenas um comentário
Leave a reply
Po acho maneiro alguém começar com Python.
Python apesar de ser uma linguagem muito forte, ela tem uma estrutura bacana pra aprender.
Mas nada substitui você começar estudando lógica de algoritmos primeiramente.