Aprender a programar

Aprender a programar parece difícil? Veja essas dicas.

Imagem de computador com código Hello WorldO que leva uma pessoa a querer aprender a programar? Programação, a princípio, parece ser complexo. A área assusta as pessoas assim como matemática. Veja abaixo 10 conhecimentos preliminares para você não ficar perdido na hora de começar a programar. No final estão os links para sites que considero os melhores para aprendizado de programação. Mesmo que você não saiba nada, esses sites permitem subir rapidamente de level.

#1 O que precisa saber para aprender a programar

A área de programação é recheada de termos técnicos. Siglas infinitas, das quais muitas podem representar mais de uma coisa dentro de tecnologia.

Separei os termos técnicos que eu acho que uma pessoa que quer aprender a programar tem que saber:

  • Software
  • Hardware
  • Dados
  • Linguagem de programação
  • Algoritmo
  • Variável
  • Compilador

Se você souber todos esses termos, pode passar para a próxima seção do post. Caso não saiba, clique em cima do respectivo item para ver a explicação.

#2 Prazer, sou um código

Programar é escrever um código em uma linguagem de programação que depois é transformado em um software. Saber uma linguagem de programação não é a mesma coisa que saber programar, mas para programar você terá que aprender uma linguagem de programação. Tornar-se um bom programador pode levar anos, mas é possível programar coisas básicas em pouco tempo. Em todos nossos posts usamos esta caixa bonita abaixo para inserir códigos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
int fase_atual = 1;
// fixando um dano para testes
int dano = 25;
int life = 100;

if(dano>life)
{
     print("Chefão derrotado!");
     fase = fase + 1;
}
else
{
     life = 0;
     print("Game Over");
}

Reparem que o código possui uma numeração de linhas na esquerda. Elas representam a ordem em que as linhas são executadas, porém não fazem parte do código. São usadas apenas para referenciar o código. Por exemplo, com as linhas, eu posso escrever algo como: “a linha 2 possui um comentário. Comentário em um código não é executado”.

Eventualmente você vai encontrar códigos sem a numeração de linha, mas a dica importante é: se você for copiar e colar um código para testar, não copie a numeração de linhas na esquerda. Se elas forem juntas, apague o número das linhas.

#3 Escreva em um editor adequado

Outra dica sobre o código: utilize um editor de texto que formate o código para você, como a caixa de código acima. Os valores numéricos e tipos de dados estão em azul, as palavras reservadas em verde, os textos com fundo rosa e,  o restante, identificadores e operadores, está em cinza. Isso ajuda bastante na legibilidade do código. Para quem está começando, indico escrever os códigos no Sublime Text e o Notepad++. Há quem, mesmo não sendo iniciante, use utiliza esses editores, mas, em geral, quem já sabe programar prefere usar o editor de uma IDE (se não sabe o que, clique em cima).

Alguns instrutores gostam de destacar que um código é essencialmente um arquivo de texto e pode ser escrito em qualquer editor de texto. Eles acabam usando um bloco de notas ou um editor similar para reforçar esse conceito. Aprenda o conceito, mas não caia nessa. Use o avanço da tecnologia a seu favor e codifique em um editor apropriado.

#4 Não tenha medo

Muitas pessoas olham por frações de segundo os códigos escritos com linguagens de programação e emitem frases definitivas como: “isso não é para mim”, “não entendo absolutamente nada”, “não parece terráqueo” e por aí vai. Refugam sem fazer um pequeno esforço de olhar e ver que, muitas vezes, o que está escrito ali é compreensível até para uma criança.

Você entendeu algo do código acima?

Esforce-se para entender cada linha do código que você estudar. Avance só quando souber o significado de cada linha. Não faça como muitos que copiam e colam o código com o argumento: “não sei o que esse trecho faz, mas está funcionando”.

#4.1 Gabarito

Explicando o que acontece no código acima linha a linha:

  • 1 cria uma variável do tipo inteira, de nome fase_atual e atribui a ela o valor 1;
  • 2 é um comentário, ignorado pelo compilador. Só está ali para esclarecer algo sobre o código para o programador;
  • 3 cria uma variável do tipo inteira, de nome dano e atribui a ela o valor de 25;
  • 4 cria uma variável do tipo inteira, de nome life e atribui a ela o valor de 100;
  • 5 não tem nada e é ignorada, um enter foi dado só para aumentar a legibilidade do código;
  • 6 testa se o valor armazenado na variável dano é maior que o valor armazenado na variável life;
  • 7 abre o parêntese da estrutura if (que é fechado na linha 10);
  • 8 (imprime o texto Chefão Derrotado! na tela) e 9 (incrementa o valor da variável fase em 1 unidade) só são executadas se o teste da linha 6 for bem sucedido, ou seja, se dano for maior que life;
  • 11 informa o que fazer caso a variável dano não seja maior que life;
  • 12 abre o parêntese da estrutura else (que é fechado na linha 15);
  • 13 (zera a variável life) e 14 (imprime Game Over) só são impressas se dano não for maior que life.

