Entenda o que é um algoritmo de uma vez por todas
Tags: algoritmos, braziliandevs, algorithms
Published: 2022-09-16 10:46:44

Algoritmo parece um bicho de sete cabeças, mas só enquanto a gente não conhece o conteúdo ou escuta a palavra pela primeira vez. Quem não é da área de tecnologia até treme quando pensa em programação. Muitos até acham que você precisa ser especial pra conseguir se tornar um programador. Eu digo uma coisa: BA LE LA. **Qualquer um pode aprender a programar**, porém eu tenho que dizer outra coisa, é fundamental querer muito ou gostar mais do que qualquer outra coisa, porque quando o negócio fica feio, é o querer que vai te fazer seguir em frente.

Trouxe aqui uma **Introdução a Algoritmos para você que está começando entender o que é esse mundo que está pagando tão bem**. Você vai entender o que esse povo que passa horas em frente ao computador faz e vai perceber que não é aquele bicho de sete cabeças. Ele tem uma cabeça só e eu vou te dar as ferramentas necessárias para enfrenta-lo.

Antes de tudo você precisa entender como o computador funciona. Eu não vou contar a história da programação aqui, mas você pode entender melhor neste [vídeo](https://www.youtube.com/watch?v=cH6jxtcRQ6Q). O que você precisa saber agora é: **O computador é um emaranhado de números zeros e uns**. Eu sei, ir com calma. Mas acompanha o raciocínio.

Em algum momento da humanidade alguém descobriu a eletricidade e em outro momento descobriram como aprisionar pequenos impulsos elétricos (sim, parecido com os do seu cérebro), logo tiveram que INVENTAR uma lógica, que hoje em dia chamam de **lógica de programação**. Isso mesmo! Tiraram da cartola do mágico uma nova língua pra que pudessem usar esses bits aprisionados conhecidos como **números binários**. Esses bits são representados por números 0s e 1s apenas, e a lógica de programação trabalha em torno desses dois números!

Você já notou que a informação é invisível? Esses bits armazenam informações ou pelo menos, representação de informações. Chamamos de **estruturas de dados** o jeito de organizar e armazenar essas informações.

Não demorou muito, a coisa evoluiu e ficou mais complexa. Circuitos e interruptores foram criados com essas combinações da lógicas, tanto que, os primeiros computadores nem tinham interface visual ou **interface gráfica**, que é a tela pela qual você lê este artigo. Quem revolucionou o mercado dessas máquinas foi nosso amigo conhecido da maçã. Ele popularizou o computador para uso pessoal, onde antes era usado apenas para fins militares.

Logo, como que aconteceu de circuitos e máquinas gigantes se transformar em um computador pessoal e ir pra interface gráfica? Falta alguma coisa ai nesse meio. Essa é a **linguagem de programação**, ela é necessária para traduzir impulsos elétricos mais básicos para comandos complexos. Isso acontece porque alguém programou instruções básicas no **hardware** (a parte que você chuta). Esses comandos são chamados de **linguagem de máquina**. 

Uma definição formal de algoritmos, de acordo com o Cormen (um cara que escreveu um ótimo livro sobre algoritmos) é “**qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída**”. Você pode imaginar como uma receita de bolo, que são um conjunto de **instruções bem definidas** que **não são ambíguas**, ou seja, são exatas. Você pode afirmar com toda certeza (por enquanto) que o computador é fundamentalmente burro, pois é simplismente um conjunto de combinações lógicas que responde a programação por algum ser humano.

Um algoritmo **necessariamente precisa resolver algum problema computacional**. Ele não pode ser ambíguo, ou seja, necessariamente não se pode dar um comando com duplo sentido. 

Algoritmos é o fundamento para programar com alguma linguagem. Conhecer como os algoritmos funcionam vai te permitir com facilidade aprender uma nova linguagem de programação.

Se você leu com atenção, entendeu bem o que é algoritmos e já pode seguir com seus estudos! Sentiu falta de algo? Joga nos comentários.