O que (de verdade) é programação?

QODA
Curso de Programação Python
11 min readNov 21, 2019

Programar é muito mais fácil do que se imagina. O que separa você de um algoritmo é apenas uma crença limitante.

É possível programar sem mesmo ter um computador, com poucos atributos (ler e escrever no mínimo) e até com papel e caneta. Desta vez vou falar somente sobre o conceito de programação e compartilhar com você um método italiano.

O conceito de programação

Bem, a programação possui um conceito lógico e prático. É simplesmente um processo de escrita no qual sua instrução cria informação e ações. Você cria mas tem o poder de destruir. Quantifica, mas tem poder para ser algo nulo.

Vamos evitar a linguagem técnica e as dissertações, pois acredito que se você está aqui, talvez nunca tenha tido a chance de entender realmente o que é programação. Isso precisa ser simples.

Eu sei! Vamos lá!

Imagine que você tem um robô…
Mas um robô que não tenha braços nem pernas.

Nem rodinhas, também não!

Seu robô possui uma capacidade de raciocínio lógico e inteligência ímpar e sabe fazer cálculos cálculos a uma velocidade muito superior à humana. Mas para que o robô consiga desenvolver determinadas ações desejadas, ela irá necessitar de entender exatamente o que você (humano) lhe pede.

Seu robô é um prodígio!

Imagine agora que seu robô possui olhos e uma tela na qual expressa com textos e imagens suas emoções. Imagine que seu robô emite sons, possui luz, possui um formato específico e botões ou teclas que servem para você se comunicar com ele de maneira que se equipara com sua compreensão e suas limitações. Afinal, ele é um robô. Um prodígio, mas não é humano.

Seu robô fala um idioma nativo que não é o seu idioma. Ele entende seu idoma e até te corrige quando você se comunica, se expressa ou transfere para ele informações errôneas. Seu robô tem o dom da comunicação e o dom de produzir coisas incríveis. Este é seu computador, uma excelente ferramenta.

Seu computador foi programado para cumprir tarefas e antender aos comandos mais primitivos num escopo, ou seja, existem limites. Seu robô entende e reage de forma controlada aos seus comandos, responde de forma “educada” cada pedido ou ordem.

De forma ampla, seu computador é um robô que não tem autonomia física, ou seja, não se locomove nem consegue te pegar, certo?

Mas afinal, o que (de verdade) é programação?

Programar é conhecer a escrita, a comunicação entre robô e pessoa para construir um programa de computador. O programa é escrito e se comunica usando linguagem de programação e para isso, é preciso um programador que “fale” um dos muitos idiomas que os computadores “falam” como robô.

O idioma falado pelos computadores

Seu computador fala um idioma próprio que você não fala, ele tem um idioma nativo, nasceu assim. Do mesmo modo que você nasceu e aprendeu a se comunicar em um idioma, o português, ele também possui um idioma nativo.

Se uma criança nasce na Inglaterra, tem pais ingleses, frequenta escolas na inglaterra, se socializa com nativos ingleses e permanece lá até seus 20 anos, ela aprende a falar inglês e vai evoluindo seu vocabulário ao longo do tempo.

Seu computador nasceu em um laboratório (fábrica de computadores) e pertence a uma cultura (um Sistema Operacional: Windows ou Linux ou MacOS), ou seja, tem uma maneira de ser, foi alfabetizado (fala um idioma) e educado (se comporta e responde) de uma maneira específica.

Além do seu idioma, ele possui uma linguagem, uma maneira de se expressar e de se fazer entendido, possui esta característica e nele é algo natural.

Logo, para que você consiga se comunicar com ele precisa se expressar e falar uma linguagem correta. Para entender a maneira que ele se comporta ou se expressa você precisa entender sobre sua cultura e suas origens. E é fácil!

Por exemplo, ele pode ter recebido uma “educação” do Windows. Então, ele possui uma maneira de agir diferente dos que são “educados” pelo Linux.

E como aquela criança que nasceu na inglaterra, para você pedir para ela que te ajude em uma emergência e você só possa se expressar com os sons que saem da sua boca (ou seja, um comando ou pedido por voz), você pode dizer uma simples palavra (HELP*) para ser entendido e esperar ajuda, certo?

HELP em inglês é um substantivo relativo a palavra AJUDA.

Da mesma forma, programar é falar (escrever em uma linguagem de programação) diretamente em uma linguagem de máquina, a do computador.

Linguagem não é idioma

Aqui entram as linguagens de programação, efetuando uma ponte entre a nossa linguagem humana e a linguagem da máquina (binária).

Entenda que uma linguagem natural é qualquer forma de linguagem que foi desenvolvida naturalmente pelo ser humano, de forma não premeditada ela também nasce, ganha um corpo e evolui.

