Sempre que vejo criadores de conteúdo explicando sobre como começar na área de programação, quase sempre, as pessoas perguntam qual linguagem de programação começar. É uma pergunta válida e que não tem uma única resposta correta, pois depende da área de seu interesse e, principalmente, dos requisitos pedidos para as vagas iniciantes. Isso pode mudar com o tempo também.
Mesmo assim, a pergunta talvez que você deve fazer é: você SABE PROGRAMAR? Sabe sobre os fundamentos da computação? Sabe como funciona um computador por dentro? Se não sabe, então você está dando um passo maior do que a perna. Sem isso, é bem provável que você aprenda os comandos sem sequer saber como utilizá-los ou por quê. A frustração virá em pouco tempo, porque nada fará sentido pra você.
Dito isso, o ideal é começar com o mais básico do básico e ir aumentando um pouco mais o nível da conversa. E isso é algo que não vejo ninguém falar, se não pagar por um curso (às vezes nem isso). Portanto, quero abordar alguns destes temas e tentar facilitar um pouco mais a compreensão do assunto.
Afinal, o que é um computador?

Já parou para se perguntar sobre isso? Se você quer trabalhar criando sistemas que rodam em outros computadores, é melhor conhecer sobre o seu próprio computador e o que ele faz. Ou você cria uma casa sem saber do que é feita uma casa?
Sem ir na parte acadêmica (senão ficaríamos horas por aqui), um computador basicamente é um aparelho eletrônico, criado há muito tempo, para realizar cálculos matemáticos de forma precisa e sem erro humano. Então, ao invés de pedir aos trabalhadores para calcular coisas, ensinava-os a usar este computador e deixar que calcule automaticamente.
“Como o computador faz cálculos?”
Pode parecer mágica, mas é graças à energia elétrica. O componente principal que faz essas operações matemáticas (adição, subtração, multiplicação e divisão mesmo!) é o processador, que é considerado o “cérebro” de todo computador por conta disso. Ele possui muitos componentes elétricos dentro dele que são organizados para receber um número em forma de impulsos elétricos e devolver o resultado desse número em impulso elétrico também. Pense como se estivesse passando algo parecido com código-morse pro computador: uma mensagem em um ritmo.
No código-morse, você só tem duas representações de sinais sonoros: . (pulso curto) e _ (pulso longo). No computador, é exatamente igual! A diferença é que os dois sinais elétricos são: ausência de corrente elétrica (0) e presença de corrente elétrica (1).
Com isso, você aprendeu, sem perceber, o código binário, também chamado código de máquina: uma sequência de zeros e uns. Tudo no computador é representado por 0 e 1.
Conforme o tempo passava, os computadores precisavam fazer cálculos mais complexos e encadeados. Se precisava ser encadeado, o computador precisava guardar esses valores em algum lugar, para ser reutilizado mais pra frente. É por isso que todo computador possui um componente que chamamos de memória.
Se você já ouviu falar da memória RAM do seu computador, é exatamente isso. Ela serve pra guardar valores no computador e utilizá-los quando for requisitado em um programa.
E a programação? Onde entra nisso tudo?
Bem, como falei anteriormente, as empresas precisavam de cálculos mais complexos, mas o computador é extremamente limitado e só faz cálculos básicos de matemática. Como ele é um aparelho que tem 100% de precisão, não valeria a pena encontrar uma forma de fazê-lo calcular uma potência de um número, por exemplo?
A resposta é SIM! Porque você consegue descrever qualquer operação complexa com as operações mais básicas da matemática, desde que seja em uma ordem específica. Por exemplo:
- Se queremos achar o quadrado de um número, é basicamente multiplicar ele por ele mesmo. Logo:
$$ 2^2 $$ $$ 2 * 2 $$ $$ 4 $$
- Se queremos achar o cubo de um número, múltiplicamos ele por ele. Repetimos mais uma vez. Logo:
$$ 2^3 $$ $$ 2 * 2 * 2 $$ $$ 4 * 2 $$ $$ 8 $$
E assim por diante. Podemos então fazer um passo-a-passo para calcular o quadrado de um número x:
- Pegue o número x
- Multiplique por x
- Me devolve o resultado
Se for cálculo de um número x ao cubo:
- Pegue o número x
- Multiplique por x
- Guarde o resultado
- Repita o passo 2, mas com o resultado
- Me devolve esse novo resultado
Se não percebeu, você está basicamente instruindo o computador no passo que ele precisa seguir para fazer o cálculo. Isso é um programa, ou também chamado de algoritmo
Sim, um algoritmo nada mais é do que um passo-a-passo para chegar a um objetivo final (resultado). Uma receita de bolo é um tipo de algoritmo.
Assim como uma receita de bolo, o programa de computador precisa de “ingredientes” para fazer o passo-a-passo, que nos exemplos acima, é um único número (x) apenas, que é o que vamos calcular o quadrado ou o cubo dele. Se você quisesse fazer um algoritmo que calculasse a soma de dois números, aí precisaríamos de dois números (x e y, por exemplo).
Logo, o computador precisa receber esse número do usuário (input). O número digitado no teclado é uma opção de receber esse número. Antigamente, por exemplo, era utilizado cartões perfurados que liam o número representado em binário (área furada = 1, área coberta = 0, por exemplo) ou interruptores que eram ligados ou desligados, direto no computador. Parece complicado, mas estamos falando de 70 anos atrás, ou até mais.
Mas eu vejo os programadores escrevendo como se fosse inglês, e não só 0 e 1…
Exatamente. Muita coisa mudou desde essa época. O que não mudou é que computadores:
- só entendem zeros e uns
- só fazem cálculos matemáticos
- não têm o conceito de “obviedade”
O que isso significa é que o computador não sabe o que é “letra” e nem “palavra”. Ele não conhece “idioma”. Nada é trivial para ele.
Ao mesmo tempo, ser humano é um bicho que tende a falhar, então ele vai escorregar na hora de mandar uma mensagem gigante com 0 e 1. Imagina ter que mandar o comando:
0101010101010101111010101010101001010101010101011110101010101010
Por algum descuido, você manda:
0101010101010101111010101110101001010101010101011110101010101010
(boa sorte para procurar o dígito diferente)
Com isso, o computador era para ter feito a soma do número 2 com o número 3, mas ele faz o oposto: pegou 2 e subtraiu 3. O resultado saiu errado, você gastou cartão perfurado à toa, tomou uma bronca do chefe e vai ter que refazer, além de procurar o erro. Inclusive, se você já olhou os números acima e encontrou o erro, quanto tempo demorou para achar onde estava? Acredito que um tempo, né?
Algum ser humano espertinho, ciente de que isso era um problema infernal, sabia que o computador era burro. Ao mesmo tempo, também sabia que ele interpreta números e acerta com 100% de precisão, então pensou:
E se eu criar um programa que, enquanto o computador rodar, ele converte uma sequência de números binários em letras e números indo-arábicos, que temos familiaridade?
Depois disso, ele vai interpretar um texto passado pra ele e fazer o cálculo. Assim, eu posso escrever “SOMAR, 2, 3”, ao invés de 0101010101010101111010101010101001010101010101011110101010101010

