O que faz um programador?#

Parece uma pergunta tão simples, mas ao mesmo tempo tão difícil de responder. E eu digo que é difícil pois para ser certeiro na definição teríamos de usar termos como software, código ou linguagem de programação, e a realidade é que pessoas que não são da área de TI (Tecnologia da Informação) podem não entender esses conceitos.

Vamos começar com a explicação de alguns termos muito comuns na vida de alguém que trabalha com computadores.

O que significa Hardware e Software?#

Essas duas palavrinhas de origem inglesa, Hardware e Software, representam dois tipos de coisas no mundo da computação.

Hardware#

Tudo que é físico, ou seja, que da pra pegar na mão, nós chamamos de hardware. Exemplos seriam um computador e suas peças internas (processador, placa mãe, memória ram, etc.). Também chamamos de hardware coisas como teclado, mouse e monitor (apesar de eles serem referenciados mais comumente como periféricos, pois estão à parte do computador, e podem ser desplugados e trocados facilmente.)

Software#

O software, também chamado de programa, é o que roda através do hardware. Os sistemas operacionais (SOs), por exemplo, são responsáveis por se comunicar diretamente com o hardware, e fazer com que todos os hardwares se comuniquem entre si. Exemplos de sistemas operacionais são: Windows, Linux, MacOS, Android, iOS, etc.

Numa próxima camada, nós temos os programas que rodam “em cima” dos sistemas operacionais. Alguns exemplos seriam: Google Chrome, Firefox, Spotify, Whatsapp, Photoshop, VLC, Steam e até mesmo jogos como League of Legends, Counter Strike e GTA.

Outro “tipo” de software seriam os programas envolvidos no funcionamento dos sites que acessamos no dia a dia, como o motor de buscas Google, que depende de muitos programas que ficam vasculhando a internet e organizando as informações para que possamos encontrá-las facilmente quando fazemos uma pesquisa.

Dito isto, podemos dizer que o programador é alguém que trabalha com software. Mas essa definição ainda possui alguns problemas.

Um usuário não é um programador#

É muito comum que os pais coloquem seu filho numa “escolinha de informática” achando que ele vai sair de lá “trabalhando com TI”.

Esse erro acontece pois muitos não entendem a diferença entre saber usar um computador e saber programar. Quando vamos para a auto escola, aprendemos a dirigir um veículo. Isso não significa que vamos sair de lá construindo carros.

Ou seja, saber utilizar um programa, não significa que você pode criar outros programas. Existem aprendizados e cursos específicos para isso.

Em resumo, o programador é aquele que cria novos softwares, ou trabalha dando manutenção em algum programa.

Como se cria um programa?#

Um programa é criado com o que chamamos de Linguagem de Programação. É principalmente aqui onde a maior parte das habilidades de um programador se encontra.

O programador se utiliza de uma ou mais linguagens de programação para fazer seu trabalho. Isso é chamado de “escrever código”.

Existem centenas de linguagens de programação no mundo, e a qualquer momento podem surgir outras novas. No entanto, apenas algumas dezenas são realmente utilizadas em grande escala na atualidade.

Então, da mesma forma que ver fotos de uma obra em andamento nos diz muito sobre como é o trabalho de um pedreiro, a melhor forma de ver como é o trabalho de um programador é olhando para alguns códigos.


Exemplo de um código em Python utilizado para a criação de posts em um blog. Pode ser acessado na íntegra aqui: https://github.com/pallets/flask/blob/main/examples/tutorial/flaskr/blog.py

Um programa pode ser simples e possuir apenas algumas linhas de código, ou pode conter milhares de linhas distribuídas em diversos arquivos diferentes. O trabalho do programador é saber ler e escrever estes arquivos.

O universo da computação é gigantesco, e mesmo dentro da programação existem muitas áreas diferentes, com focos em tipos de programas completamente diferentes uns dos outros.

Vamos tentar responder a pergunta novamente? O que de fato faz um programador?

Um programador é alguém que se utiliza de linguagens de programação para criar ou manter programas dos mais variados tipos, como sites ou aplicativos.