Como o MaxPaynner disse a parte difícil não é o programar. Eu agora no próximo ano (2º) vou ter uma cadeira que se refere exatamente a isto,
desenhar as funcionalidades do código numa escala mais elevada. Um professor e um colega meus, disseram-me que Engenharia Informática não é só programar, é resolver problemas. A programação é a ferramenta que usamos para, por exemplo, apresentar a solução. Agora existem várias soluções e nós vamos sempre tentar procurar a melhor.
Vou dar um exemplo, na primeira aula de Algoritmos e Estruturas de Dados, a professora no inicio da aula colocou a questão de qual seria a melhor maneira de contar a quantidade de alunos na sala. Houveram várias respostas: 1- contar um a um, 2- Se virmos que a sala está mais cheia que vazia, contar a quantidade de lugares vazios e subtrair do total de lugares, etc... A professora deu-nos uma solução, que inicialmente para mim que não entendia nada daquilo foi incrivel, que era a seguinte:
1- Todos os alunos ficavam em pé e cada um deles representava o número 1.
2- Em seguido os alunos juntavam-se em par e juntavam os seus números.
3- Depois um dos alunos sentava-se.
4- Repetia-se a partir do 2 até ficar apenas um aluno em pé, esse aluno teria o total de alunos na sala.
Em apenas 7 ou 8 passos foi possivel contar todos os alunos da sala. Onde quero chegar depois desta Wall of Text. Pelo meu primeiro ano em Engenharia Informática, tentámos da melhor maneira possível resolver problemas. Obviamente que a matemática é também muito importante, houve projetos que tive de fazer onde eu fazia um algoritmo cheio de ciclos e condições, e fazia umas 10 ou 15 linhas de código, e depois chegava à conclusão que com uma fórmula matemática, 1 linha de código, aquilo resolvia-se facilmente.