#5 There will be math

(lembra do filme There will be blood?)

Querendo ou não, você vai vai precisar de matemática, mas novamente, não se assuste.

Matemática todo mundo tem uma noção e no começo precisa de pouca. Provavelmente você já fez coisas muito mais cabeludas com matemática (como resolver equações de segundo grau na mão) do que fará enquanto for aprender a programar. O uso de matemática na programação estará próximo do uso de uma calculadora, mas no lugar de digitar os números e as operações nela, você escreve expressões matemáticas no código.

Veja como é algo muito simples. Vou criar uma variável batata, depois outra repolho e, por fim, uma variável de nome salada que vai somar as duas.

1
2
3
batata = 22;
repolho = 56;
salada = batata + repolho;

A primeira dica, óbvia porém essencial, é que o nome da variável fica à esquerda do sinal de igual e o valor à direita. Isso é tão natural para tantas pessoas que nunca me ocorreu que essa dúvida fosse frequente. Quando fazemos x = 12, o valor 12 é armazenado na variável x. O valor do lado direito é armazenado no identificador do lado esquerdo.

Existem também outras duas dicas:

  • Durante o processo de aprender a programar, use e abuse de nomes engraçados quando precisar criar variáveis. Isso vai lhe motivar e reforçar as situações nas quais você pode criar um nome no código.
  • Logo que aprender a programar um pouco, esqueça a dica acima. Passe a usar nomes intuitivos para as variáveis, de forma que, se um outro programador for ler seu código, ele esteja escrito da forma mais clara possível.

#6 Elementar meu caro Watson

Cabeça com interrogações, lógica

Outro fator muito importante em um código é a lógica. Lógica é super simples, mas muita gente trava nessa parte. Ela diz respeito ao raciocínio lógico. Se aconteceu tal coisa, então posso concluir tal e tal coisa. Se aconteceu isso, faça isso, senão, faça isso.

Uma expressão como 3 > 2 é verdadeira. Outra como 10 < 5 é falsa. Na maioria das linguagens de programação existe um tipo de dado lógico, que nada mais é do que uma variável que pode assumir o valor de verdadeiro ou falso (true ou false em inglês)

Lembra do if e do else no código lá em cima? Imagine sua mãe pedindo para você ir à feira com a instrução: “se tiver maçã, compre 6, senão, compre 4 peras”. É a mesma coisa.

É importante ter conhecimentos de lógica pois ela é a base da programação.

#6.1 Resolva o enigma!

Resolva o seguinte problema: “continue o código a partir da linha 3 e inverta os valores armazenados nas variáveis repolho e batata, mas não use números, só variáveis. Você pode criar variáveis auxiliares se quiser”. Eis o código:

1
2
batata = 22;
repolho = 56;

E aí, não vai nem tentar?

Os mais apressadinhos normalmente mandam respostas assim:

1
2
3
4
batata = 22;
repolho = 56;
batata = repolho;
repolho = batata;

Essa resposta não está certa, pois apesar da linha 3 trocar o valor de batata com repolho corretamente, a linha 4 não faz isso porque batata já está com outro valor quando se chega nela.

Os mais seguros, por sua vez, mandam assim:

1
2
3
4
5
6
batata = 22;
repolho = 56;
batata_auxiliar = batata;
repolho_auxiliar = repolho;
batata = repolho_auxiliar;
repolho = batata_auxiliar;

A resposta acima está correta, mas tem 1 linha desnecessária. O código abaixo realiza a lógica necessária no menor número de linhas possíveis e de acordo com o enunciado. Nesses casos, diz-se que o código está otimizado.

1
2
3
4
5
batata = 22;
repolho = 56;
aux = batata;
batata = repolho;
repolho = aux;

#7 Esporte: programação

Para quem programa, entende que pequenas conquistas fazem toda diferença. Por mais redundante que pareça, você usa código para programar o que o computador deve fazer e, quando ele faz o que deve fazer, aquilo lhe traz uma enorme felicidade. Não é raro eu ver colegas de trabalho levantando de suas mesas e dando um peixinho no chão, tal qual a comemoração de um gol. Na maioria dos casos, a ação foi provocada porque resolveram algum bug e o programa passou a se comportar como deveria.

Por isso, pratique tanto quanto puder.