O miserável é um gênio, não é? Não só ele alfabetizou o computador, como também ensinou a interpretar um texto e converter em comando de cálculo.
E assim que surge a primeira linguagem de programação: um idioma super amigável para os humanos lerem e que, ao mesmo tempo, o computador traduz e executa o que foi pedido. Com 100% de precisão.
Ainda assim, havia limitação na quantidade de comandos “humanos” que pudessem ser criados, porque os computadores eram extremamente lentos e não aguentavam tanta coisa. Conforme os computadores fossem ficando mais potentes, linguagens mais robustas puderam ser criadas. Isso sem contar as novas linguagens que eram criadas para um objetivo mais específico ou que fossem usadas apenas por empresas, criando muitas variantes.
Por isso que não usamos apenas uma única linguagem de programação hoje em dia. Cada uma tem suas vantagens/desvantagens e foram escolhidas a dedo para cada proposta de tecnologia. Você, como programador, não precisa saber de todas. Porém, conforme o tempo passa e treina sua lógica de programação, mais fácil é entender uma nova linguagem e trocar, Caso queira. Esse é o motivo pelo qual não estudar mais do que uma ou duas linguagens de programação inicialmente.
Exercício
Se você está aqui para aprender a programar, então é LÓGICO que vai ter exercício para fazer em casa! (Se não estiver, tudo bem. Pode pular 😌)
Minha proposta é:
Pegue algumas tarefas que você faz no dia a dia e tente criar um algoritmo para elas. Ou seja, crie um passo a passo do que é necessário para realizar aquela tarefa, como, por exemplo, escovar os dentes. Depois, leia para você mesmo (ou outra pessoa) e veja se os passos estão bem detalhados.
Lembre-se que os passos normalmente não envolvem cálculos. São apenas comandos e ações, como “Abra a gaveta”. O pulo do gato é que você precisa relembrar que, no caso de escovar os dentes, quem vai ler, não sabe o que é uma escova de dentes, torneira e nem uma pasta de dente. Você precisa descrever com precisão, senão a pessoa irá fazer uma ação errada.
No próximo post, falarei um pouco mais sobre os fundamentos de lógica de programação e algoritmos, que te ajudarão a entender melhor como dar comandos ao computador, usando uma linguagem de programação.