175

A Importância das estruturas de dados !

Entenda por que é importante aprender estruturas de dados e alguns links úteis

Estruturas de Dados

Esse é o primeiro artigo sobre carreira e aproveito para compartilhar um pouco da minha experiência no mundo de tecnologia. Sempre que falamos sobre carreira aparece o tema processos de seleção. Nesse tema, é de suma importância mencionar o que devemos saber ou como devemos nos preparar para uma entrevista em aquela empresa que todos sonhamos trabalhar. Em consequência, escolhi falar sobre a importância de um tema que aparece em muitas das vagas e processos de seleção pelos quais você ira passar na sua vida: Estruturas de dados!

Normalmente durante a faculdade, a matéria estruturas de dados é dada nos primeiros semestres. Eu considero hoje essa matéria, uma das mais importantes do curso inteiro de Ciências da Computação. O problema que eu vejo é que a maturidade naquela hora (minha e da maioria das pessoas talvez) não é suficiente para entender a importância desse tópico e o impacto que irá ter na sua vida se você não aprender estes conceitos fundamentais.

Toda linguagem de programação tem uma série de estruturas de dados específicas para ajudar você na criação de aplicações e consegue brindar multiplas formas de representação dos dados, dependendo da sua necessidade.

Dentre as estruturas mais famosas se encontram:

  • Árvores
  • Grafos
  • Listas
  • Arrays
  • Mapas/Dicionários
  • Pilhas
  • Colas
  • Etc.

Assim, se você está construindo uma rede social, o mais lógico em um primeiro momento seria usar um grafo, ou se você está representando uma lista de contatos, o mais lógico seria usar um Array. Mas, existe uma variável que é o argumento que fará você escolher uma determinada estrutura ou não: Tempo.

Em geral, todas as estruturas de dados tem 3 operações:

  • Adicionar um novo elemento
  • Remover um novo elemento
  • Achar um elemento dentro da estrutura

Cada uma dessas operações gasta um tempo determinado. Dessa forma, podemos encontrar estruturas que são mais performáticas para encontrar elementos, embora a remoção seja cara, ou então uma estrutura que permite adicionar e remover elementos rápidamente mas encontrar um elemento é extremamente custoso.

Novamente, tudo vai depender da sua necessidade!.

Por fim, é importante conhecer as vantagens e desvantagens de cada estrutura para poder entender em qual cenário será melhor utilizar uma ou outra. É muito importante destacar que, assim como uma receita de cozinha, você precisa ter experimentado os sabores para que em uma nova receita você pense: Acho que se eu colocar este ingrediente vai ficar bom. Da mesma forma, você precisa ter experimentado as estruturas de dados, brincar com elas e olhar em quais casos elas são boas e em quais casos não.

Entender esses conceitos, não só fará de você um melhor desenvolvedor ou desenvolvedora, mas também vai permitir que você se saia bem nos procesos de seleção. 85% dos processos de seleção em que eu participei, tive que utilizar o conhecimento de estruturas de dados e algoritmos. E não se engane, este é um conhecimento que não é só para vagas de backend ou full stack! Hoje em dia frameworks e bibliotecas de frontend como React, Vue, Angular etc. utilizam algoritmos bastante complexos para determinar se um nodo foi atualizado ou não, ou ferramentas como Webpack que permitem gerar bundles da sua aplicação.

Em conclusão, entender o funcionamento das estruturas de dados tem grandes beneficios no seu dia a dia, e pode lhe ajudar a se dar bem em processo de seleção. Para quem fala que nunca chegou a utilizar algum desses algoritmos no seu dia a dia, eu tenho algo para lhe dizer:

Se você sabe lidar com estruturas de dados e algoritmos complexos, tal vez você não chegue a utilizar eles no seu trabalho do dia a dia. Mas se você não sabe, com certeza nunca irá utilizá-los!

Quer aprender mais sobre o tema ? Estes são alguns links que usei para estudar estruturas de dados recentemente

  1. Introduction to Algorithms
  2. Geeks for Geeks

E você ? Me conta o que achou sobre o tema :)

Obrigado pela Visita!