programação ou a teoria do esparguete

Quando entrei para o curso, a primeira cadeira que me fez logo repensar a minha escolha foi programação. Não ia lá nem de carrinho de mão e não me conseguia abstrair para perceber a lógica da coisa "mas então, onde é que estão a passar os bits... o quê, onde é que viste isso... porque é que tenho que escrever código em papel, qual é a lógica, MAS PARA QUE SERVE O RAIO DO COMPILAR". Para quem só teve umas luzes muito fraquinhas de programação no secundário (maldita disciplina de Aplicações Informáticas, mentiu-me o tempo todo) ou tem que saber como algo funciona, até ao ínfimo pormenor, para perceber o todo, o problema começa logo aí. E porque a cadeira não pára, quando percebi os tipos de variáveis já íamos nos ciclos, quando apreendi isso a matéria tinha avançado para a recursividade, and so on. Tudo isto resultou em muita choraminguice, e em muitas frases derrotistas:
“eu não sou capaaaz”
“ nunca vou perceber isto”
“odeio programação”.

Felizmente, houve um professor com uma paciência infinita que nos soube ensinar não só a programar, como a fazê-lo de forma eficiente e organizada. Uma das coisas que me lembro ainda hoje é de estar a fazer o projecto final, e de às tantas já não saber em que classe tinha um determinado método, ou implementar métodos repetidos, que faziam a mesma coisa ou algo parecido. O meu trabalho estava uma confusão tal que quando funcionava ficava contente, mas não sabia como era isso possível, e quando não funcionava demorava montes de tempo a encontrar o erro. Cada vez era mais difícil continuar o trabalho porque sempre que queria acrescentar algo novo era o caos. 

Quando tive uma dúvida que não consegui ultrapassar de maneira nenhuma, mostrei finalmente ao professor que olhou por momentos para o meu código (linhas e linhas de código espalhado em várias classes) e disse "Está aí um belo esparguete. Posso dizer-te o erro, mas vais continuar a ter problemas. Apaga e começa de novo". Olhei para ele com uma cara de horror a pensar "O quê, semanas nisto e vou começar de novo? Nem pense!". Mas já em outras alturas ele tinha tido razão. Por isso (e num ataque de fúria, admito) comecei tudo de novo. Nenhum método foi copiado, estruturei melhor o problema, fiz montes de desenhos primeiro em vez de começar logo a escrever código, mudei coisas que já queria mudar no outro trabalho mas que - como isso iria implicar mais tempo que podia dedicar a outras coisas - tinha deixado estar. Mais importante, não cometi os mesmos erros do “trabalho esparguete” porque já tinha passado por eles, e acabei o trabalho mais depressa começando de novo do que se tivesse continuado a corrigir o primeiro trabalho. 

Programação acabou por ser a minha disciplina preferida até agora. E ensinou-me também que há muitas situações esparguete, não só no código. Por isso sim, custa começar tudo de novo quando se está tão avançado. Custa voltar ao princípio quando já quase se vê o fim. Mas a longo prazo, acaba por se chegar mais rapidamente ao objectivo desta forma, do que se continuasse a bater na mesma tecla ou a fazer alguma coisa que está mal desde o início. E mesmo quando não se chega primeiro, ao menos faz-se melhor à segunda.

8 comentários:

  1. E é com os erros e as tentativas falhadas que vamos aprendendo :)

    ResponderEliminar
  2. Nem mais! Mais cedo ou mais tarde, com persistência chegamos lá :)

    ResponderEliminar
  3. ahahahah adorei! Vou mostrar isto ao meu irmão que está em TIC XD

    ResponderEliminar
  4. Em relação aos livros de Maquiavel e Thomas Moore são livros pequenos e de fácil leitura. Se recomendo? Acho que mal não faz nenhum ;)

    ResponderEliminar