image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Elidiana Andrade
Elidiana Andrade14/12/2022 09:25
Compartilhe

5 Dicas Essenciais para Aprender a Programar em Qualquer Linguagem! #CommunityWeek

  • #Desperte o potencial
  • #Lógica de Programação

Confira 5 dicas fundamentais para aprender a programar em qualquer Linguagem de Programação, que sintetizam “O maior aprendizado que eu tive na DIO até hoje”. #CommunityWeek

Resumo

Uma das dificuldades para quem está começando na área da Programação, sobretudo os que estão em Transição de Carreira, é saber por onde começar a estudar e quais prioridades definir no seu cronograma de estudos. É comum desejarmos de cara aprender o quanto antes uma linguagem e framework para sentirmos que de fato estamos evoluindo enquanto programadores. Pensamento esse, que muitas vezes pode nos levar a querer pular etapas e não construir uma boa base em Lógica da Programação.

E é com esse contexto, que apresento “O maior aprendizado que eu tive na DIO até hoje, que foi justamente reconhecer a importância da Lógica de Programação e do Pensamento Computacional aliados a prática de Desafios de Projeto e de Código para exercitar meu raciocínio lógico e de fato começar a evoluir enquanto programadora. Tendo em vista que ao entender a base da Programação, torna bem mais simples o processo de aprendizagem de uma Linguagem, assim como da migração de uma para outra.

Com isso, neste artigo será abordado dicas acerca do aprendizado das linguagens de programação, demonstrando a importância da lógica nesse processo a partir de tópicos que tratam de conceitos práticos e teóricos. Além de contar com indicações de alguns cursos e Formações presentes na plataforma da DIO (Digital Innovation One) que exploram ainda mais esses temas.

Palavras-Chave: Lógica de Programação, Linguagem de Programação, Digital Innovation One.

Introdução

Quando se pensa em lógica, é bem provável que venha na cabeça matemática e aquelas questões do “Joãozinho” ou de completar uma sequência de figuras ou números. Mas onde a Lógica entra nisso e porquê é tão importante na Programação?

No exemplo citado anteriormente, podemos ter a sensação de estarmos resolvendo a questão “intuitivamente”, mas intrinsecamente estamos seguindo uma série de raciocínios lógicos que nos permitem discernir e resolver o problema identificando contradições e chegando na alternativa mais coerente.

A importância da lógica se dá justamente pelo fato dela nos possibilitar estruturar nosso raciocínio a fim de chegar numa determinada solução. É essencial ter esse pensamento organizado na resolução de problemas, e para isso precisamos entender os princípios que nos permitem construí-lo.

Trazendo um breve histórico sobre o tema, o que a antes era campo de estudo filosófico, a lógica chega na matemática a partir dos trabalhos de George Boole e Augustus de Morgan, onde na Álgebra Booleana temos os seguintes operadores:

Negação (NOT / NÃO): inverte o valor da proposição. Ex. I: Salvador é a capital da Bahia (verdadeiro); Ex. II: Salvador NÃO é a capital da Bahia (falso).

Conjunção (AND / E): requer que todas as partes de uma proposição composta seja verdadeira.

Ex. I: Salvador é a capital da Bahia E Java é uma Linguagem de Programação (verdadeiro);

Ex. II: Salvador é a capital da Bahia E HTML é uma Linguagem de Programação (falso);

Disjunção (OR / OU): requer que apenas uma parte de uma proposição composta seja verdadeira.

Ex. I: Salvador é a capital da Bahia OU JavaScript é uma Linguagem de Marcação (verdadeiro, pois uma das partes é verdadeira);

Ex. II: Salvador é a capital de Pernambuco OU JavaScript é uma Linguagem de Marcação (falso);

Obs.: Uma proposição é uma frase declarativa que recebe valores lógicos (verdadeiro ou falso), não podendo ser simultaneamente verdadeira e falsa.

E é aí que a Lógica se torna tão importante para a programação. O computador, que é basicamente uma máquina que faz cálculos, agora possui operadores que permitem identificar o valor das proposições, se tornando uma ferramenta essencial na resolução de problemas.

Agora que você já sabe a importância da Lógica de Programação, veja a seguir 5 dicas que vão te auxiliar no processo de aprendizagem de qualquer linguagem, contando com referências de materiais que você pode consultar aqui na DIO:

