Ronaldo
Ronaldo Desenvolvedor, pai, cidadão do mundo.

Algoritmos, pra que te quero?

Algoritmos, pra que te quero?

Os algoritmos estão dentre as disciplinas que os alunos de computação, de uma forma geral, mais detestam. Não é incomum ouvir alguém dizendo “por que preciso aprender esta porcaria”, ou “isso não faz diferença nenhuma pois o cliente quer é o produto”. Sim, faz diferença. O conhecimento em computação é o que diferencia os programadores no mercado.

O problema no ensino dos algoritmos é a falta de perspectiva no seu uso. Mesmo com exemplos reais, os alunos não conseguem ligar a solução com o problema e acabam por ignorar o conhecimento que lhes é oferecido.

Os algoritmos são soluções matemáticas para problemas teóricos. O fato é que os problemas teóricos são modelos de problemas reais e é por este motivo que os algoritmos são ferramentas poderosas nas mãos do programador.

Muitos problemas de ordenação, classificação e processamento são facilmente resolvidos com a adoção ou adaptação de algum algoritmo já existente. Por este motivo o estudo de algoritmos é muito importante para o programador.

O segredo dos algoritmos, de uma forma geral, é este: tratam-se da solução mais simples e eficiente possível para problemas de ordem relativamente complexa. É interessante, também, verificar que os algoritmos estão interligados a modelos de dados: listas, filas, grafos, etc. Portanto, sou de opinião que o estudo de algoritmos não só aos programadores uma ferramenta poderosa como também melhora sua compreensão para o modelamento de dados.

Assim, o modelo de dados torna-se mais eficiente e eficaz, pois o programador sabe exatamente como avaliar o modelo quando estiver realizando buscas, ordenações, inserções, etc.

Por mais que você, programador, trabalhe com soluções corriqueiras na dita programação comercial, saiba que a compreensão de algoritmos e estruturas de dados lhe permitirão criar soluções mais eficientes, elegantes, mais simples de manter e com performance muito superior, enquanto consumindo menos recursos computacionais.