Como começar a programar
8 minute read
Por onde eu começo?
Comece pelo Python!
Python é amplamente reconhecida como uma das melhores linguagens de programação para iniciantes, especialmente para aqueles que não têm nenhum conhecimento prévio sobre computadores. Alguns motivos:
- Escrita simples e aprendizado rápido
- Extremamente popular e fácil de encontrar recursos como cursos, livros e vídeos, inclusive gratuitos
- Versatilidade e aplicações práticas podendo ser usado para coisas como desenvolvimento web, análise de dados, inteligência artificial, automação, e muito mais. Isso te permite experimentar diferentes áreas da programação e encontrar seu interesse específico!
- Amplamente utilizada em empresas e projetos reais, o que significa que as habilidades adquiridas aprendendo Python são altamente relevantes e aplicáveis no mercado de trabalho.
Exemplo de Automação com Python:
Comentários no código
Para facilitar o entendimento de um código, é muito comum adicionar comentários. Comentários são trechos que não vão ser interpretados como comandos pelo seu processador.
Eles estão ali apenas para explicar ou justificar porque alguma coisa está sendo feita de um jeito e não de outro.
Para se fazer um comentário num código python, basta começar uma linha com “#” (hashtag)
# Criando a variável "nacionalidade"
# para utilizar num formulário depois
nacionalidade = "brasileiro"
Perceba que o comentário fica em cinza, justamente para não tirar a atenção do código que é de fato executado!
import os
# O código abaixo renomeia todos
# os arquivos ".txt" em uma pasta
for arquivo in os.listdir("."): # "." significa pasta atual
# verifica se o arquivo termina com a extensão ".txt"
if arquivo.endswith(".txt"):
# troca os quatro últimos caracteres do nome do arquivo
# nesse caso ".txt" por ".md"
os.rename(arquivo, arquivo[:-4] + ".md")
Os motivos abaixo podem não fazer muito sentido pra você agora, mas eles são muito relevantes!
- Interpretação e feedback imediato: Python é uma linguagem interpretada, o que significa que você pode escrever e executar código linha por linha. Isso é extremamente útil para iniciantes, pois permite ver imediatamente os resultados das suas instruções e entender como o código funciona.
- Várias funcionalidades embutidas na linguagem: Python vem com uma biblioteca padrão robusta que oferece módulos e funções para praticamente qualquer tarefa imaginável, desde manipulação de arquivos até computação matemática complexa. Isso reduz a necessidade de escrever código do zero para muitas tarefas comuns.
Eu acredito que não preciso te convencer sobre porque saber programar é importante, mas vou descrever alguns motivos rapidamente, só pra poder fazer referência a eles depois.
Por que aprender a programar?
Porque não importa qual seja a sua área escolhida, você vai se beneficiar MUITO por saber programar. Se um problema humano foi resolvido com tecnologia, saiba que programação foi utilizada em alguma etapa da solução.
Mesmo que você não precise programar para resolver o seu problema imediato, saber como algo foi feito ou poderia ser feito, te dá uma vantagem competitiva desleal sobre quem não sabe.
Talvez você já esteja aplicando conceitos de programação e nem se da conta.
Quando usamos o Excel, por exemplo, precisamos pensar na estrutura dos dados, para organiza-los em colunas coerentes. Podemos ainda criar fórmulas pra reagir automaticamente a valores que são inseridos. Também é possível manipular os dados de forma dinâmica e mostra-los graficamente.
Basicamente utilizamos lógica para reagir a entrada de valores e no fim obtermos uma resposta inteligente e estruturada sobre o que os dados significam.
Outras menções honrosas são o Zapier e o IFTT, que são ferramentas usadas para automação de tarefas repetitivas do seu cotidiano.
Ao aprender a programar, você vai:
- Aprender a se comunicar com seu computador
- Desenvolver suas habilidades de resolução de problemas
- Conseguir automatizar suas tarefas
- Ter muito mais flexibilidade na sua carreira
- Saber se comunicar tecnicamente com outras áreas
- Conseguir trabalhar em mais iniciativas de inovação
- E muito mais!
O que exatamente uma linguagem de programação faz?
O seu computador, mais especificamente o processador, entende apenas zeros e uns. Sim, os números 0 e 1. Isso se chama representação binária.
As linguagens de programação foram criadas porque eu e você não sabemos nos comunicar de forma binária, e mesmo que soubéssemos não seria prático.
Lendo sobre representação binária, você vai ver que um “bit” é algo que pode representar “zero” ou “um”.
Processadores só sabem realizar operações simples como adicionar
, subtrair
, salvar
, etc.
Mas como utilizar 0 e 1 para instruir um processador a somar dois números?
Uma instrução de adição para um processador específico pode ser representada da seguinte maneira:
Operação: 000001 (adição)
Operando 1: 00001 (registrador 1)
Operando 2: 00010 (registrador 2)
Destino: 00011 (registrador 3)
Juntando tudo, temos a instrução binária completa:
000001 00001 00010 00011
Os diferentes “níveis” de linguagem
Quando você ouvir falar que uma linguagem é de “alto” nível, não significa que ela é melhor que uma de “baixo” nível.
Quanto mais baixo o nível de uma linguagem, mais próxima ela está das instruções que o processador entende. Consequentemente, mais linhas de código e detalhes precisam ser escritos para realizar tarefas.
Quanto mais alto o nível de uma linguagem, mais próxima ela está das instruções que humanos entendem. Consequentemente, menos linhas de código são necessárias pra realizar tarefas mais complexas.
Exemplos notáveis de nível alto para baixo:
Python -> JavaScript -> Java -> C# -> Go -> Rust -> C++ -> Zig -> C -> Assembly
A pergunta óbvia nesse momento é:
Começo no nível mais alto ou mais baixo? Com que linguagem?
A minha sugestão é: Comece no nível mais alto para entender o que você consegue fazer com programação e para se expor aos conceitos o mais rápido possível. MAS, não pare aí.
Programar em níveis mais baixos te faz entender melhor como o computador funciona, e isso é sempre benéfico. É lógico, é preciso encontrar um meio termo entre o benefício do aprendizado e aprender por aprender. A única coisa que pode te fazer querer aprender Assembly
é sua curiosidade ou se você vai trabalhar na Intel. Fora isso, é improvável que agregue muito valor na sua vida profissional.
Comparando diferentes níveis
Vamos supor que você se deparou com uma tarefa muito simples mas repetitiva, que precisa ser feita em 100 arquivos.
Se decidir fazer isso com programação, a primeira coisa que vai precisar fazer é abrir e ler esses aquivos no seu código, para poder alterar o conteúdo depois. Vamos comparar apenas esse passo inicial com Python (alto nível) vs C (baixo nível):
Ler e mostrar um arquivo em Python
Em Python, abrir e ler um arquivo é uma tarefa direta e simples. O código a seguir lê o conteúdo de um arquivo chamado arquivo.txt
e o mostra na tela.
# Abrindo o arquivo 'arquivo.txt' em modo de leitura ('r')
with open('arquivo.txt', 'r') as arquivo:
# Lendo todo o conteúdo do arquivo
conteudo = arquivo.read()
# Imprimindo o conteúdo do arquivo
print(conteudo)
Perceba que é possível ler o código praticamente como se estivesse lendo uma frase e rapidamente entende-lo:
Abra o arquivo
arquivo.txt
e o chame dearquivo
. Leia os dados doarquivo
e salve emconteudo
. Mostre oconteudo
.
Precisa saber um pouquinho de inglês
Para entender com tranquilidade o código acima, seria preciso saber que:
with
significa “com”open
significa “abrir”as
significa “como”. Por exemploas before
-> “como antes”read
significa “ler”print
significa “imprimir” ou “mostrar”
Ler e mostrar um arquivo em C
Em C, a mesma tarefa envolve mais etapas e um maior nível de detalhamento. Vamos examinar o código necessário para abrir e ler o conteúdo de um arquivo.
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *arquivo; // Declaração de um ponteiro para o arquivo
char *buffer; // Ponteiro para armazenar o conteúdo do arquivo
long tamanho_arquivo; // Variável para armazenar o tamanho do arquivo
// Abrindo o arquivo 'arquivo.txt' em modo de leitura ('r')
arquivo = fopen("arquivo.txt", "r");
if (arquivo == NULL) {
// Verificando se o arquivo foi aberto com sucesso
printf("Erro ao abrir o arquivo!\n");
return 1;
}
// Movendo o ponteiro do arquivo para o final
fseek(arquivo, 0, SEEK_END);
// Obtendo o tamanho do arquivo
tamanho_arquivo = ftell(arquivo);
// Movendo o ponteiro do arquivo de volta para o início
rewind(arquivo);
// Alocando memória para armazenar o conteúdo do arquivo
buffer = (char*)malloc(sizeof(char) * tamanho_arquivo);
if (buffer == NULL) {
// Verificando se a alocação de memória foi bem-sucedida
printf("Erro ao alocar memória!\n");
return 1;
}
// Lendo o conteúdo do arquivo para o buffer
fread(buffer, 1, tamanho_arquivo, arquivo);
// Imprimindo o conteúdo do arquivo
printf("%s\n", buffer);
// Fechando o arquivo
fclose(arquivo);
// Liberando a memória alocada
free(buffer);
return 0;
}
Até com os comentários, se você não tiver estudado programação, fica difícil entender rapidamente esse código. O que é ponteiro
? e buffer
? NULL
? malloc
? São conceitos muito importantes!
Mas será que é por aí que você deveria começar o seu aprendizado? COM CERTEZA NÃO!!
Isso seria o equivalente a dizer que antes de aprender a falar “obrigado” em português você precisa aprender o que são orações subordinadas adverbiais.
Por isso eu acredito que Python é uma excelente introdução ao mundo da programação. É uma linguagem que vai te recompensar desde o dia 1 e te manter motivado para aprender diferentes conceitos e linguagens, que podem ser muito difíceis no começo.
Referências: