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? 😀

Comments on this entry are closed.

  • Pedro Paulo
  • João Bernardo Vianna

    O Felipe Acker agora dá Calculo Avançado pro pessoal que acha o Cálculo comum muito fácil.
    Ele é um sujeito meio doido.

  • José Antonio

    @Pedro Paulo:

    Não tenho mais o livro aqui, obviamente, e nunca mais usei essa fórmula para poder me lembrar dela. A diferença é que agora tenho Google e encontrei o que eu usei para fazer o trabalho.

    “Dada uma cônica definida pela equação Ax² + Bxy + Cy² + Dx + Ey + F = 0. Seja λ1 e λ2 os autovalores associados à sua forma quadrática; então:

    i) Se λ1 . λ2 > 0 esta equação representa uma elipse, ou suas degenerações (um ponto ou o vazio)
    ii) Se λ1 . λ2 < 0 esta equação representa uma hipérbole ou sua degeneração (par de retas concorrentes). iii) Se λ1 . λ2 = 0 esta equação representa uma parábola ou suas degenerações (par de retas paralelas, uma reta ou o vazio) Como o sinal de λ1 . λ2 é igual a –(B2 – 4AC) pode-se fazer a classificação da seguinte forma: i) Se (B2 – 4AC) < 0 esta equação representa uma elipse, ou suas degenerações (um ponto ou o vazio) ii) Se (B2 – 4AC) > 0 esta equação representa uma hipérbole ou sua degeneração (par de retas concorrentes).
    iii) Se (B2 – 4AC) = 0 esta equação representa uma parábola ou suas degenerações (par de retas paralelas, uma reta ou o vazio)”

  • dclobato

    Aprender nova linguagem é legal, mas toma tempo… Tempo que, normalmente, não está sobrando 🙂 Eu, por exemplo, estou me programando para aprender Python — que vai resolver meus problemas de uma forma mais elegante e, me parece, mais rápida — mas fico adiando, adiando, adiando pois sempre tem alguma coisa “pra ontem” aparecendo.

  • Aknaton

    Buenas!
    Concordo com o dclobato! To a meses no capitulo 1 da linguagem Python !
    As vezes surge duvidas e é difícil sana-las, apesar das facilidades do são Google!
    Fica ai minha dica alem do curso em QT que o Marcelo Barros escreveu!

  • Zé,
    Eu vi o Gevaerd no início do ano passado senão me engano trabalhando em uma empresa no centro onde dei consultoria. No mês passado o vi na fila do passaporte no RioSul 🙂
    (outro que vi em uma empresa foi o Maurício! ele riu quando eu disse que metade da turma, eu inclusive, não teríamos passado na faculdade sem os cadernos dele rs).

    Eu acho que faltei a essa aula do Felipe Acker rs
    Minha sanidade mental deve ter agradecido!
    Acho que até hoje não me recuperei de ter feito prova surpresa dele momentos antes do trotão!! Meu primeiro ZERO na vida 🙁

    Você ainda esqueceu de mencionar as aulas que você deu pra gente de Delphi no horário do almoço 😉

    PS: Ainda acho o Delphi 1 a melhor IDE que existiu (estabilidade, documentação, bibliotecas poderosas e simples, programação intuitiva e poderosa).

  • Hehehehe essa história toda foi o máximo, Zé, me lembro bem dessa época… E aquele “torus” do Dario? 🙂

    Eu gosto de aprender linguagens novas… 🙂

  • José Antonio

    Renato, o Toroide que o Dario fez foi impressionante na época. 🙂

    Todo mundo ficou bobo com o programa dele! Inclusive o Felipe Acker.

  • Mahatma de Castro

    Tive Cálculo I e IV com o Felipe em 1991 e 1992. Mais 3 que trabalham comigo também foram alunos dele. Até hoje o pessoal tem alguns pesadelos com a faculdade….Certa feita, me contaram a seguinte história : o Felipe deu aula de Análise pra uma turma da matemática (já que essa matéria não existe no curso de Informática). Ao saber que ele seria o professor, a turma ficou reduzida a uma meia dúzia de aventureiros. Veio a primeira prova de 2 questões. Após uma 3 horas, ninguém conseguiu chegar perto da solução de uma delas. O Felipe deixou que copiassem e tentassem resolver em casa. O pessoal tentou mas não chegou perto da resposta. Ele olhou meio desapontado pras provas e disse : “pô, vcs não conseguiram….que pena…eu tentei mas também não consegui….” kkkkkkkk