No contexto humano, temos línguas faladas e as línguas de sinais. Ao observar indivíduos que possuem deficiência ou insuficiência de audição, é necessário se comunicar de uma forma efetiva e, no Brasil, temos uma linguagem de sinais para uniformizar e parametrizar a comunicação através da Língua brasileira de sinais (LIBRAS).

Usada por surdos dos centros urbanos brasileiros e legalmente reconhecida como meio de comunicação e expressão, esta linguagem é um conjunto de formas gestuais para a comunicação entre eles e outras pessoas, sejam elas surdas ou ouvintes. É uma linguagem desenvolvida para se comunicar!

Em todo o mundo temos 7.111 idiomas (*), segundo o compêndio Ethnologue, considerado o maior inventário de línguas do planeta.

Alguns idiomas são descendentes do Latim, logo, sua estrutura idiomática é semelhante. Línguas latinas possuem algumas palavras muito selhantes pois são “evoluções” do latim. Só entre o italiano, espanhol e português, você vai encontrar inúmeras palavras com a mesma estrutura gramatical.

Com a evolução da tecnologia, linguagens de programação foram desenvolvidas e hoje termos mais de 1300 linguagens de programação.

Atualmente, diferentes linguagens de programação funcionam de diferentes modos. Por esse motivo, os programadores podem criar programas idênticos, que executem exatamente a mesma tarefa mas usando diferentes linguagens.

Teoricamente, a maioria das linguagens de programação pode ser usada para criar qualquer programa ou para se comunicar com o computador.

Linguagens de programação mais comuns

Podemos dividir as linguagens de programação entre as de Baixo Nível e de Alto Nível.
As “baixo nível” são barraqueiras e as outras são finas e elegantes.
Brincadeirinha!

Em tecnologia, existem classificações e subclassificações(**) entre as linguagens, mas vamos de Baixo Nível operam e se comunicam diretamente com o computador, o que chamamos de hardware.

As linguagens de baixo nível, se comunicam e interpretam a camada nativa, possuem uma habilidade de se concentrar em aspectos essenciais do contexto de uma informação ou dado, ignorando características menos importantes.

Outra característica destas linguagens é ser divididas em Fortemente Tipadas ou Fracamente Tipadas.

Por exemplo, se um dado é um número ou um texto, esta diferenciação pode ser exigida em algumas linguagens pois e sua maneira de entender os dados, um número precisa ser expresso antes de ser informado.

Isso cria um nível de abstração para entender os dados, mais ou menos assim:

1 = Número inteiro, primeiro número natural, primeiro número ímpar.

É assim uma das maneiras que uma linguagem de alto nível entende um simples número. Bem mais próximo que a maneira humana de entender.

UM = Texto, duas letras, na matemática significa 1, mas é um texto.

Para falar esta linguagem não há como obter um resultado matemática tentando somar um texto com um número. Ou seja, em linguagem de alto nível, somar dois números é possível ter um resultado matemático:

1+1
=
2

Se você “perguntar” para um computador em linguagem de alto nível qual seria o resultado da soma de um texto, sabendo que soma é uma operação matemática, ele vai abstrair esta informação e vai te dar uma resposta óbvia:

UM + UM
=
UMUM

Ou

BO + LO
=
BOLO

Abstração = 1 é número e UM é um texto, artigo ou numeral em formato texto.

Para quem nunca programou ou vai iniciar uma aprendizagem de alguma linguagem de programação, é muito comum me perguntarem:

  1. Quais são as linguagens mais usadas?
  2. 2 Quais são as mais fáceis de aprender?

Para cada pergunta tenho 2 repostas.
Primeiro, analisando índices de popularidade, crescimento e procura.

Segundo o índice TIOBB(***) as 10 linguagens mais populares são:

Agora fica fácil responder sobre qual é a mais usada: Java, C e Python.

Estas três estão entre as 10 principais linguagens de programação pois são as que mais possuem entrada de aprendizado pois possui mais profissionais criando programas. Logo, popula um grande mercado e atrai novos estudantes de suas tecnologias e assim, sucessivamente, fomenta o mercado.

Java se consolidou desde seu lançamento em 1995, como uma linguagem de programação WORA (Write Once Run Anyware, Escreva Uma Vez e Rode em Qualquer Lugar) por ter a capacidade de ser escrita para ser lida (roda) em qualquer Sistema Operacional ou pela sua compatibilidade em “conversar” e “traduzir a conversa” para qualquer tipo de hardware.

C influenciou linguagens como C++, C#, Java, PHP, é o pai de muitas linguagens e foi, por muito tempo, a linguagem predileta para ser ensinada para estudantes universitários de tecnologia por ser, em sua época, fácil.

Agora o Python responde a segunda pergunta que mais me fazem.

É a linguagem mais fácil para ser aprendida e vem engolindo com voracidade as outras linguagens e ganhando o mercado em velocidade vertiginosa.

