11 de set de 2018

Lógica de programação: o que é e como aprendê-la?

Udacity Brasil

Em plena era da informação, quando computadores e dispositivos inteligentes estão por toda parte, temos cada vez mais oportunidades para usá-los e programá-los de forma a facilitar nossas vidas. Basta pensar em seu próprio celular: quais aplicativos estão na sua rotina? Um app de transporte, comunicação ou meteorologia, por exemplo, devem ser bastante comuns.

Para funcionar, tudo isso exige demanda por profissionais capacitados e capazes de trabalhar com programação das maneiras mais diversas, de jogos a desenvolvimento de softwares.

Consequentemente, temos também a lógica de programação, o cerne da programação em si, em todos os lugares.

Neste artigo, vamos falar um pouco sobre lógica de programação, como ela se insere nas linguagens de programação e como aprendê-la e dominar essa habilidade em alta.

O que você vai aprender neste artigo:

Assista ao webinar: Como aprender programação

O que é lógica de programação

Vamos começar pensando sobre lógica. Usamos essa palavra e esse conceito no nosso dia a dia, geralmente relacionada a um raciocínio válido, que é verdadeiro ou falso.

Imagina quantas vezes dissemos: "Eu sabia que isso aconteceria. Era lógico!". O que isso significa? Significa que avaliamos aquele resultado dados os fatos anteriores.

Então o que é lógica de programação? Quando falamos de lógica de programação, não é muito diferente: estamos falando de uma forma de ordenar os fatos para solucionar um problema ou executar uma tarefa. E como estamos falando de computadores, esta forma precisa ser compreensível para eles.

Falando mais formalmente, podemos dizer que lógica de programação é uma técnica usada no desenvolvimento de algoritmos para resolver problemas ou atingir determinados objetivos, baseando-se em regras de lógica matemática e em outras teorias da ciência da computação.

As linguagens de programação, que funcionam com a lógica de programação, são utilizadas para que as instruções possam ser entendidas pelo computador na execução de programas.

O que são algoritmos

Algoritmos são simplesmente um conjunto de procedimentos, detalhados passo a passo, para resolver um problema ou realizar algum objetivo.

Por exemplo, imagine o algoritmo de uma simples máquina de café que começa quando a máquina recebe uma solicitação de bebida:

  1. Mostrar no visor o preço da bebida selecionada
  2. Receber o pagamento
  3. Preparar a bebida
  4. Mostrar no visor que a bebida está pronta

O passo 2 poderia ser detalhado em mais etapas (se a máquina recebesse dinheiro ela teria que verificar se tem troco, se ela tem o valor que precisa dar de troco e por aí vai), mas perceba que este é um algoritmo bem simples – e que até mesmo um algoritmo simples pode se tornar complexo dependendo do nível de detalhes que necessitamos.

Pensando agora no mundo dos computadores e na lógica de programação, imagine quantos algoritmos são executados quando você liga seu computador, abre um site ou clica num botão. São algoritmos como este que contém um início e um fim, com instruções bem definidas e não ambíguas.

A diferença entre o algoritmo citado e os algoritmos dos softwares é a linguagem utilizada. Veja que o algoritmo acima foi escrito de forma que um humano consiga entendê-lo. Quando estamos falando de computadores, devemos utilizar linguagens de computação para que eles entendam as instruções que queremos passar.

Assim como na linguagem falada, temos também várias linguagens de programação com diferentes propósitos. Perceba que o algoritmo que fizemos só é entendível para uma pessoa que conheça a língua portuguesa. Muitas vezes temos também essa limitação com linguagens de programação, pois a linguagem que um navegador entende para poder transformar-se em um site é diferente da linguagem que um celular com sistema operacional Android entende, por exemplo.

Se quiser saber mais, este artigo destaca as linguagens de programação mais utilizadas no Brasil e no mundo.

O vídeo abaixo traz uma explicação e um exemplo de pseudocódigo, como são conhecidos os algoritmos como o da máquina de café, que não estão necessariamente escritos em nenhuma linguagem de programação específica.

Como a lógica de programação funciona

Como nós vimos na seção anterior, precisamos escrever o nosso algoritmo numa linguagem que o computador entenda. Vimos também que temos várias linguagens disponíveis para isso.

Independente da linguagem escolhida e suas particularidades, existe uma série de regras e conceitos na lógica de programação que são comuns a todas as linguagens. Vamos falar um pouco sobre eles:

1. Variáveis e constantes

Em termos simples, podemos dizer que variáveis e constantes são nomes que usamos para representar um valor (que, na lógica de programação, não é necessariamente numérico – falaremos mais sobre isso na próxima seção) e assim podemos usar este mesmo valor diversas vezes nas instruções dos nossos algoritmos.

O que diferencia os dois conceitos é que as constantes, como o próprio nome diz, têm um valor fixo em toda a execução do programa, enquanto as variáveis podem mudar esse valor quando assim desejarem.

2. Tipos de dados

As variáveis que falamos anteriormente podem receber valores de diversos tipos. Geralmente, quando usamos um programa, inserimos ou recebemos informações dele. Imagine por exemplo que você está usando um aplicativo para solicitar a abertura de uma conta num banco. Este aplicativo pede nome, idade, salário e pergunta se você gostaria de solicitar cartão de crédito e te dá a opção de marcar "sim" ou "não".

Para o computador, essas informações são os chamados dados de entrada. Na lógica de programação esses são dados primitivos, e eles são assim classificados no intuito de otimizar o uso de memória do computador. Temos quatro formatos de dados primitivos:

Texto

Representam uma sequência de caracteres e no algoritmo são colocados com aspas duplas (").

Número Inteiro

São os valores numéricos e tanto negativos quanto positivos, porém sem casas decimais.

Número Real

Valores numéricos, tanto positivos quanto negativos, que utilizam casas decimais.

Lógico ou Booleano

Dado representado por verdadeiro ou falso. Muito usado quando temos apenas duas alternativas para seu uso.

Se pensarmos nos campos do formulário do aplicativo de banco e os tipos de dados que agora conhecemos, podemos então classificá-los:

  • Nome: texto
  • Idade: número inteiro
  • Salário: número real
  • Solicitar cartão de crédito: booleano

O vídeo abaixo, feito por um instrutor da Udacity, explica um pouco mais sobre lógica booleana. Este outro vídeo](https://www.youtube.com/watch?v=3A3TFVDrLCA) fala um pouco mais sobre o uso de variáveis de texto.

3. Estruturas condicionais

Estruturas condicionais permitem que o computador consiga tomar decisões e executar instruções ou algoritmos diferentes dependendo das entradas de dados.

Utilizando ainda o exemplo do nosso cadastro no banco, imagine que este banco possui uma restrição e que ele não pode abrir conta para menores de 18 anos. De forma bem simplificada, podemos pensar no algoritmo de cadastro assim:

SE idade > 18
    faça cadastro
SENÃO
    mostre a seguinte mensagem: "Você precisa ter 18 anos ou mais para abrir a conta"

Perceba que este recurso da lógica de programação é muito enriquecedor e faz com que possamos ter vários fluxos e cenários diferentes dentro do mesmo algoritmo.

Se quiser saber mais, o vídeo abaixo, da Udacity, fala sobre fluxos de controle ou estruturas condicionais.

4. Estruturas de repetição

Este recurso da lógica faz com que possamos solicitar ao computador que execute a mesma ação diversas vezes até que um limite pré-estabelecido seja atingido (lembre-se: um algoritmo precisa ter fim).

Podemos citar como exemplo o mesmo algoritmo da máquina de café. O preparo do café pode ser um processo longo e não queremos que nosso usuário ache que nada está acontecendo e a máquina está com problemas, então podemos ter a seguinte mensagem no nosso algoritmo:

ENQUANTO o café está sendo preparado
    mostre a seguinte mensagem: "Por favor aguarde, seu café está sendo preparado"

O vídeo abaixo explica mais sobre estruturas de repetição:

Como a lógica de programação é utilizada

No momento em que ligamos nosso computador, vários algoritmos já são executados e a lógica de programação já está presente. Enquanto você lê esse artigo, seu navegador está executando códigos que tornam possível toda a internet – e não só ela, mas todos os dispositivos inteligentes que temos hoje.

Com o conhecimento da lógica de programação e a linguagem de programação adequada, estamos aptos a construir:

1. Aplicativos

Uso bastante comum nos dias atuais em que grandes empresas surgem a cada dia popularizando-se nos smartphones das pessoas como o caso do Uber, Whatsapp, Waze etc.

Atualmente, os sistemas operacionais Android e iOS são os mais populares no mundo dos aplicativos. Leia esse post para saber das diferenças entre esses sistemas.

Leia também: Como criar um app

2. Jogos

Indústria em constante crescimento com inovação através de 3D, realidade virtual e muito mais.

Conheça: Curso gratuito de Introdução à Realidade Virtual

3. Sistemas Web

Também extremamente populares, desde os sistemas e rede sociais Google, Youtube, Netflix, Facebook etc.

Leia também: 3 opções de carreira para desenvolvedores web: front-end vs. back-end vs. full stack

4. Dispositivos Inteligentes

São inúmeros os dispositivos conectados à internet, como televisores, câmeras, carros, sensores etc. No futuro, é possível que os dados de todos esses aparelhos se conectem para formar a Internet das Coisas.

Como aprender lógica de programação em 3 passos

A seguir, confira algumas dicas que podem ajudar no seu aprendizado quando você é um novato na área:

1. Escolha uma linguagem

A melhor forma de aprender é sempre colocar a mão na massa. Escolha uma linguagem de programação e faça pequenos desafios para aprender criando. Dessa forma, rapidamente a lógica de programação se tornará fácil pra você. O infográfico abaixo traz um passo a passo (um algoritmo!) para a escolha da melhor linguagem de programação para você aprender, baseado no seu conhecimento prévio e nas áreas em que você se identifica.

2. Comece pequeno

É muito bom aprender criando, mas tenha metas alcançáveis para não se frustrar. Como no exemplo da nossa cafeteira: veja que, inicialmente, ela é extremamente simples. Depois pode ganhar várias outras funcionalidades, como as que mencionamos – passar troco ou aceitar cartões de crédito. Depois, pode ter também várias opções de café e tudo mais que a sua imaginação quiser.

3. Busque mentoria e apoio

Você provavelmente terá dúvidas no seu aprendizado e, nesse momento, é muito importante ter pessoas experientes na área que possam sanar suas dúvidas e lhe dar conselhos sobre métodos, técnicas e ferramentas. Busque apoio!

Cursos de lógica de programação

Uma busca na internet sobre o tema pode trazer uma infinidade de opções entre tutoriais, livros e cursos. Os cursos são uma ótima opção para aqueles que gostariam de ter um caminho bem definido para seguir com a ajuda de professores, mentores e outros estudantes.

A Udacity tem diversos cursos online que abrangem lógica de programação e o catálogo completo pode ser encontrado nesse link. Alguns deles são detalhados abaixo:

Cursos gratuitos

Introdução à Ciência da Computação

  • Duração estimada: 12 semanas
  • Idioma: inglês
  • O que você vai aprender: aprenda Python e aplique os conceitos fundamentais da ciência da computação através da construção de um motor de busca e de uma rede social.

Fundamentos de JavaScript

  • Tempo estimado: 4 semanas
  • Idioma: inglês e português
  • O que você vai aprender: tipos de dados e variáveis, condicionais, arrays, funções, objetos, DOM e eventos do navegador, entre outros conceitos fundamentais.
  • Extra! Aqui é possível optar pela Udacity Experience, que conta com a revisão personalizada de um projeto.

Fundamentos da Programação com Python

  • Tempo estimado: 6 semanas
  • Idiomas: inglês
  • O que você vai aprender: noções introdutórias sobre lógica de programação, programação orientada a objetos. Além de conceitos essenciais, você também aprende a reutilizar e compartilhar códigos e fortalecer seu conhecimento com um miniprojeto prático em cada lição.

Programas Nanodegree

Outra opção é aprender com um curso online estruturado e que tenha foco no aprendizado por projetos (ou seja, na prática) e acompanhamento de especialistas, revisores e mentores.

O Nanodegree Introdução a Programação une tudo isso, com o benefício de revisões de projetos feitas por especialistas e pessoas disponíveis para tirar suas dúvidas online.

O curso dura 3 meses e apresenta diversas facetas da programação ao ensinar conceitos de HTML, CSS e Python (e, naturalmente, lógica de programação) e as diferenças entre programação front-end, back-end, iOS, Android e para análise de dados.

Outra opção é o Nanodegree Fundamentos Web Front-End. Tudo que você vê e com o que interage online é front-end, dos botões e cor do texto à barra de navegação, entre muitos outros detalhes. Ao longo de 2 meses, você pode aprender a base que torna tudo isso possível.

As aulas abarcam HTML, CSS, JavaScript e lógica de programação. Além disso, há também 5 projetos práticos para colocar sua mão na massa. Ao fim do curso, você saberá como interfaces web responsivas, escaláveis e de ótima performance.

Escolha um caminho e comece a programar suas primeiras linhas de código!

Vá além:

Sobre o autor
Udacity Brasil

A Udacity, conhecida como a "Universidade do Vale do Silício", é uma plataforma online e global que conecta educação e mercado para ensinar as habilidades do futuro – de data science e marketing digital à inteligência artificial e desenvolvimento. Hoje, há mais de 7 mil alunos ativos no país e 50 mil pelo mundo.