1. Saiba o que são e como criar Algoritmos

Os algoritmos estão presentes no nosso dia a dia, e são basicamente uma sequência finita de passos ordenados necessários para alcançar um determinado objetivo. Por exemplo, ao escovar os dentes estamos seguindo um conjunto de passos bem definidos, que possuem uma ordem e vão nos levar a um resultado.

Falando do meu maior aprendizado aqui na DIO tendo como base a Lógica de Programação, não poderia deixar de citar os primeiros cursos que conclui na plataforma que abordam sobre Algoritmos, que são os de Lógica de Programação Essencial, ministrado por Denilson Bonatti, e o de Pensamento Computacional, ministrado por Juliana Mascarenhas (Figura 01).

Figura 01 – Thumbnail dos Cursos de Lógica de Programação Essencial e Pensamento Computacional

image

Fonte: Digital Innovation One. Adaptado pelo autor.

Além deles, o curso “Introdução à Programação e Pensamento Computacional” também ministrado pela Juliana, faz parte da série de cursos que contribuíram para o meu aprendizado em Lógica e trata dos pontos que sintetizo neste artigo.

Dentre as maneiras de praticar esse conteúdo, você pode optar pela construção de um Fluxograma, que é um tipo de diagrama, e configura uma forma de representar os Algoritmos graficamente, onde cada forma tem um significado. Como podemos observar no diagrama simples na Figura 02, onde basicamente o retângulo com bordas arredondadas define o início/fim, as setas indicam o sentido do fluxo, e os losangos as tomadas de decisão.

Figura 02 – Exemplo de um Fluxograma simples para uma lâmpada que não funciona.

image

Fonte: https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/LampFlowchart_pt.svg/250px-LampFlowchart_pt.svg.png. Adaptado pelo autor.

Além disso, uma das alternativas para praticar se divertindo que pode ser útil para quem está começando, é um dos jogos que conheci no curso do instrutor Denilson, o Minecraft Hour of Code (Hora do Código Minecraft), disponível em < https://studio.code.org/s/mc/lessons/1/levels/1?lang=pt-BR >. O jogo apresenta alguns desafios que você precisa resolver a partir de uma série de ações adicionadas na Área de Trabalho seguindo a instrução indicada, conforme pode ser observado na figura abaixo:

Figura 03 – Primeiro Desafio do Minecraft Hour of Code

image

Fonte: Code Studio.

Por fim, é bem comum no início dos estudos escrever Algoritmos a partir de um pseudocódigo, uma outra opção (que particularmente prefiro, mas depende de cada pessoa) é utilizar uma linguagem mais simples como Python que você pode executar direto do navegador através do Google Colab, mas sem tentar aprender as especificidades da linguagem em si, e sim utilizando-a como ferramenta para resolver um determinado exercício. Contudo, a escolha depende do que for melhor para o seu aprendizado, caso perceba que está sentindo dificuldade na construção do algoritmo e no método que escolheu para representar, sugiro que opte pela alternativa em que se sinta mais confortável.

2. Conheça a Tipagem, e saiba quais os Tipos e Operadores da Linguagem

A Tipagem serve para atribuir comportamentos e características a um dado, a fim de manipulá-lo com base nesses aspectos. É por isso que saber como a Linguagem que está estudando se classifica em termos de tipagem (Estática ou Dinâmica, Forte ou Fraca), vai te auxiliar a entender as vantagens de cada uma e como manipular os tipos de dados nesse contexto.

Falando sobre tipos, cada Linguagem tem um conjunto de tipos básicos, os Tipos Primitivos, dentre eles temos: boolean (que recebe os valores “true” ou “false”), string (que recebe sequências de caracteres), int (que recebe números inteiros), etc. Algumas possuem mais ou menos tipos, vale buscar na documentação quais são e como se definem.

Como vimos anteriormente o computador serve para calcular, e quando se trata de cálculos não podemos deixar de lado os operadores, certo? Com isso, é fundamental estudar os operadores, dentre eles temos os: Operadores Lógicos, Aritméticos, Atribuição, Comparação, enfim, assim como os tipos cada linguagem tem os seus, mas no geral são iguais ou similares.

