sábado, março 27, 2010

Pensamento sem sentido nenhum!

À Alguns dias atrás, li no blog "A cup of thoughts" um post que me pós a pensar. Tratava-se de um post em que falava das diferenças entre o delete e o reset (podem ler aqui). Aconselho a lerem...
Achei muito interessante e como lá comentei, fiquei a pensar de que maneira a área da informática pode ser associada à vida das pessoas. Não contando a parte que todos conhecemos(tecnologias).
Segundo os informáticos, para que possamos criar um bom programa de forma a ultrapassar um suposto problema num computador, ou melhorar aspectos no computador, temos de regredir na nossa dita lógica de problema. Não podemos complicar. Muitas vezes caímos na tentação de atacar o problema como um todo, com todas as implicações externas que a resolução do mesmo pode acartar. Não deveria ser assim.
Em programação, o segredo para ultrapassar um grande problema é dividir-lo em pequeninos problemas. Depois focarmo-nos em cada pequeno problema, abstraindo-nos do resto até que este seja resolvido. Resolvermos cada pequeno problema até que no final, com a resolução de pequenos problemas, o resultado seja o esperado com menor esforço. O segredo é não complicar.
Para um professor meu, uma criança de 6/7 anos tem maior capacidade lógica de programador do que um aluno que entra para a faculdade após ter passado por todo o ensino básico e secundário. As crianças mais novas conseguem abstrair-se mais facilmente da "grandiosidade" do problema em questão e conseguem focar-se mais rapidamente em pequenos problemas até que, por fim, juntando a resolução de todos esses pequenos problemas, conseguem alcançar a resolução do problema no seu todo.
Experimentem pedir a uma criança, por exemplo, todos os passos que fazem de manhã antes de irem para a escola. Desde o momento que acordam até que entram na sala de aula. Depois façam o mesmo a um estudante universitário. Com toda a certeza que a criança de 6/7 anos dirá uma quantidade muito maior de pequenos passos até que chegam à sala de aula. Um adulto saltará passos que acham desnecessários, ou que são tão óbvios que nem valerá a pena descrever-los.
Com a idade, e com a maturidade que alcançamos com ela, caímos numa rotina em deixamos de dar importância a pequenos detalhes, já que estes são apenas detalhes para alcançar algo superior. Isto na lógica de um programador. E é muitas vezes isto que provoca grandes problemas num aluno de informática como eu.
A idade trás-nos complicações, métodos de pensar mais elaborados, mais complexos. quando aprendemos algo, queremos por tudo em prática, sem que muitas vezes seja necessário. Isto faz-nos por vezes ter mais dificuldade em alcançar a resolução para um problema. A abstracção daquilo que não é importante para a resolução do problema fica mais difícil de conseguir. Tentamos sempre usar métodos já usados, ensinamentos já aprendidos... Quando às vezes isso só nos complica. Metemos demasiada informação "ao barulho" quando, se calhar nem seria necessário.
Com isto quero dizer que um bom informático, deve conseguir atingir um nível de abstracção, de coisas insignificantes, acima da média. Mas atenção! Só das coisas insignificantes! Porque o que é importante deve ser dividido e estudado ao mais pequeno detalhe. 

Agora pensem... Não será o método de raciocínio de um informático um bom método a adoptar na nossa vida?
Abstrairmo-nos do que não tem importância e dar toda a atenção àquilo que realmente interessa? Não será mais fácil ultrapassar o problema que por vezes é a nossa vida, dividindo os pequenos problemas e ultrapassando-os um a um em vez de querer ultrapassar tudo de uma vez só?
Pensem comigo... (vou criar um algoritmo assim meio manhoso =)  )

Resultado esperado: Felicidade

Enquanto existir dificuldades{

       chamar função Atacar um e um só problema;

}
Felicidade assegurada!
Fim do algoritmo!


função Atacar um e um só problema{

       Pensar no problema;
       se (problema pode ser dividido){
            Dividir problema em problemas mais pequenos de maneira a ficarem mais fáceis de resolver;
           Chamar função Atacar um e um só problema novamente;
       }
       senão(problema demasiado simples){
            Resolver o problema;
       }
}
      
PASSO A EXPLICAR O ALGORITMO! =)

O pretendido é a felicidade. Enquanto existirem dificuldades, atacamos apenas uma dificuldade de cada vez, e tentamos subdividir essa dificuldade em dificuldades mais pequenas e de resolução mais fácil.
Após isto, tendo a certeza que uma sub-dificuldade não pode ser mais dividida, atacamos as sub-dificuldade, uma a uma, até atingir-mos a resolução do total da dificuldade subdividida.
Quando terminamos uma dificuldade no todo, avançamos para outra dificuldade.
Quando não existirem dificuldades, a felicidade está assegurada =)
Quem diz dificuldades diz problemas, coisas más na vida, situações incomodas...

Este post parece estúpido! E no fundo até é. Mas deu me para pensar nisso hoje. E deu-me para escrever sobre isto! Desculpem lá qualquer coisinha =)

Mas para mim, este vai ser o método adoptado para ultrapassar problemas. Ser focado, pensar numa coisa de cada vez e tornar tudo mais fácil. Deixar se ser complicado e abstrair-me de tudo o que não deve ter importância para mim...
Pelo menos por agora, que isto faz toda a lógica para mim...


Para não fugir à regra,

            "Sejam Felizes!"

2 comentários: