Article image
Fernando Araujo
Fernando Araujo30/11/2021 23:48
Compartilhe

Iniciantes 4 - Algoritmos e Estruturas de Dados

  • #Estrutura de dados
  • #Informática Básica
  • #Lógica de Programação

Olá, devs!

 

Este é mais um artigo que escrevo para a DIO com o objetivo de resgatar os conceitos básicos para alguém se tornar um programador. É uma maneira de devolver à DIO e aos colegas programadores um pouco do que aprendi nesses anos como profissional de informática. Uma ajuda e caminho seguro para os devs iniciantes não se perderem no início da carreira em meio a tantas linguagens, frameworks, stacks, tecnologias, áreas, subáreas, etc.

 

1 – Introdução

É bem difícil para um dev iniciante começar a fazer cursos de programação entrando pela janela do curso no meio de um amontoado de palavras-chaves, sintaxes semelhantes e, ao mesmo tempo, conflitantes, sem ao menos ele ter a oportunidade e o tempo (sim, é preciso dedicar tempo!) para aprender e testar os conceitos básicos da programação.

 

Estes conceitos são baseados na lógica de programação, ou seja, a maneira de se resolver um problema por meio do computador.

Detalhando mais esta lógica, ela envolve outros passos que formam a base de toda a programação de computadores: os algoritmos e as estruturas de dados.

 

2 - Algoritmos e Estruturas de Dados

Um algoritmo é uma lista ordenada de passos que devem ser realizados pelo computador para resolver um determinado problema, realizar uma tarefa. O algoritmo indica o que fazer, mas não estabelece como os passos serão realizados. Para isso, cada passo deve ser codificado em uma linguagem de programação, com todos os detalhes necessários para a realização de cada instrução.

E só aí entram as linguagens de programação. Cada uma implementará o mesmo algoritmo de maneira semelhante, mas diferente, pois depende da sintaxe, estruturas das operações e dos tipos de dados específicos usados por cada linguagem diferente.

Um bom algoritmo permite que a solução seja implementada em qualquer linguagem de programação adequada para a solução do problema.

Um algoritmo pode ter a sua lógica apresentada por uma lista de passos ou um fluxograma.

Tenha em mente que um algoritmo é uma sequência de etapas computacionais que transformam a entrada na saída. Detalhando mais, é qualquer procedimento computacional bem definido que toma algum valor (ou conjunto de valores), como entrada e produz algum valor (ou conjunto de valores) como saída.

Exemplos de algoritmos básicos são: encontrar o menor (ou o maior) valor de uma lista de números, ordenar um conjunto de valores, realizar uma conversão entre unidades de medida, etc.

 

Já as estruturas de dados são as formas de armazenamento e manipulação dos dados que fazem parte da modelagem do problema a ser resolvido.

Uma estrutura de dados envolve não apenas o seu comportamento, mas também as operações que podem ser realizadas com ela, como inserção e remoção de dados, consulta, etc.

Exemplos de estruturas de dados são listas, filas, pilhas, grafos, árvores, matrizes, etc.

As estruturas de dados escolhidas para a implementação podem facilitar ou dificultar a implementação do algoritmo.

Se as estruturas de dados estão associadas com a forma primitiva do problema a implementação será facilitada, caso contrário, ela será dificultada.

Por exemplo, se o problema a ser resolvido apresenta uma estrutura hierárquica (como uma árvore genealógica, por exemplo), a implementação será facilitada com a escolha de uma estrutura de árvore, por exemplo.

Já para um problema que tenha uma estrutura de rede (uma rede social, por exemplo, como o facebook), a estrutura de dados mais adequada para sua implementação é por meio de grafos, por exemplo.

 

Este artigo dá início a uma série de artigos que vou escrever para ajudar o dev iniciante a entender melhor a lógica de programação, por meio de conceitos e exemplos de algoritmos e estruturas de dados mais usados em programação.

 

Este é o quarto artigo que escrevo para a DIO voltado para os devs iniciantes. Acredito que os 3 artigos anteriores também focam em outro ponto importante para o início da carreira de um dev, que refletirá lá na frente, no seu futuro e preparação para o mercado de trabalho e oportunidades, como estágio e emprego em empresas globais: a importância de um dev aprender a ler em inglês desde cedo.

 

Iniciantes 1 – A importância do inglês na vida de um dev (https://web.dio.me/articles/a-importancia-do-ingles-na-minha-vida);

 

Iniciantes 2 – Aprenda a traduzir textos técnicos em inglês – parte 1

(https://web.dio.me/articles/ingles-instrumental)

 

Iniciantes 3 – Aprenda a traduzir textos técnicos em inglês – parte 2

(https://web.dio.me/articles/aprenda-a-traduzir-textos-tecnicos-em-ingles-parte-2)

 

 

Bem, por hoje é só! Obrigado por ter lido até aqui.

 

Vou escrever artigos menores, para não ficar cansativo para vocês lerem tudo sobre um assunto de uma vez só!

Aguardem o próximo artigo desta série.

Compartilhe
Comentários (5)
Abraão Santos
Abraão Santos - 01/02/2023 12:18

Fernando, parabéns pelo artigo, sem arrodeio e direto ao ponto, falta muito conteúdo assim na internet. Continue que você leva jeito pra coisa!

Fernando Araujo
Fernando Araujo - 31/07/2022 12:25

Obrigado, pessoal,

Comentários assim me incentivam a continuar escrevendo artigos!

Alexandre Filho
Alexandre Filho - 01/12/2021 22:20

Ótimo artigo! Parabéns amigo!

Ana Silva
Ana Silva - 01/12/2021 07:25

muito bom :) grata por partilhar conosco!

Pablo Souza
Pablo Souza - 01/12/2021 06:51

Artigo muito bom Fernando. Eu acredito que o tamanho dos seus artigos é bom! Mas entendo o propósito se quiser diminuir. Parabéns pelo conteúdo.