Sobre os operadores, vale destacar um que confunde muitas pessoas no começo, que são o operador de atribuição “=”, e os de comparação “==” e “===”, onde basicamente servem para:

= atribuir valor
== comparar valor
=== comparar valor e tipo

Vale salientar também que em Linguagens de Programação de Tipagem Forte como Java e Python, a importância de entender sobre tipos e operadores e a relação entre eles se torna ainda mais fundamental, tendo em vista que para operar um tipo como se fosse outro, deve-se realizar a conversão (casting).

Ex.: Convertendo um dado do tipo string para inteiro com o método int() em Python para realizar a subtração com um inteiro:

idade = int(input("Insira a sua idade: "))
print(2022 - idade)

No exemplo acima, a função input() é responsável pela entrada de dados e retorna um do tipo string, ao utilizar o método int() estamos convertendo a idade que o usuário inseriu para o tipo inteiro, e com isso podemos subtrair 2022 que é um inteiro pela idade. Caso não seja realizada essa conversão, retornará um erro em relação a tipagem.

Nota: Quem optou por iniciar os estudos com Python, indico o curso de “Tipos de Operadores com Python”, ministrado por Guilherme Carvalho na Formação Python Developer, que você também encontra aqui na DIO e que aborda os operadores de maneira didática e organizada. Já se tratando de Java, a minha indicação são os cursos “Variáveis, Tipos de Dados e Operadores Matemáticos em Java”, ministrado pelo instrutor Thiago Leite, e o “Aprendendo a Sintaxe Java”, ministrado por Gleyson Sampaio, presente na Formação Java Developer.

3. Estude sobre Estrutura de Dados, e entenda a diferença entre Variáveis e Constantes, Vetores e Matrizes, Pilha e Fila etc.

As Estruturas de Dados são fundamentais para que possamos armazenar e organizar uma série de dados e relacioná-los na resolução de um problema. Trazendo diversos benefícios na manipulação e desempenho da aplicação.

Para entender mais sobre essas estruturas, é essencial conhecer sobre as Variáveis, que são basicamente espaços reservados na memória para valores que podem ser alterados durante a execução do programa, e as Constantes, que são espaços reservados para valores fixos, que não podem ser alterados durante a execução do programa, como podemos observar no exemplo abaixo:

idade = input('Insira sua idade: ')
PI = 3.14159265359

Tão importante quanto entender o significado e diferenças entre variáveis e constantes, é saber nomeá-las adequadamente. Como podemos perceber nos exemplos acima, ao nomear a variável foi escolhido um nome mais genérico, nesse caso “idade”, já que é um valor que estará sempre se modificando, como podemos observar a instrução de entrada “input()” (em inglês, que significa entrada) que serve como entrada de dados, nesse exemplo ela lê a idade que o usuário insere e retorna para o programa. Por outro lado, se tratando da Constante, que é um valor estático, podemos ser mais específicos e em vez de escrever “numero” ou qualquer outro nome genérico, podemos adotar um nome coerente que de fato explica do que ela se trata, nesse caso o número PI.

Os pontos citados anteriormente, fazem parte dos Padrões de Nomenclatura, que definem regras e convenções tanto para o nome escolhido quanto a forma de escrita de uma variável, função etc., onde dentre as regras temos:

  • Adotar nomes coerentes, que identifiquem do que se trata a variável ou constante;
  • Nomeie constantes com letras maiúsculas e variáveis com letras minúsculas;
  • Não pode conter acentos, cedilhas, espaços e caracteres especiais (exceto alguns, como o “_”, a depender da Linguagem que estiver trabalhando);
  • Não pode iniciar com número;
  • Não podem ser palavras reservadas (que são basicamente palavras que fazem parte da estrutura da linguagem);
  • Não pode conter espaço entre as palavras.

Como vimos nas regras acima, não podemos utilizar espaço entre as palavras, então para fazer a diferenciação em nomes compostos, devemos consultar o estilo de escrita que a Linguagem que estamos trabalhando adota, dentre os Case Types / Styles temos:

  • Camel Case: exemploCaseType
  • Snake Case: exemplo_case_type
  • Kekab Case: exemplo-case-type
  • Pascal Case: ExemploCaseType
  • Upper Case Snake Case: EXEMPLO_CASE_TYPE

