O desafio de aprender uma nova linguagem

Uma historinha off-topic para alegrar o fim de semana.

No primeiro semestre de 1995, eu estava iniciando o meu curso de graduação na UFRJ e a linguagem que aprendíamos na época, em Computação I, era o bom e velho Pascal para DOS e o ambiente de desenvolvimento era o Turbo Pascal da Borland.

Acontece que, no final do primeiro período, o nosso excêntrico e simpático professor de Cálculo Vetorial e Geometria Analítca, Felipe Acker (alguém tem notícias dele?), resolveu nos passar um trabalho que, para nós, que estávamos começando a aprender a programar, era um verdadeiro desafio.

O trabalho, lembro claramente até hoje, consistia em fazer um programa no qual, dados os parâmetros de uma cônica qualquer, ax²+bxy+cy²+dx+ey+f=0, ele teria de dizer se ela correspondia a um círculo, a uma elipse, a uma parábola ou a uma hipérbole, e, se possível, desenhá-la na tela (teoricamente no DOS em modo gráfico 320×200 ou 640×480).

Os problemas, neste caso, eram bem grandes, a saber:

  1. Ainda não tínhamos noção de autovalores e autovetores. Só veríamos essa matéria em Álgebra Linear II, no período seguinte
  2. Não sabíamos por onde começar a procurar informações, nem sabíamos que precisaríamos saber autovalores e autovetores. 🙂
  3. O Google só iria ser lançado três anos depois. 🙂
  4. Só alguns de nós tinham acesso à Internet em terminais burros de favor num laboratório sombrio da Engenharia Eletrônica, o MAGMA, o que não adiantava nada para a pesquisa.
  5. Nem todo mundo sabia programar ainda no final do semestre, quanto mais em modo gráfico.

O meu primeiro passo foi perguntar para um amigo professor aonde eu conseguiria um livro para resolver aquele problema. Esse meu amigo me falou para procurar entender o que eram autovalores e autovetores e que tinha um livro de Álgebra Linear que poderia ajudar nesse problema. Hoje, um simples telefonema para o celular desse amigo e uma busca no Google me resolviam o problema, mas lembre-se, estávamos em maio ou junho de 1995 e o Larry Page e o Sergey Brin ainda não pensavam em criar o Google, nem eu nem meu amigo tínhamos celular e nem tínhamos Internet disponível, por isso, precisei ir até o amigo e depois até a biblioteca.

Depois de entendermos como resolver o problema matemático, eu e um grande colega chamado Rodrigo Gevaerd (o que será feito dele?) resolvemos que não iríamos fazer o programa em DOS. Resolvemos ousar a fazer o programa para Windows (ohhhhhh) usando o recém-nascido Delphi 1 (ele foi lançado em Fevereiro daquele ano). 😮

Essa decisão tornava-se ainda mais arriscada porque tínhamos que entregar o trabalho em poucos dias e ele valeria como uma prova na média da matéria.

O resultado é que conseguimos aprender aquela joça (o Delphi 1) e fazer o programa que o professor queria dentro do prazo. Viramos muitas noites programando (e aprendendo), mas o resultado ficou muito legal (para nós que éramos alunos do primeiro período, é claro).

Para conseguir essa façanha, programação orientada a objetos, eventos, canvas e outras coisas que nunca tínhamos visto tiveram que ser aprendidas a toque de caixa e sem Internet. Além disso, tínhamos de resolver o problema das cônicas.

O trabalho era individual e, mesmo tendo aprendido a programar no Delphi juntos, fizemos programas diferentes. Tenho que admitir que o programa do Gevaerd ficou mais maneiro que o meu. 🙂 Acabamos sendo os únicos da turma a fazer o programa para Windows, o que não tira o mérito dos outros colegas que conseguiram fazer para DOS.

Afinal, porque eu escrevi esse caso? Por esses dias, 15 anos e meio depois desse fato, me vi obrigado a aprender uma nova linguagem e pensei: “Caraca! Outra linguagem, outra IDE, outros macetes, outros bugs, outra sintaxe… Essa viagem é realmente necessária?”. Na verdade quase sempre é. No início, a necessidade existe porque o professor pediu que fosse assim, mais tarde isso acontece porque o chefe pediu assim ou porque o cliente quer assim. Não tem muito jeito.

Quase sempre fui obrigado a aprender as linguagens por necessidade. Não sei se isso acontece com outras pessoas, mas, pelo menos comigo foi assim. A grande vantagem que temos atualmente é a facilidade com que conseguimos as informações, principalmente em fóruns e blogs, que compartilham trechos de código e tiram dúvidas recorrentes. Outra vantagem é que quase nunca uma linguagem é totalmente diferente das outras que você já aprendeu até hoje. Sempre se aproveitam muitos conceitos e muitos macetes de outras linguagens. O passo mais difícil é aprender a primeira. As demais acabam vindo por tabela.

E você? Prefere aprender uma linguagem nova sob pressão ou por vontade própria? 😀

10 comentários em “O desafio de aprender uma nova linguagem”