Linguagem vs Saber Programar

Linguagem vs Saber ProgramarAprender uma linguagem de programação não é uma tarefa trivial. Saber programar, menos ainda. Esses dois aprendizados são complementares e este post explica a diferença entre eles.

1. Antes de aprender uma linguagem de programação

A primeira linguagem que aprendi a programar foi a linguagem Scheme. Não por escolha própria, mas por ser a do professor da disciplina de Algoritmos e Estrutura de Dados. O ano era 2000 e o curso Ciência da Computação. Foi uma decisão ousada. Scheme é uma linguagem de programação muito usada na área de Inteligência Artificial. Ela é baseada no cálculo simbólico ao invés do cálculo numérico, não sendo uma linguagem de programação popular.

Os alunos logo decidiram aprender uma segunda linguagem de programação e aí a turma se dividiu. Parte preferiu uma linguagem mais fácil de aprender, como pseudocódigo (código escrito com linguagem natural, como português), Basic e Pascal. A outra parte, movida à adrenalina e ao perigo, preferiu a linguagem C ou C++. Pensando em Star Wars, formou-se o lado da força e o lado escuro da força. Para os alunos do lado negro, os professores que ensinavam C e C++ eram como Lords Siths, enquanto os de Pascal e Basic eram meros padwans.

2. Saber Programar

Precisei de alguns anos na graduação para ter um conhecimento valioso: saber programar independe em muitos pontos da linguagem de programação. Um programador experiente, que já sabe programar em algumas das principais linguagens de programação, tem pouca ou nenhuma dificuldade para aprender uma nova linguagem. Ele idealiza o algoritmo (a descrição de passos que resolvem o problema) e o expressa usando uma linguagem de programação.

É equivalente ao que acontece com linguagem humana. Se você já sabe português e aprende inglês e espanhol, o idioma alemão e o francês serão mais fáceis de serem aprendidos, pois algumas palavras e construções possuem similaridade com outras que você já conhece. Em linguagens de programação, você encontrará conhecimentos comuns que todas as linguagens de programação possuem. Conforme aprende algumas, outras se tornam mais fáceis de serem assimiladas. Elas representam meios para você dizer ao computador o que precisa que ele faça e existem diferentes formas de fazer isso. Saber programar é saber escrever soluções para problemas usando uma linguagem de programação.

3. Saber uma linguagem de programação

O oposto não é verdade. Se você não sabe programar e decide aprender uma linguagem de programação, você aprenderá o equivalente ao dicionário da linguagem, quais palavras fazem parte dela, quais são suas regras gramaticais, mas para escrever soluções será preciso praticar. Nesse caso, praticar é programar. Peter Norving, um profissional renomado na área de Inteligência Artificial (autor de um dos principais livros da área), escreveu um excelente ensaio criticando os livros que ensinam a programar em dias ou semanas. Nesse ensaio ele argumenta que você pode até aprender uma linguagem em pouco tempo, mas que aprender a programar exige muito mais tempo.

É claro que aprender linguagens de programação em si ajuda a programar. Não só ajuda, como é o caminho natural e indicado para praticar. Se você estiver aprendendo a programar só com pseudocódigos, isso pode ser ruim. Eles são ótimos para entender como o algoritmo funciona mas, uma vez entendidos, as linguagens de programação devem ser usadas. Com elas, o aluno entenderá como codificar realmente funciona. Algumas pessoas têm mais dificuldade em rodar o primeiro programa do que entender alguns conceitos de programação e linguagens. Por isso, assim que possível, pratique o que aprendeu, nem que seja para replicar e rodar um código.

 

 

Curtiu? Quer aprender uma linguagem de programação e também a programar? Então leia este post aqui.

 

Sobre o Autor

Leandro Pinho Monteiro

Leandro Pinho é engenheiro de computação, graduado em Ciência da Computação na Universidade Estadual de Maringá (UEM) e mestre em Engenharia da Computação na Faculdade de Engenharia Elétrica e Computação (FEEC) da UNICAMP, ambas formações com foco em Computação Gráfica. Possui experiência no desenvolvimento de sistemas interativos 3D para pontos de venda, marketing e eventos. Atualmente trabalha como consultor de tecnologia e é o responsável pela coordenação dos cursos oferecidos na Universidade da Tecnologia.