A partir de uma coleção de variáveis do mesmo tipo, que podem ser referenciadas a partir de um índice, temos uma Estrutura Multidimensional (Array Multidimensional), que chamamos de Matriz. Por outro lado, um Vetor é uma Estrutura Unidimensional (Array Unidimensional) composta por uma sequência de variáveis dos meu tipo, ou seja, basicamente uma Matriz de uma única dimensão. No exemplo abaixo podemos ver a aplicação desses conceitos utilizando a linguagem JavaScript e a representação de notas de Alunos:

let notaAluno = [7, 8, 10]

let notasAlunos = [
 [5, 6, 8],
 [7, 8, 9],
 [9, 7, 8],
]
console.log(notaAluno[1]) // 8
console.log(notasAlunos[1][0]) // 7

Sobre as Estruturas de Dados é importante entender alguns conceitos como Pilha x Filas, onde basicamente na Pilha, o último item a entrar é o primeiro a sair, enquanto na Fila o primeiro a entrar é o primeiro a sair, entender essas estruturas vão te auxiliar a saber qual solução é a mais adequada para o problema que deseja resolver. Além disso é interessante entender também sobre os conceitos de Listas, Árvores etc.

4. Entenda o que são e como funcionam as Estruturas Condicionais, Estruturas de Repetição, e Funções

As Estruturas Condicionais consistem na execução de um ou mais comandos de acordo com a condição estabelecida. Já as Estruturas de Repetição consistem na repetição de um ou mais comandos enquanto a condição estabelecida for verdadeira. Saber como não criar loops infinitos, e principalmente entender qual problema isso gera, é essencial para compreender como essas estruturas funcionam e sobretudo quais tipos de problemas elas ajudam a solucionar.

Além disso, outro conteúdo fundamental são as Funções, que são uma fração de código que executam determinada tarefa, e evitam a repetição de código, uma vez que podemos chamá-la quando precisarmos sem necessitar reescrever toda a lógica. Abaixo confira um exemplo bem simples em JavaScript de uma função que tem como objetivo retornar a soma entre os valores a e b:

function soma(a, b) {
 return a + b
}

soma(1,2) // 3
soma(3,3) // 6

5. Pratique com Desafios de Código e de Projeto da Linguagem escolhida

Agora que você já entende a base, é hora de aplicar na Linguagem de Programação que escolheu. Nesse momento, você deve se perguntar: Como declarar variáveis e constantes? Qual é a Tipagem, Tipos e Operadores? Quais as convenções (de nomenclatura, estrutura etc.) dessa Linguagem? Além de outros conceitos abordados aqui nas dicas anteriores.

A partir disso, você deve aplicar esses conteúdos no Ambiente de Desenvolvimento adequando à sintaxe da Linguagem que escolheu, consultando a documentação. Além disso, vocês devem perceber que nos Bootcamps os Desafios de Código antecedem os de Projeto, como abordei no artigo “Destrave seu Primeiro Desafio de Código”, essa ordem (tanto dos cursos, quanto dos desafios) é importante para que você possa adquirir as habilidades necessárias para resolver os problemas, iniciando pelos mais simples e seguir evoluindo gradativamente.

Considerações Finais

Neste artigo vimos algumas dicas para serem aplicadas no estudo de uma Linguagem de Programação, que são basicamente tópicos que envolvem Lógica de Programação, e configuram “O maior aprendizado que tive na DIO até hoje”.