Aprender a programar tem características bem marcantes. A primeira delas é que ela funciona como um esporte. Você pode ler e estudar o quanto quiser, mas só irá avançar se praticar. Imagine um livro sobre futebol. Quanto mais você ler ou ver vídeos sobre, melhor jogará? Evidente que não! É preciso exercitar todo o conhecimento adquirido em campo para evoluir. Na programação, é preciso escrever e rodar muitos programas para conseguir programar melhor.

Para praticar, escolha uma linguagem e uma IDE. Minha recomendação é que você comece pela linguagem Python ou JavaScript.

 #8  Saber inglês ajuda

Não é obrigatório, mas entender inglês ajuda bastante. Isso porque a maioria das linguagens de programação foram desenvolvidas por falantes da língua inglesa. Assim, os comandos existentes nessas linguagens são em inglês. A maioria das linguagens de programação foram feitas com comandos em inglês. Para alguém que lê e se comunica em inglês, é muito fácil entender alguns comandos apenas por entender certas palavras.

  • If – Se
  • Else – Senão
  • And – E
  • Or – Ou
  • Print – Imprimir
  • Input – Entrada de dados
  • Output – Saída de dados
  • Standard – Padrão
  • Library – Bliblioteca
  • Header – Cabeçalho
  • Não precisa decorar essa lista, você pode usar como referência caso esbarre em um palavra desconhecida durante os estudos.

#9 Tipos de dados

Algumas linguagens de programação classificam variáveis e dados conforme seu tipo. Pode ser um texto, um número inteiro, um número com casas decimais ou um valor lógico. Outras linguagens não fazem essa classificação, mas é importante você conhecer os principais tipos existentes. 

  • Números Inteiros– Muitas linguagens usam a abreviação int (integer em inglês, que significa inteiro em português). Eles são os números que “não são quebrados”.
  • Ex: -2, -1, 0, 2, 5 , 888, 1024.
  • Números com casas decimais – É uma representação dos números reais, mas possui precisão finita, pois o computador não consegue guardar infinitas casas decimais para um número. Nesse casa o computador tem que truncar o número, que significa cortar o número em um ponto e arredondar. Muitas linguagens dão o nome de float e double para esse tipo dependendo da precisão desejada.
  • Ex: 1.2, 3.14, 7.000, 13,53.
  • Texto – Existem tipos de dados para guardar textos.  Algumas linguagens dão o nome de string para esse tipo.
  • Ex: “Curso de programação”, “Arroz com feijão”, “Carro 2.0”.
  • Caracteres– É um tipo que armazena caracteres.
  • Ex: ‘a’, ‘b’, ‘C’, ‘D’.
  • Variável Lógica – Variável que assume dois possíveis valores: verdadeiro ou falso.
  • Ex: true, false

Se você quiser conhecer mais a fundo os tipos de dados e outros conceitos fundamentais das linguagens de programação recomendo que leia esse post Linguagem de programação: características

#10 Onde começar?

Para colocar a mão na massa e aprender a programar, vou indicar alguns links (todos gratuitos):

  • Eloquent JavaScript – Leia somente a introdução. O livro é ótimo, super completo e abrangente, mas, nesta etapa, para aprender a programar recomendo só esse.
  • Google Doodle de comemoração a 50 anos de programação para crianças. Aprendizado bem visual.
  • SoloLearn site que ensina diferentes tipos de programação com um método gameficado. Somente em inglês.
  • Code Academy site que ensina diferentes tipos de programação.
  • Vídeo em Curso ensina Python com aulas em vídeo e um método gameficado.

Resumo

  1. É preciso ter conhecimentos de matemática e lógica, mas só o básico. Entender inglês vai lhe ajudar.
  2. Escolha uma linguagem de programação para começar. Se estiver indeciso, temos vários posts no portal que podem lhe ajudar.
  3. Procure conhecer algumas palavras em inglês que aparecem o tempo todo no mundo da computação.
  4. Entenda conceitos básicos como código fonte, algoritmo, fluxo de execução.
  5. Entenda a forma como a linguagem de programação lida com os dados. Ou seja, estude os principais tipos de dados.
  6. Se você tem vontade de programar, basta força de vontade e empenho. A internet está repleta de conteúdo que lhe ensinará a programar.

Sobre o Autor

Leandro Pinho Monteiro

Leandro Pinho é engenheiro de computação, graduado em Ciência da Computação na Universidade Estadual de Maringá (UEM) e mestre em Engenharia da Computação na Faculdade de Engenharia Elétrica e Computação (FEEC) da UNICAMP, ambas formações com foco em Computação Gráfica. Possui experiência no desenvolvimento de sistemas interativos 3D para pontos de venda, marketing e eventos. Atualmente trabalha como consultor de tecnologia e é o responsável pela coordenação dos cursos oferecidos na Universidade da Tecnologia.