Ir para o conteúdo principal
  1. Posts/

Como eu fico bom com algoritmos e estrutura de dados ?

·791 palavras·4 minutos· 0 · 0 ·
dev como

Quando se entra no mundo mágico da programação, o primeiro pensamento que muitas pessoas tem é: Como eu fico bom com algoritmos e estrutura de dados? A resposta para essa pergunta é simples e consiste em duas palavras.

Que é consistência e prática.

Tá já entendi Cabral que com prática, disciplina e blá, blá, blá, papo de coach… podemos chegar em qualquer lugar. Mas o que importa é aonde posso praticar? O que eu devo estudar? Que linguagens devo aprender?

Bem, espero responder todas essas perguntas de uma forma rápida e concisa nesse artigo. Então vamos por partes por que o mundo mágico da programação te espera. 🦄

Onde posso praticar ? #

Para isso temos vários sites que oferecem múltiplos problemas, vai depender bastante o que você está procurando e o que você quer praticar. Nesta seção vou dividir em dois grupos sites focados para preparar você para entrevistas, as famosas coding interviews e sites focados em programação competitiva. Você pode utilizar os problemas dos dois como uma forma de praticar suas habilidades, porém qual você deve escolher depende mais do seu objetivo no momento.

Sites focados em entrevistas #

  • Leetcode é o maior site com este foco e provavelmente o mais completo por que além de criar planos de estudos para você, possui uma comunidade (cof cof indianos) que está sempre fazendo vídeos sobre e explicando sua abordagem no problema. Além disso, ele possui um problema para cada dia que vai escalando a dificuldade conforme o final do mês.

  • HackerRank possui tutoriais ótimos e uma estrutura para aprender os principais tópicos.

  • Exercism nunca tinha usado até o momento que escrevi este artigo, porém parece muito bem estruturado.

  • Codewars imita todo o sistema de faixas para os problemas que você tenta resolver recomendo se você gosta de lutar.

Sites focados em programação competitiva #

  • Codeforces o super site famoso Russo de programação competitiva que não liga para sua cara de choro para cada resposta errada que você enviar.

  • AtCoder a versão Japonesa do Codeforces.

  • Codechef a versão Indiana do Codeforces.

  • BeeCrowd antigo URI hoje BeeCrowd ótimo se você quer questões em português.

Outros #

Bem acabei criando esta seção por que realmente estes sites não se encaixam em nenhuma das duas caixinhas, porém vale a pena citá-los:

  • ProjectEuler é muito mais focado em resolver problemas matemáticos, se você gosta de matemática ou quer se aprofundar mais com quebra-cabeças matemáticos esse site é para você.

  • Advent of Code é um evento que segue o calendário de advento, se você não sabia que calendário é esse não se preocupa, resumidamente é um evento que começa no 1 dia de dezembro e termina no dia 25 de dezembro então se você quer se preparar para o natal com aquele códigozinho esse evento é uma boa pedida. Dentro do site você também pode solucionar problemas dos anos anteriores, então caso esteja querendo se preparar para o evento do ano de 2023 recomendo bastante.

O que eu devo estudar ? #

A maioria principalmente dos sites focados em entrevistas possui uma estrutura de tópicos do que você deve estudar e em qual ordem, porém se você se sentir que quer procurar por si tem um roadmap de ciência da computação que vai te ajudar a dividir os tópicos, e assim ter uma noção do que tá faltando e o que você pode ir estudando agora de forma mais organizada.

RoadMap esse site possui vários roadmaps de várias carreiras que você pode escolher estudar super recomendo.

Trilha.info um amigo meu falou sobre esse site achei bastante educativo até porque o conteúdo está em português o que é muito positivo.

Quais linguagens devo aprender ? #

Antes que apareça algum evangelista de Javascript com o seu novo framework que promete ser mais rápido do que seu tio falando é pavê ou para comer na ceia de Natal. Devo falar que linguagem é apenas uma ferramenta e o que você deve avaliar e se ela vai te levar para onde você deseja ou não. Então o que eu vou fazer nesta seção e apontar algumas linguagens e onde elas são normalmentes usadas na indústria e você deve avaliar se está de acordo com que você quer ou não.

  • Python -> Backend, Ciência de Dados e Inteligência Artificial.

  • Java -> Backend.

  • C/C++ -> Sistemas Embarcados, Desenvolvimento de Jogos.

  • Javascript -> Frontend, Backend.

Conclusão #

Em conclusão, você deve escolher a ferramenta que mais se sinta confortável e que esteja alinhado com seus objetivos no futuro. E assim a cada dia procurar praticar e explorar mais ainda sua linguagem utilizando os conceitos básicos de computação. Com o tempo você irá perceber que até transicionar de uma linguagem para outra será muito mais fácil e programar será bem mais prazeroso. 😌