Além dos conteúdos abordados aqui, é interessante ver também sobre os Paradigmas de Programação (como Orientação a Objetos, sobretudo se decidir aprender Java ou C#), que também contam com diversos cursos aqui na plataforma. Assim como, você pode estender seus estudos acerca dos conceitos pontuados neste artigo, pesquisando os termos e palavras-chave na barra de pesquisa da plataforma, onde você encontra Cursos, Bootcamps, Acelerações e Artigos sobre o tema (Figura 04).

Figura 04 - Print Screen da Barra de Pesquisa da plataforma da DIO com a listagem de cursos e artigos referentes ao termo pesquisado.

image

Fonte: Digital Innovation One. Elaborado pelo autor.

Por fim, tão importante quanto aprender a teoria desses conceitos é colocá-los em prática! E na DIO não faltam Desafios de Projeto e de Código nos Cursos, Bootcamps e Formações que vão te auxiliar a exercitar esses conteúdos e evoluir cada vez mais no seu aprendizado na Programação. Só aqui, eu já tive a oportunidade de resolver mais de 40 desafios de código, que sem sobra de dúvidas foram cruciais para minha evolução, tendo em vista que nos primeiros eu me sentia travada (como já contei por aqui no artigo "Destrave seu Primeiro Desafio de Código"). No mais, se eu puder converter esse meu maior aprendizado aqui na DIO num conselho simples seria: Construa uma boa base, pratique com os desafios, e persista! E não se esqueçam que qualquer dúvida vocês podem contar com a comunidade, seja na área de Fóruns e Artigos, o Rooms, ou no Discord (link de convite para o servidor).

Referências

DIGITAL INNOVATION ONE. Introdução à Programação e Pensamento Computacional. Disponível em < https://web.dio.me/course/introducao-a-programacao-e-pensamento-computacional/learning/02cd9c33-806c-4a3d-b8ba-932ed7ad5ee8 >

DIGITAL INNOVATION ONE. Lógica de Programação Essencial. Disponível em <https://web.dio.me/course/logica-de-programacao-essencial/learning/aea1ea26-fd56-417d-8272-6e15253f4405/ >.

DIGITAL INNOVATION ONE. Pensamento Computacional. Disponível em <https://web.dio.me/course/pensamento-computacional/learning/17d08fc7-9054-4ba7-9358-d82f8cc89487 >.

image

Sintam-se livres se conectar comigo no LinkedIn ou seguir no GitHub. Abraço! 🤗❤

image image

Compartilhe
Comentários (36)
Elidiana Andrade
Elidiana Andrade - 20/12/2022 21:12

Obrigada, Gabriel! Eu também não tinha noção dessa sequência quando comecei estudando a partir de eventos e vídeos "aleatórios", isso mudou depois que entrei na DIO e ficou mais claro ainda a partir do aprendizado de uma segunda linguagem quando consegui comparar e entender melhor. Agradeço o comentário, sucesso para você também!

Gabriel Souza
Gabriel Souza - 20/12/2022 18:59

Que dicas valiosas, muito obrigado por compartilhar com a gente sua experiência! :) Acabei começando a estudar aqui sem saber dessa sequência que com certeza torna o aprendizado mais veloz e fácil, muito sucesso em sua jornada!

Elidiana Andrade
Elidiana Andrade - 19/12/2022 08:23

Obrigada, Melquiedes! Gosto de colocar imagens, pois sei que tem muita gente nova na plataforma e ainda deve estar aprendendo como utilizá-la ☺️

MF

Melquiedes Franco - 18/12/2022 21:48

Muito interessante o artigo e o uso de imagens facilitou o entendimento!!!!

Elidiana Andrade
Elidiana Andrade - 18/12/2022 18:53

Obrigada, Roberto! 😊

Roberto Oliveira
Roberto Oliveira - 18/12/2022 16:19

Muito bom e Parabéns pelo artigo !

Elidiana Andrade
Elidiana Andrade - 17/12/2022 08:23

Obrigada, Daniela! Agradeço muito o seu apoio! 🥰❤

Daniela Velter
Daniela Velter - 16/12/2022 21:47

Parabéns Elidiana Andrade pelo artigo! Estou torcendo para você que de tudo certo, sucesso!


Elidiana Andrade
Elidiana Andrade - 15/12/2022 16:56

Obrigada, Diogo! Fico feliz que tenha sido útil! 🤗

Diogo Dantas
Diogo Dantas - 15/12/2022 16:45

Muito show e muito útil!! Obrigado por compartilhar!!

Elidiana Andrade
Elidiana Andrade - 15/12/2022 13:15

Obrigada, Guilherme! 🤗

GA

Guilherme Abreu - 15/12/2022 12:01

Parabéns pelo artigo, Elidiana. Muito bom!

Elidiana Andrade
Elidiana Andrade - 15/12/2022 08:06

Disse tudo, Robson! Ainda mais se tratando da área da Tecnologia que está sempre em movimento, ficar preso numa linguagem sem ter essa base te limita tanto nela, quanto te coloca para trás caso necessite mudar. Agradeço o comentário! 😊

