Claro, Mari — vou montar um plano de estudos bem completo, estruturado e realista, com linguagem amigável e foco no seu objetivo: aprender estruturas de dados e algoritmos em nível básico/intermediário, aplicar com projetos práticos e chegar confiante em entrevistas técnicas.
A ideia é que você consiga seguir mesmo com rotina corrida, sem pressão, mas com evolução consistente.
Visão geral do plano (4 semanas)
Carga sugerida: 1h30–2h por dia, 5 dias/semana
Foco: Conceitos + exercícios + mini-projetos aplicados
Recursos: grátis e de qualidade
Resultados esperados em 4 semanas:
- Entender estruturas de dados essenciais
- Saber implementar em linguagem simples (Python recomendado)
- Conquistar repertório para desafios de entrevista
- Criar projetos práticos para colocar no currículo
Recursos recomendados
Cursos e aulas
- “Estruturas de Dados em Python” – USP Coursera (gratuito)
- Khan Academy – Introdução a algoritmos
- YouTube – Curso de Algoritmos (Gustavo Guanabara)
Prática e exercícios - HackerRank (nível iniciante e intermediário)
- LeetCode (somente os fáceis e alguns médios)
- CodeSignal
Estruturas que você vai dominar - Arrays / Listas
- Pilhas e Filas
- Hash Maps / Dicionários
- Strings e manipulação eficiente
- Árvores (conceito e aplicações; sem aprofundar em balanceamento)
- Grafos (noções básicas)
- Algoritmos: busca, ordenação, recursão, complexidade (Big O)
** CRONOGRAMA DETALHADO – 4 SEMANAS**
Semana 1 — Fundamentos e bases sólidas
Objetivos
- Revisar lógica de programação
- Entender o que é um algoritmo
- Aprender análise de complexidade (Big O)
- Começar listas e arrays
Cronograma – 5 dias
Dia 1: - Revisão de lógica (condicionais, laços, funções)
- Aula: Khan Academy – “O que é um algoritmo”
- Prática: 10 exercícios no HackerRank (Easy)
Dia 2: - Big O: notação e interpretações visuais
- Vídeo: “Big O explicada de forma simples” — YouTube
- Exercício: identificar Big O de 5 códigos simples
Dia 3: - Introdução a Listas e Arrays
- Leitura: Capítulo "Arrays" do Grokking Algorithms
- Prática: LeetCode – Two Sum (explicação guiada)
Dia 4: - Exercícios com listas: busca linear e binária
- HackerRank: 5 exercícios sobre arrays
- Aula USP: módulo de listas
Dia 5: - Revisão + Implementar operações básicas (insert, delete, search)
- Mini-teste com 20 min de desafios fáceis
Semana 2 — Estruturas lineares
Objetivos
- Aprender Pilhas e Filas
- Hash Tables (conceito + implementação simples)
- Strings e algoritmos básicos
Cronograma – 5 dias
Dia 1:
- Conceito de Pilha (Stack)
- Implementar push, pop, peek
- Problema prático: validação de parênteses
Dia 2: - Filas (Queues) + fila circular
- Exercícios no HackerRank
- Implementar simulação: fila de atendimento
Dia 3: - Hash Tables / Dicionários
- Colisões (conceito simples)
- LeetCode: “First Unique Character in a String”
Dia 4: - Manipulação de Strings
- Algoritmos básicos de substring, contagem, inversão
- Exercícios práticos
Dia 5: - Revisão + exercícios mistos (Stacks, Queues, Strings)
- Mini-prova de 30 minutos
Semana 3 — Estruturas hierárquicas e busca
Objetivos
- Árvores (conceito, não precisa aprofundar)
- Grafos (visão geral)
- Algoritmos de busca e ordenação
Cronograma – 5 dias
Dia 1:
- Árvores: o que são, onde aparecem no dia a dia
- Implementar uma árvore binária simples
- Percursos: in-order, pre-order, post-order
Dia 2: - Aplicações de árvores (sistemas de arquivos, HTML DOM)
- Exercícios simples de criação e busca
Dia 3: - Algoritmos de ordenação: bubble, insertion, selection
- Entender complexidade
- Implementar 3 algoritmos
Dia 4: - Grafos: nós, arestas, representações (matriz vs lista)
- Grafos no mundo real (mapas, redes sociais)
- Implementar BFS e DFS simples
Dia 5: - Revisão de semana + 3 exercícios do LeetCode (Easy/Medium)
** Semana 4 — Entrevistas Técnicas e Projeto Final**
Objetivos - Treinar padrões de problemas de entrevistas
- Revisar tudo com exercícios práticos
- Criar um projeto final para portfolio
Cronograma – 5 dias
Dia 1: - Revisão geral: listas, pilhas, filas, hash maps
- LeetCode 10 problemas “Easy”
Dia 2: - Problemas clássicos:
- Two Sum
- Valid Parentheses
- Merge Sorted Array
- Missing Number
Dia 3:
- Lidar com tempo e clareza em entrevistas
- Fazer 2 simulações cronometradas
- Revisar fundamentos de Big O
Dia 4: - Projeto final (parte 1):
Sistema de Gerenciamento de Tarefas- Listas para armazenar tarefas
- Hash map para classificação por tags
- Ordenação por prioridade
- Fila para tarefas agendadas
Dia 5:
- Projeto final (parte 2):
- Documentar
- Criar README
- Subir para GitHub
- Criar seção no currículo: “Projetos de Algoritmos”