domingo, janeiro 29, 2006

Sobre a atividade de programar

Antes de começar, gostaria de contar dois fatos que considero ilustrativos : Primeiro caso: Há alguns meses atrás, esta conversando com uma pessoa que se auto denominava programador. Lá pelas tantas, eu perguntei quais as linguagens que ele programava e como era o curso dele. A resposta foi mais ou menos assim: "bom, lá na faculdade, primeiro a gente aprendeu lógica de programação em C++...era aquela tela azul, sem nenhum recurso...só na lógica. Depois aprendi lógica de programação em Delphi...era mais simples, com botões para fazer interfaces..." Segundo caso: há alguns dias, encontrei na casa de um amigo um curso rápido de Delphi, bastante antigo. Na introdução, após descrever em um parágrafo de 3 linhas a história do delphi (algo do gênero "criaram uma linguagem chamada pascal, e o delphi é a evolução do pascal...". Curto, sucinto, e absolutamente inútil), tinha a seguinte frase: "Abra a pasta X, execute o Delphi, e você estará pronto para iniciar sua carreira de programador". Fato: boa parte dos programadores que existem por aí só veem a ferramenta, e desconhecem que existe um mundo bem maior, mais importante por trás. E sobretudo não conseguem conceber o fato que a linguagem de programação é um detalhe...importante, mas apenas um detalhe. Mexer numa IDE é facil, sobretudo se for uma IDE gráfica, estilo Delphi, Visual Basic ou Visual Studio. Entender os controles básicos de programação como if, for, while e outros também. Com um pouco de boa vontade, qualquer um pode fazer programinhas simples com interface gráfica e tudo mais. Mas isto é a ponta do iceberg. Mexer em IDE não é programar. Saber todas as bibliotecas de uma linguagem de programação não é saber programar. Assim como saber digitar em máquina de escrever não significa saber escrever. Programar é algo bem mais complexo: significa entender o funcionamento de processadores, memória, algoritmos, estruturas de dados, estrutura de arquivos, protocolos, patterns, paradigmas de programação. A linguagem de programação é a ferramenta para descrever um programa para a máquina, mas um bom desenvolvedor/programador tem que ser capaz de pensar num programa como um conjunto de instruções que executem uma tarefa definida sem se preocupar com a linguagem de programação.

4 Comments:

Anonymous Ricardo Capitanio said...

Felizmente eu tive a oportunidade de discutir pessoalmente essa questão com o Miguel.
E aí nota-se a diferença entre um curso de programação e um curso de computação de excelência.
Quando é necessário "tirar leite de pedra" no desenvolvimento de inovações
a mediocridade não tem espaço.

1/30/2006 12:36:00 AM  
Blogger Ivan Sanchez said...

Engraçado que isso é algo que não ocorre apenas no Brasil (artigo)
O que assusta é que o que é tido como "curso de computação de excelência" também está aos poucos caminhando para essa visão "simplista" da programação. Basta ver quantos programadores saem da faculdade sabendo utilizar um ponteiro ou fazer um método recursivo...

1/30/2006 09:26:00 AM  
Blogger Miguel Galves said...

É por isso que ainda acho que Pascal é a boa linguagem para se aprender a programar. Permite explorar todos os conceitos básicos importantes, como controle de fluxo, procedimentos, funções, chamadas recursivas, ponteiros, IO, passagem de parâmetros por valor, passagem de parâmetros por referencia, et...sem embutir toda a complexidade e detalhes chatos de C, e funcionando perfeitamente como um meio, e não um fim (citando ricardo).

1/30/2006 09:41:00 AM  
Blogger Marcelo Bello said...

Quando trabalhava na Accenture eu vi um programador (formado no Mackenzie) escrever o seguinte codigo:

If (str.Trim() != null)

Quanta ignorância em uma só linha de código. Quem programa OO ACHA que não precisa saber apontadores, mas na verdade esse conceito está presente em toda parte.

Dou graças a Deus por meu estágio de 2+ anos programando em C. Profissionalmente C não me serve mais para nada, mas o que eu aprendi programando em C eu não teria aprendido em outra linguagem.

1/30/2006 06:11:00 PM  

Postar um comentário

<< Home