ROBSON MARTINS
ROBSON MARTINS - 15/12/2022 01:18

Muito bom, quando ia estudar alguma liguagem de programação não entendia nada e logo desanimava, daí fiz esse processo de estudar lógica e pensamento computacional, pra mim foi surpreendente como a linguagem de programação A ou B não faz diferença, mas sim uma boa base de lógica e pensamento estruturado.

Parabéns pelo artigo.

Elidiana Andrade
Elidiana Andrade - 14/12/2022 18:52

Obrigada, Allesca! 🤗❤️

AM

Allesca Macedo - 14/12/2022 18:43

Parabéns pelo artigo Eli, ficou TOP

Elidiana Andrade
Elidiana Andrade - 14/12/2022 17:12

Obrigada, Arthur! Eu publiquei como uma imagem normal, a plataforma da DIO também reconhece gifs.

Artur Guerra
Artur Guerra - 14/12/2022 15:59

Como vc publicou um gif? Eu procurei demais e não consegui.... E parabéns pelo conteudo!

Elidiana Andrade
Elidiana Andrade - 14/12/2022 14:17

Muito obrigada, Leonidia! E comentários como o seu me motivam a continuar compartilhando e aprendendo junto 🥰❤

LS

Leonidia Santos - 14/12/2022 14:08

muito bm o seu artigo, me senti mais motivada a continuar.

Elidiana Andrade
Elidiana Andrade - 14/12/2022 13:38

Obrigada, Niedja! 😊❤

Niedja Rocha
Niedja Rocha - 14/12/2022 13:15

Ficou muito bom! Parabens mesmo

Elidiana Andrade
Elidiana Andrade - 14/12/2022 11:57

Uhuuu! Muito obrigada pelo seu voto João!! 😁

Elidiana Andrade
Elidiana Andrade - 14/12/2022 11:55

Que honra, Felipão!! Você não faz ideia do quanto fico feliz ao ler isso! O primeiro projeto que fiz aqui na DIO depois do de Git e GitHub foi justamente o que você ensina a Recriar a Interface da Netflix. Inclusive pensei em citar aqui os cursos com você, a Camilla, Venilton, Renan, e outros experts, mas já estava ficando enorme então resumi nesses sobre lógica que foram muito importantes também 😁🤗

JA

João Anastácio - 14/12/2022 11:48

FIcou top demais! Tem meu voto!

Felipe Aguiar
Felipe Aguiar - 14/12/2022 11:22

Elidiana, seus artigos são os mais tops que eu ja vi aqui, tenho até vergonha de postar algo agora rsrs

parabéns!!!

Elidiana Andrade
Elidiana Andrade - 14/12/2022 10:51

Obrigada, Cristina! Fico feliz! 🤗❤

Cristina Monteiro
Cristina Monteiro - 14/12/2022 10:50

Parabens pelo artigo, ficou excelente!

Elidiana Andrade
Elidiana Andrade - 14/12/2022 10:41

Obrigada Luiz! 🤗 Desejo o mesmo! Parabéns também pela sua palestra ontem na Community! Sucesso!

Luiz Café
Luiz Café - 14/12/2022 10:26

Parabéns pelo seu artigo!

Muito sucesso!

Elidiana Andrade
Elidiana Andrade - 14/12/2022 10:11

Obrigada, Thiago! 🤗

Thiago Henrique
Thiago Henrique - 14/12/2022 10:11

Parabéns pelo artigo, muito legal!!!

Elidiana Andrade
Elidiana Andrade - 14/12/2022 10:07

Fico feliz! A ideia foi sintetizar tópicos importantes que geralmente quando estamos ingressando ainda não conhecemos, mas que são essenciais para a nossa evolução.

Lucas Carvalho
Lucas Carvalho - 14/12/2022 09:56

Excelente artigo! Acho bom até para guardar como consultas futuras para qualquer um que estiver ingressando na área!

Elidiana Andrade
Elidiana Andrade - 14/12/2022 09:52

Obrigada, Belisnalva! 🥰❤

Belisnalva Jesus
Belisnalva Jesus - 14/12/2022 09:36

Parabéns pelo o artigo Elidiana!