Você já passou pela sensação de achar que realmente tinha entendido alguma coisa, e ao dá uma resposta ela literalmente te entrega, revelando que não, você não entendeu nada?
Eu já! Como isso é frustrante!
Hoje, olho para trás e rio de mim mesmo. Acho esta uma capacidade muito importante. Algumas vezes precisamos rir de nós mesmos senão enlouquecemos.
O ano era 2009. Eu estava no primeiro período do curso de ciência da computação e, apenas para situar os mais entendidos da área, já começou com a linguagem Java.
Cada conceito era um verdadeiro parto. Muitos dos meus colegas já eram técnicos em informática, outros já trabalhavam com programação de computadores, alguns já estagiavam. Eu, a semente de caju da turma, estava ali, tentando acompanhar. Como a persistência foi importante.
Confesso que passei a semana angustiado e frustrado. Você já se sentiu assim? É muito chato, parece que tudo perde o gosto. Mas, a boa notícia é que a persistência e a força de vontade falam mais alto. Como diz minha amiga Magna: “faça como um bêbado, mire onde se deseja chegar e vá, mesmo que cambaleando”. Eu sabia que para me formar, antes eu precisaria concluir cada semestre com sucesso. Esse foi o meu foco, mesmo que cambaleando.
Fato é que, a certa altura do semestre, o professor ensinou como funciona o comando de repetição “para”. Já ouviu aquele ditado que diz:
o professor navega, os alunos boiam e as notas afundam.
Pois é.
Na primeira aula eu boiei bonito.
Na segunda aula eu consegui “decorar” como escrevia o comando completo.
Mas apenas na terceira aula aquilo começou a fazer algum sentido para mim.
E hoje eu olho para trás e vejo que, ensinar o “para” nos cursos de tecnologia é quase tão básico quanto ensinar o alfabeto a uma criança que está aprendendo a ler, não apenas por ser bem básico, mas também porque uma boa didática por parte do professor ajuda muito.
Voltando à cômica situação, pensei ingenuamente algumas semanas mais tarde, que havia finalmente entendido como funciona o famigerado comando de repetição “para”.
Abro um parênteses aqui apenas para situar os mais leigos em programação de computadores. Imagine que você precisa realizar uma tarefa 67 vezes (um valor aleatório que me ocorreu no momento). Na computação sempre tentamos otimizar as coisas, seja para gastar menos recursos ou para ser mais rápido.
Assim, ao invés de escrevermos os passos necessários para realizar a tal tarefa 67 vezes, escrevemos apenas uma vez e colocamos esses passos dentro de um comando de repetição do tipo “para” que irá “executar” 67 vezes.
Existe um contador que varia de um valor inicial 1 até o valor final 67. Por isso que o comando se chama “para”. Dizendo, ficaria mais ou menos assim: para contador iniciando em 1 até 67, faça.
E a cada execução esse contador é somado em uma unidade.
Enfim, o inocente aqui achava mesmo que tinha entendido isso (cabecinha de estudante rsrs).
Eis que na prova, uma das questões era justamente com o “para”. Aí pensei: essa está no papo. Ao terminar de ler a questão, a minha vontade era levantar e dizer: professor, esse “para” aqui nós não estudamos não.
Basicamente eu tinha que executar uma mesma sequência de passos:
9 vezes na 1ª execução;
8 vezes na 2ª execução;
7 vezes na 3ª execução;
6 vezes na 4ª execução;
5 vezes na 5ª execução;
4 vezes na 6ª execução;
3 vezes na 7ª execução;
2 vezes na 8ª execução;
1 vez na 9ª execução.
Na minha cabeça só passava uma coisa: mas gente, o “para” começa em 1 e vai até 9, ok, isso eu entendi. Mas como eu vou ir de 1 a 9 e executar os passos de 9 a 1? Esse era meu dilema.
A minha persistência sempre me forçou a tentar uma solução, mesmo que esta não fosse a melhor (e muitas vezes não será, mas o importante é apresentar uma solução, fazer, obter o resultado. Uma solução ruim pode ser melhorada, mas nada pode ser feito quando não se tem uma solução).
Fui um dos últimos a entregar a prova. Fiquei longos minutos olhando, relendo a questão, rabiscando na folha de rascunho, até que bolei uma solução. Ficou assim:
O “para” vai de 1 a 9. Então, basta eu criar um outro contador fora do “para” que já iniciará com o valor 9. Assim, em cada execução eu subtraio 1 unidade. Quando o contador do “para” chegar em 9, esse outro contador terá o valor 1, e assim tudo se resolve.
Foi assim que eu fiz, foi assim que eu entreguei a prova e foi assim que eu recebi zero (0) na questão. Sim, zero.
Para o professor, não importava se o meu código apresentava o mesmo resultado, se estava correto. Ele acho tão absurdo que já tacou logo um X bem grande de caneta vermelha.
Todo o meu esforço e raciocínio não valeram de nada. Para o professor, a minha resposta era um atestado de que de fato eu não tinha entendido como o maldito “para” funcionava.
Apesar de apresentar a mesma resposta, tempos depois eu descobri que realmente eu não tinha entendido o “para”. Para a questão citada acima, não era necessário nenhum outro contador, bastava o contador do “para” iniciar em 9 e parar em 1 e, ao invés de somar 1 a cada vez, bastava apenas subtrair 1 a cada vez.
E de onde veio a minha confusão? Porque então eu estava reinventando a roda?
Bom, é simples. Em nenhum momento do curso tínhamos feito um “para” decrescente, todos eram crescentes, somando. Então, com toda a minha leiguice, achei que era apenas assim que funcionava.
```c<br>//Minha resposta: int contadorAuxiliar = 9; for(int contador = 1; contador <= 9; contador ++){ ações(contadorAuxiliar); contadorAuxiliar = contadorAuxiliar - 1; } // Resposta que o professor esperava: for(int contador = 9; contador <= 1; contador --){ ações(contador); }
Conclusão
Todos os acontecimentos podem nos ensinar algo de útil. Este, por exemplo, me ensinou que, ao explicar algo para alguém, mesmo que a pessoa afirme ter entendido, pode ser que até ela esteja enganada e, lembre-se sempre que pode ser a primeira vez que ela está tendo contato com o determinado assunto, então cuidado com os malditos pressupostos.
E você? Já passou por situação semelhante? Já achou que tinha entendido algo quando na verdade não tinha? Deixe um comentário contando sua história.