É largamente utilizada para Big Data (Análise e tratamento de grandes quantidades de dados), Data Science (Ciência de Dados) e Inteligência Articial com Aprendizado de Máquina (AI). Gigantes da tecnologia e grandes empresas como Google, Spotify, Facebook, Instagram, Youtube, Globo.com, Magazine Luiza e Amazon usam o Python.

O mercado profisisonal, no geral, também valoriza os profissionais remunerando bem. No Brasil o salário médio de um Programador Python é de R$ 5.000,00, chegando até aos R$ 10.000 nos grandes mercados.

Isso não é uma opinião baseada em achismo, não!
Vamos aos pontos de inflexão, começando com o histórico do índice TIOBB.

Python, vem ganhando posições com uma velocidade que nenhuma outra linguagem de programação ganhou na história. Que fique claro que isso não desqualifica as outras linguagens, apenas mostra a adoção pelo mercado de uma linguagem que é fácil, rápida e oferece soluções mais amplas.

Java, C e C++ juntas, se mantiveram no pódium por décadas. Python vem em crescente, de posição 21 foi para posição 6 e agora está na posição 3.

E Python, segundo o Indice TIOBB, lidera com 3 medalhas seu Hall da Fama:

https://www.tiobe.com/tiobe-index/

Agora, vamos para outros índices. Começando com o Google Trends(4):

JAN 2004 até NOV 2019

Em todo o mundo, desde 1 de janeiro de 2004, naturalmente a linguagem Java vem diminuindo a quantidade de buscas. Até que em desembro de 2018, perdeu seu lugar para a linguagem Python como uma das mais buscadas.

No brasil, certamente em breve isso naturalmente vai ocorrer:

JAN 2004 até NOV 2019

Agora, a busca por programadores através do Stack Overflow que em sua pesquisa Developer Survey Results(5) apresenta que 75% dos seus usuários são profissionais da área de tecnologia e 62.4% com graduação em Ciência da Computação, Engenharia da Computação ou Engenharia de Software.

Ou seja, em um antro de profissionais da área de tecnologia e entre TODAS as linguagens de programação e tecnologias, temos o seguinte cenário:

Javascript é uma linguagem de script que não compete com Python.
HTML e CSS não são linguagens de programação e sim, de marcação e estilo.
SQL é um banco de dados, não faz parte da mesma natureza.

Acima estão as tecnlogias mais usadas, diferente das mais procuradas(6).

Eliminando HTML, CSS e SQL, claramente teremos Python na categoria Linguagem de Programação(7) em primeiro lugar, desde 2017:

Python é a mais fácil, leve e com uma comunidade imensa. Seus comandos são simples e suas bibliotecas são extretamente fáceis de implementar.

E quando me perguntam sobre “qual devo começar aprender a programar” sempre indico o Pyhton por motivos claros:

  1. A linguagem mais fácil que conheço;
  2. Grande comunidade de programadores, imensa quantidade de sites, blogs, tutoriais, fóruns e cursos com vasta documentação (manuais de instrução) desde a linguagem até as Bibliotecas e Frameworks.
  3. Vasta aplicação para mercado e soluções de tecnologia. Até agora, Python é usado para construir desde softwares seguros e eficientes, sistemas web, aplicativos mobile, ferramentas de linha de comando e alta performance, até rotinas de trabalho e plotagem de dados para Big Data, cálculos astronômicos para Data Science e Inteligência Artificial. É muito amplo.
  4. Há muito mercado. Há muita vaga de emprego para pouco profissional.
  5. Assim como Java, um programa Python compilado roda em qualquer lugar, pode ser usado em ambiente Windows, Linux ou Mac.
  6. Na média você escreve 10x menos linhas de código em Python.
    Exibir um simples texto em um programa de linha de comando exige apenas um 10 caracteres. Sim, é um código muito limpo!

Compare os exemplos em Java, C++ com o Python de uma saíde de dados, ou seja, uma impressão (exivbição) na tela com um texto com um “Olá!:

Código em PYTHON

print("Olá!")

Código em C++

#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!";
return 0;
}

Código em JAVA

public class Ola {
public static void main(String[] args) {
System.out.println("Olá!");
}
}

Vou terminar este artigo com uma linha de comando para te fazer um convite:

Se você conseguir ler acima, já entendeu que este é um simples comando da linguagem de programação mais fácil do mundo.

(1) Ethnologue: Languages of the World 2019. Twenty-second edition.
(2) Classificação de Linguagens (Grau de Abstração)
(3) TIOBE Index
(4) https://trends.google.com.br/trends/explore?date=all&q=%2Fm%2F05z1_,%2Fm%2F07sbkfb,%2Fm%2F0jgqg,%2Fm%2F01t6b
(5) https://insights.stackoverflow.com/survey/2019
(6) https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted
(7) https://insights.stackoverflow.com/trends?tags=python%2Cc%2Cc%2B%2B%2Cjava

Texto: Flávio Conca

--

--

QODA
Curso de Programação Python

Quer conteúdo para evoluir no mercado de programação? Vai e QODA!