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.