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.